// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //

// C++ TLBWRTR : $Revision:   1.134.1.39  $
// File generated on 31.05.2010 20:15:57 from Type Library described below.

// ************************************************************************ //
// Type Lib: D:\Distr\LT1\V12\bin\klAPI7.tlb (1)
// IID\LCID: {0B83FE6B-0F4E-4931-AA7A-7D9FD3C063D4}\0
// Helpfile: D:\Distr\LT1\V12\bin\sdk.hlp
// DepndLst: 
//   (1) v2.0 stdole, (C:\WINDOWS\System32\stdole2.tlb)
//   (2) v1.0 Kompas6Constants, (K:\DebugU_8\Exe\ksConstants.tlb)
//   (3) v1.0 Kompas6Constants3D, (K:\DebugU_8\Exe\ksConstants3D.tlb)
//   (4) v1.0 Kompas6LTAPI5, (D:\Distr\LT1\V12\bin\klAPI5.tlb)
//   (5) v4.0 StdVCL, (C:\WINDOWS\system32\stdvcl40.dll)
// ************************************************************************ //
#ifndef   __KompasLTAPI7_TLB_h__
#define   __KompasLTAPI7_TLB_h__

#pragma option push -b -w-inl

#include <utilcls.h>
#if !defined(__UTILCLS_H_VERSION) || (__UTILCLS_H_VERSION < 0x0500)
//
// The code generated by the TLIBIMP utility or the Import|TypeLibrary 
// and Import|ActiveX feature of C++Builder rely on specific versions of
// the header file UTILCLS.H found in the INCLUDE\VCL directory. If an 
// older version of the file is detected, you probably need an update/patch.
//
#error "This file requires a newer version of the header UTILCLS.H" \
       "You need to apply an update/patch to your copy of C++Builder"
#endif
#include <olectl.h>
#include <ocidl.h>
#if defined(USING_ATLVCL) || defined(USING_ATL)
#if !defined(__TLB_NO_EVENT_WRAPPERS)
#include <atl/atlmod.h>
#endif
#endif
#include "ksConstants.h"
#include "ksConstants3D.h"
#include "kl_TLB.h"


// *********************************************************************//
// Forward reference of some VCL types (to avoid including STDVCL.HPP)    
// *********************************************************************//
namespace Stdvcl {class IStrings; class IStringsDisp;}
using namespace Stdvcl;
typedef TComInterface<IStrings> IStringsPtr;
typedef TComInterface<IStringsDisp> IStringsDispPtr;

namespace Kompasltapi7_tlb
{

// *********************************************************************//
// HelpString: 
// Version:    1.0
// *********************************************************************//


// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:        
//   Type Libraries     : LIBID_xxxx                                      
//   CoClasses          : CLSID_xxxx                                      
//   DISPInterfaces     : DIID_xxxx                                       
//   Non-DISP interfaces: IID_xxxx                                        
// *********************************************************************//
extern __declspec (package) const GUID LIBID_KompasLTAPI7;
extern __declspec (package) const GUID IID_IKompasAPIObject;
extern __declspec (package) const GUID IID_IApplication;
extern __declspec (package) const GUID IID_IKompasCollection;
extern __declspec (package) const GUID IID_IDocuments;
extern __declspec (package) const GUID IID_IKompasDocument;
extern __declspec (package) const GUID IID_IDocumentFrames;
extern __declspec (package) const GUID IID_IDocumentFrame;
extern __declspec (package) const GUID IID_IDocumentSettings;
extern __declspec (package) const GUID IID_ISpecificationDescriptions;
extern __declspec (package) const GUID IID_ISpecificationDescription;
extern __declspec (package) const GUID IID_ISpecificationStyle;
extern __declspec (package) const GUID IID_ISpecificationTuning;
extern __declspec (package) const GUID IID_ITextStyle;
extern __declspec (package) const GUID IID_ITextFont;
extern __declspec (package) const GUID IID_ITabulators;
extern __declspec (package) const GUID IID_ITabulator;
extern __declspec (package) const GUID IID_ISpecificationTuningSections;
extern __declspec (package) const GUID IID_ISpecificationTuningSection;
extern __declspec (package) const GUID IID_ISpecificationSubsections;
extern __declspec (package) const GUID IID_ISpecificationSubsection;
extern __declspec (package) const GUID IID_IAdditionalBlockTunings;
extern __declspec (package) const GUID IID_IAdditionalBlockTuning;
extern __declspec (package) const GUID IID_IAdditionalBlockSectionTunings;
extern __declspec (package) const GUID IID_IAdditionalBlockSectionTuning;
extern __declspec (package) const GUID IID_ISheetFormat;
extern __declspec (package) const GUID IID_ISpecificationColumnStyles;
extern __declspec (package) const GUID IID_ISpecificationColumnStyle;
extern __declspec (package) const GUID IID_ISpecificationSectionStyles;
extern __declspec (package) const GUID IID_ISpecificationSectionStyle;
extern __declspec (package) const GUID IID_IAdditionalBlockStyles;
extern __declspec (package) const GUID IID_IAdditionalBlockStyle;
extern __declspec (package) const GUID IID_ISpecificationBaseObjects;
extern __declspec (package) const GUID IID_ISpecificationObject;
extern __declspec (package) const GUID IID_ISpecificationBaseObject;
extern __declspec (package) const GUID IID_ISpecificationColumns;
extern __declspec (package) const GUID IID_ISpecificationColumn;
extern __declspec (package) const GUID IID_ISpecificationColumnItems;
extern __declspec (package) const GUID IID_ISpecificationColumnItem;
extern __declspec (package) const GUID IID_IText;
extern __declspec (package) const GUID IID_ITextLine;
extern __declspec (package) const GUID IID_ITextItem;
extern __declspec (package) const GUID IID_IAttachedDocuments;
extern __declspec (package) const GUID IID_IAttachedDocument;
extern __declspec (package) const GUID IID_ISpecificationCommentObjects;
extern __declspec (package) const GUID IID_ISpecificationCommentObject;
extern __declspec (package) const GUID IID_ILayoutSheets;
extern __declspec (package) const GUID IID_ILayoutSheet;
extern __declspec (package) const GUID IID_IStamp;
extern __declspec (package) const GUID IID_IUserDataStoragesMng;
extern __declspec (package) const GUID IID_IUserDataStorages;
extern __declspec (package) const GUID IID_IUserDataStorage;
extern __declspec (package) const GUID IID_IProcessParam;
extern __declspec (package) const GUID IID_IPropertyTabs;
extern __declspec (package) const GUID IID_IPropertyTab;
extern __declspec (package) const GUID IID_IPropertyControls;
extern __declspec (package) const GUID IID_IPropertyControl;
extern __declspec (package) const GUID IID_IPropertyManager;
extern __declspec (package) const GUID IID_ILibraryManager;
extern __declspec (package) const GUID IID_IProceduresLibraries;
extern __declspec (package) const GUID IID_ILibrary;
extern __declspec (package) const GUID IID_IProceduresLibrary;
extern __declspec (package) const GUID IID_IProcedures;
extern __declspec (package) const GUID IID_IProcedure;
extern __declspec (package) const GUID IID_IInsertsLibraries;
extern __declspec (package) const GUID IID_IInsertsLibrary;
extern __declspec (package) const GUID IID_IInserts;
extern __declspec (package) const GUID IID_IInsert;
extern __declspec (package) const GUID IID_IKompasError;
extern __declspec (package) const GUID IID_IConverter;
extern __declspec (package) const GUID IID_ICheckSum;
extern __declspec (package) const GUID IID_IProgressBarIndicator;
extern __declspec (package) const GUID IID_ISystemSettings;
extern __declspec (package) const GUID IID_ILibArraySettings;
extern __declspec (package) const GUID IID_IMath2D;
extern __declspec (package) const GUID IID_ICurve2D;
extern __declspec (package) const GUID IID_IPrintJob;
extern __declspec (package) const GUID IID_IPrintJob_Sheet;
extern __declspec (package) const GUID IID_IKompasDocument2D;
extern __declspec (package) const GUID IID_IViewsAndLayersManager;
extern __declspec (package) const GUID IID_IDrawingObjects;
extern __declspec (package) const GUID IID_IViews;
extern __declspec (package) const GUID IID_IDrawingObject;
extern __declspec (package) const GUID IID_IView;
extern __declspec (package) const GUID IID_ILayers;
extern __declspec (package) const GUID IID_ILayer;
extern __declspec (package) const GUID IID_IVariable7;
extern __declspec (package) const GUID IID_ILayerGroups;
extern __declspec (package) const GUID IID_ILayerGroup;
extern __declspec (package) const GUID IID_ILayerFilterConditions;
extern __declspec (package) const GUID IID_ILayerFilterCondition;
extern __declspec (package) const GUID IID_IKompasDocument3D;
extern __declspec (package) const GUID IID_IModelObject;
extern __declspec (package) const GUID IID_IPart7;
extern __declspec (package) const GUID IID_IFeature7;
extern __declspec (package) const GUID IID_IModelObjects;
extern __declspec (package) const GUID IID_IParts7;
extern __declspec (package) const GUID IID_IVariableTable;
extern __declspec (package) const GUID IID_IPoint3D;
extern __declspec (package) const GUID IID_ILocalCoordinateSystem;
extern __declspec (package) const GUID IID_ISelectionManager;
extern __declspec (package) const GUID IID_IChooseManager;
extern __declspec (package) const GUID IID_IAttribute;
extern __declspec (package) const GUID IID_IAttributeType;
extern __declspec (package) const GUID IID_IColumnInfo;
extern __declspec (package) const GUID IID_IDrawingObject1;
extern __declspec (package) const GUID IID_IParametriticConstraint;
extern __declspec (package) const GUID IID_IKompasDocument1;
extern __declspec (package) const GUID IID_IKompasDocument2D1;
extern __declspec (package) const GUID IID_IMacroObject;
extern __declspec (package) const GUID IID_IDrawingGroups;
extern __declspec (package) const GUID IID_IDrawingGroup;
extern __declspec (package) const GUID IID_ICopyObjectParam;
extern __declspec (package) const GUID IID_IDrawingDocument;
extern __declspec (package) const GUID IID_ISpecRough;
extern __declspec (package) const GUID IID_ITechnicalDemand;
extern __declspec (package) const GUID IID_IFragmentDocument;
extern __declspec (package) const GUID IID_ISpecificationDocument;
extern __declspec (package) const GUID IID_ITextDocument;
extern __declspec (package) const GUID IID_IPartDocument;
extern __declspec (package) const GUID IID_IAssemblyDocument;
extern __declspec (package) const GUID IID_IDimensionText;
extern __declspec (package) const GUID IID_IDimensionParams;
extern __declspec (package) const GUID IID_ILoadCombination;
extern __declspec (package) const GUID IID_IFrameTreesManager;
extern __declspec (package) const GUID IID_IAttrTypeMng;
extern __declspec (package) const GUID IID_IPrintJob_OutputParameters;
extern __declspec (package) const GUID IID_IProperty;
extern __declspec (package) const GUID IID_IPropertyMng;
extern __declspec (package) const GUID IID_IPropertyKeeper;
extern __declspec (package) const GUID IID_IReportProcess;
extern __declspec (package) const GUID IID_IReportFilter;
extern __declspec (package) const GUID IID_IPropertyControl1;
extern __declspec (package) const GUID IID_IPropertyEdit;
extern __declspec (package) const GUID IID_IPropertySeparator;
extern __declspec (package) const GUID IID_IPropertyList;
extern __declspec (package) const GUID IID_IPropertyCheckBox;
extern __declspec (package) const GUID IID_IPropertyMultiButton;
extern __declspec (package) const GUID IID_IPropertySlideBox;
extern __declspec (package) const GUID IID_IPropertyUserControl;
extern __declspec (package) const GUID IID_IPropertyGrid;
extern __declspec (package) const GUID IID_IPropertyTextButton;
extern __declspec (package) const GUID IID_IPropertySpinEdit;
extern __declspec (package) const GUID IID_IPropertyFileName;
extern __declspec (package) const GUID IID_IPropertyColor;
extern __declspec (package) const GUID IID_IPropertyEditList;
extern __declspec (package) const GUID IID_IPropertyToolBar;
extern __declspec (package) const GUID IID_IPropertyBmpList;
extern __declspec (package) const GUID IID_IProcessInfoWindow;
extern __declspec (package) const GUID IID_IPropertyLibExplorer;
extern __declspec (package) const GUID IID_IAssociationView;
extern __declspec (package) const GUID IID_IViewDesignation;
extern __declspec (package) const GUID IID_IAssociationViewElements;
extern __declspec (package) const GUID IID_IBreakViewParam;
extern __declspec (package) const GUID IID_ICutViewParam;
extern __declspec (package) const GUID IID_IHatchParam;
extern __declspec (package) const GUID IID_IDocument2DSettings;
extern __declspec (package) const GUID IID_IDrawingDocumentSettings;
extern __declspec (package) const GUID IID_IFragmentDocumentSettings;
extern __declspec (package) const GUID IID_ILibItemSettings;
extern __declspec (package) const GUID IID_IInsertionParameters;
extern __declspec (package) const GUID IID_IInsertionDefinition;
extern __declspec (package) const GUID IID_ITableCell;
extern __declspec (package) const GUID IID_ITable;
extern __declspec (package) const GUID IID_ITableRange;
extern __declspec (package) const GUID IID_ICellFormat;
extern __declspec (package) const GUID IID_ICellBoundaries;
extern __declspec (package) const GUID DIID_ksPropertyManagerNotify;
extern __declspec (package) const GUID DIID_ksPropertyUserControlNotify;
extern __declspec (package) const GUID DIID_ksDocumentFrameNotify;
extern __declspec (package) const GUID IID_IPaintObject;
extern __declspec (package) const GUID DIID_ksGLObject;
extern __declspec (package) const GUID IID_IGabaritObject;
extern __declspec (package) const GUID DIID_ksDrawingObjectNotify;
extern __declspec (package) const GUID DIID_ksViewsAndLayersManagerNotify;
extern __declspec (package) const GUID DIID_ksLibraryManagerNotify;
extern __declspec (package) const GUID DIID_ksSpecificationDescriptionNotify;
extern __declspec (package) const GUID DIID_ksSpecificationObjectNotify;
extern __declspec (package) const GUID DIID_ksLayoutSheetsNotify;
extern __declspec (package) const GUID DIID_ksModelObjectNotify;
extern __declspec (package) const GUID DIID_ksDocument3DNotify7;
extern __declspec (package) const GUID IID_IModelObjectNotifyResult;
extern __declspec (package) const GUID IID_IKompasDocument3DNotifyResult;
extern __declspec (package) const GUID IID_IModelContainer;
extern __declspec (package) const GUID IID_ISketchs;
extern __declspec (package) const GUID IID_ISketch;
extern __declspec (package) const GUID IID_IExtrusions;
extern __declspec (package) const GUID IID_IExtrusion;
extern __declspec (package) const GUID IID_IPoints3D;
extern __declspec (package) const GUID IID_IMassInertiaParam7;
extern __declspec (package) const GUID IID_IThinParameters;
extern __declspec (package) const GUID IID_ICutExtrusion;
extern __declspec (package) const GUID IID_IChooseBodies7;
extern __declspec (package) const GUID IID_IBody7;
extern __declspec (package) const GUID IID_ISheetMetalBodies;
extern __declspec (package) const GUID IID_ISheetMetalBody;
extern __declspec (package) const GUID IID_ISheetMetalContainer;
extern __declspec (package) const GUID IID_ISheetMetalBends;
extern __declspec (package) const GUID IID_ISheetMetalBend;
extern __declspec (package) const GUID IID_ISheetMetalLineBends;
extern __declspec (package) const GUID IID_ISheetMetalLineBend;
extern __declspec (package) const GUID IID_ISheetMetalHoles;
extern __declspec (package) const GUID IID_ISheetMetalHole;
extern __declspec (package) const GUID IID_ISheetMetalCuts;
extern __declspec (package) const GUID IID_ISheetMetalCut;
extern __declspec (package) const GUID IID_IPoint3DParamDisplace;
extern __declspec (package) const GUID IID_IPoint3DParamIntersect;
extern __declspec (package) const GUID IID_IPoint3DParamCenter;
extern __declspec (package) const GUID IID_IPoint3DParamCurve;
extern __declspec (package) const GUID IID_IPoint3DParamSurface;
extern __declspec (package) const GUID IID_IPoint3DParamProjection;
extern __declspec (package) const GUID IID_ISourcePart7Params;
extern __declspec (package) const GUID IID_ISymbols3DContainer;
extern __declspec (package) const GUID IID_ILineDimensions3D;
extern __declspec (package) const GUID IID_IBaseLineDimension3D;
extern __declspec (package) const GUID IID_IRadialDimensions3D;
extern __declspec (package) const GUID IID_IRadialDimension3D;
extern __declspec (package) const GUID IID_IDiametralDimensions3D;
extern __declspec (package) const GUID IID_IDiametralDimension3D;
extern __declspec (package) const GUID IID_IAngleDimensions3D;
extern __declspec (package) const GUID IID_IAngleDimension3D;
extern __declspec (package) const GUID IID_ILeaders3D;
extern __declspec (package) const GUID IID_IBaseLeader3D;
extern __declspec (package) const GUID IID_IRoughs3D;
extern __declspec (package) const GUID IID_IRough3D;
extern __declspec (package) const GUID IID_IBases3D;
extern __declspec (package) const GUID IID_IBase3D;
extern __declspec (package) const GUID IID_ITolerances3D;
extern __declspec (package) const GUID IID_ITolerance3D;
extern __declspec (package) const GUID IID_ILineDimension3D;
extern __declspec (package) const GUID IID_ICurveVertexParam;
extern __declspec (package) const GUID IID_ISplines3D;
extern __declspec (package) const GUID IID_ISpline3D;
extern __declspec (package) const GUID IID_ILocalCoordinateSystems;
extern __declspec (package) const GUID IID_IAuxiliaryGeomContainer;
extern __declspec (package) const GUID IID_IPolyLines;
extern __declspec (package) const GUID IID_IPolyLine;
extern __declspec (package) const GUID IID_IControlPoints;
extern __declspec (package) const GUID IID_IControlPoint;
extern __declspec (package) const GUID IID_IConjunctivePoints;
extern __declspec (package) const GUID IID_IConjunctivePoint;
extern __declspec (package) const GUID IID_ISplitLines;
extern __declspec (package) const GUID IID_ISplitLine;
extern __declspec (package) const GUID IID_ISurfacesIntersectionCurves;
extern __declspec (package) const GUID IID_ISurfacesIntersectionCurve;
extern __declspec (package) const GUID IID_IEquidistants3D;
extern __declspec (package) const GUID IID_IEquidistant3D;
extern __declspec (package) const GUID IID_ILocalCSAxesDirectionParam;
extern __declspec (package) const GUID IID_ILocalCSEulerParam;
extern __declspec (package) const GUID IID_IRoughParams;
extern __declspec (package) const GUID IID_IBranchs3D;
extern __declspec (package) const GUID IID_ILocalCSOrientByObjectParam;
extern __declspec (package) const GUID IID_ILocalCSObject;
extern __declspec (package) const GUID IID_ISurfaceContainer;
extern __declspec (package) const GUID IID_ISurfacePatches;
extern __declspec (package) const GUID IID_ISurfacePatch;
extern __declspec (package) const GUID IID_IFaceRemovers;
extern __declspec (package) const GUID IID_IFaceRemover;
extern __declspec (package) const GUID IID_ISurfaceSewers;
extern __declspec (package) const GUID IID_ISurfaceSewer;
extern __declspec (package) const GUID IID_INurbsSurfaces;
extern __declspec (package) const GUID IID_INurbsSurface;
extern __declspec (package) const GUID IID_IColorParam7;
extern __declspec (package) const GUID IID_IDrawingText;
extern __declspec (package) const GUID IID_IDrawingTexts;
extern __declspec (package) const GUID IID_IDrawingContainer;
extern __declspec (package) const GUID IID_ILineSegments;
extern __declspec (package) const GUID IID_ILineSegment;
extern __declspec (package) const GUID IID_IArcs;
extern __declspec (package) const GUID IID_IArc;
extern __declspec (package) const GUID IID_IMultilines;
extern __declspec (package) const GUID IID_IMultiline;
extern __declspec (package) const GUID IID_IContour;
extern __declspec (package) const GUID IID_IDrawingContours;
extern __declspec (package) const GUID IID_IDrawingContour;
extern __declspec (package) const GUID IID_ICircles;
extern __declspec (package) const GUID IID_ICircle;
extern __declspec (package) const GUID IID_IPoints;
extern __declspec (package) const GUID IID_IPoint;
extern __declspec (package) const GUID IID_IBeziers;
extern __declspec (package) const GUID IID_IBezier;
extern __declspec (package) const GUID IID_IMacroObjects;
extern __declspec (package) const GUID IID_ILines;
extern __declspec (package) const GUID IID_ILine;
extern __declspec (package) const GUID IID_IPolyLines2D;
extern __declspec (package) const GUID IID_IPolyLine2D;
extern __declspec (package) const GUID IID_INurbses;
extern __declspec (package) const GUID IID_INurbs;
extern __declspec (package) const GUID IID_IRasters;
extern __declspec (package) const GUID IID_IRaster;
extern __declspec (package) const GUID IID_IOleDrawingObjects;
extern __declspec (package) const GUID IID_IOleDrawingObject;
extern __declspec (package) const GUID IID_IEllipses;
extern __declspec (package) const GUID IID_IEllipse;
extern __declspec (package) const GUID IID_IEllipseArcs;
extern __declspec (package) const GUID IID_IEllipseArc;
extern __declspec (package) const GUID IID_IRectangles;
extern __declspec (package) const GUID IID_IRectangle;
extern __declspec (package) const GUID IID_IRegularPolygons;
extern __declspec (package) const GUID IID_IRegularPolygon;
extern __declspec (package) const GUID IID_IEquidistants;
extern __declspec (package) const GUID IID_IEquidistant;
extern __declspec (package) const GUID IID_IInsertionObjects;
extern __declspec (package) const GUID IID_IInsertionObject;
extern __declspec (package) const GUID IID_IHatches;
extern __declspec (package) const GUID IID_IHatch;
extern __declspec (package) const GUID IID_IColourings;
extern __declspec (package) const GUID IID_IColouring;
extern __declspec (package) const GUID IID_IMark;
extern __declspec (package) const GUID IID_IMarks;
extern __declspec (package) const GUID IID_IMarkInsideForm;
extern __declspec (package) const GUID IID_IMarkOnLine;
extern __declspec (package) const GUID IID_IMarkOnLeader;
extern __declspec (package) const GUID IID_IBuildingAxis;
extern __declspec (package) const GUID IID_IMarkNode;
extern __declspec (package) const GUID IID_IMarkNodes;
extern __declspec (package) const GUID IID_IBuildingAxes;
extern __declspec (package) const GUID IID_IStraightAxis;
extern __declspec (package) const GUID IID_IAxisJut;
extern __declspec (package) const GUID IID_IArcAxis;
extern __declspec (package) const GUID IID_ICircleAxis;
extern __declspec (package) const GUID IID_ICutUnitMarking;
extern __declspec (package) const GUID IID_ICutUnitMarkings;
extern __declspec (package) const GUID IID_IUnitMarking;
extern __declspec (package) const GUID IID_IUnitMarkings;
extern __declspec (package) const GUID IID_IBuildingContainer;
extern __declspec (package) const GUID IID_IMultiTextLeaders;
extern __declspec (package) const GUID IID_IMultiTextLeader;
extern __declspec (package) const GUID IID_IUnitNumbers;
extern __declspec (package) const GUID IID_IUnitNumber;
extern __declspec (package) const GUID IID_IBraces;
extern __declspec (package) const GUID IID_IBrace;
extern __declspec (package) const GUID IID_ICutLines;
extern __declspec (package) const GUID IID_ICutLine;
extern __declspec (package) const GUID IID_ISymbols2DContainer;
extern __declspec (package) const GUID IID_ILineDimensions;
extern __declspec (package) const GUID IID_ILineDimension;
extern __declspec (package) const GUID IID_IRadialDimensions;
extern __declspec (package) const GUID IID_IRadialDimension;
extern __declspec (package) const GUID IID_IDiametralDimensions;
extern __declspec (package) const GUID IID_IDiametralDimension;
extern __declspec (package) const GUID IID_IAngleDimensions;
extern __declspec (package) const GUID IID_IAngleDimension;
extern __declspec (package) const GUID IID_IBreakLineDimensions;
extern __declspec (package) const GUID IID_IBreakLineDimension;
extern __declspec (package) const GUID IID_IHeightDimensions;
extern __declspec (package) const GUID IID_IHeightDimension;
extern __declspec (package) const GUID IID_IArcDimensions;
extern __declspec (package) const GUID IID_IArcDimension;
extern __declspec (package) const GUID IID_IBreakRadialDimensions;
extern __declspec (package) const GUID IID_IBreakRadialDimension;
extern __declspec (package) const GUID IID_IRoughs;
extern __declspec (package) const GUID IID_IRough;
extern __declspec (package) const GUID IID_ILeaders;
extern __declspec (package) const GUID IID_IBaseLeader;
extern __declspec (package) const GUID IID_IBases;
extern __declspec (package) const GUID IID_IBase;
extern __declspec (package) const GUID IID_ITolerances;
extern __declspec (package) const GUID IID_ITolerance;
extern __declspec (package) const GUID IID_IDrawingTables;
extern __declspec (package) const GUID IID_IDrawingTable;
extern __declspec (package) const GUID IID_IViewPointers;
extern __declspec (package) const GUID IID_IViewPointer;
extern __declspec (package) const GUID IID_ICentreMarkers;
extern __declspec (package) const GUID IID_ICentreMarker;
extern __declspec (package) const GUID IID_IRemoteElements;
extern __declspec (package) const GUID IID_IRemoteElement;
extern __declspec (package) const GUID IID_IAxisLines;
extern __declspec (package) const GUID IID_IAxisLine;
extern __declspec (package) const GUID IID_IWaveLines;
extern __declspec (package) const GUID IID_IWaveLine;
extern __declspec (package) const GUID IID_IBrokenLines;
extern __declspec (package) const GUID IID_IBrokenLine;
extern __declspec (package) const GUID IID_IBreakAngleDimension;
extern __declspec (package) const GUID IID_IBranchs;
extern __declspec (package) const GUID IID_ILeader;
extern __declspec (package) const GUID IID_IMarkLeader;
extern __declspec (package) const GUID IID_IPositionLeader;
extern __declspec (package) const GUID IID_IChangeLeader;
extern __declspec (package) const GUID IID_IBrandLeader;
extern __declspec (package) const GUID IID_IToleranceParam;
extern __declspec (package) const GUID IID_IContourSegment;
extern __declspec (package) const GUID IID_IContourLineSegment;
extern __declspec (package) const GUID IID_IContourArc;
extern __declspec (package) const GUID IID_IInsertionFragment;
extern __declspec (package) const GUID IID_IInsertionView;
extern __declspec (package) const GUID IID_IInsertionsManager;
extern __declspec (package) const GUID IID_IAxisLineParam;
extern __declspec (package) const GUID IID_IBoundariesObject;
extern __declspec (package) const GUID IID_IAnnotativeObject;
extern __declspec (package) const GUID IID_IAnnotativeContainer;
extern __declspec (package) const GUID IID_ICurveCopyObjectParam;
extern __declspec (package) const GUID IID_ICircleCopyObjectParam;
extern __declspec (package) const GUID IID_IExternalTessellationObject;
extern __declspec (package) const GUID IID_IExternalTessellationManager;
extern __declspec (package) const GUID IID_IExternalGDIObject;
extern __declspec (package) const GUID CLSID_KompasDocument;
extern __declspec (package) const GUID CLSID__Application;
extern __declspec (package) const GUID CLSID_Documents;
extern __declspec (package) const GUID CLSID_DocumentFrame;
extern __declspec (package) const GUID CLSID_DocumentFrames;
extern __declspec (package) const GUID CLSID_ProcessParam;
extern __declspec (package) const GUID CLSID_PropertyControls;
extern __declspec (package) const GUID CLSID_PropertyTab;
extern __declspec (package) const GUID CLSID_PropertyTabs;
extern __declspec (package) const GUID CLSID_PropertyEdit;
extern __declspec (package) const GUID CLSID_PropertySeparator;
extern __declspec (package) const GUID CLSID_PropertyList;
extern __declspec (package) const GUID CLSID_PropertyCheckBox;
extern __declspec (package) const GUID CLSID_PropertyMultiButton;
extern __declspec (package) const GUID CLSID_PropertySlideBox;
extern __declspec (package) const GUID CLSID_PropertyUserControl;
extern __declspec (package) const GUID CLSID_PropertyGrid;
extern __declspec (package) const GUID CLSID_PropertyManager;
extern __declspec (package) const GUID CLSID_KompasDocument3D;
extern __declspec (package) const GUID CLSID_DrawingDocument;
extern __declspec (package) const GUID CLSID_FragmentDocument;
extern __declspec (package) const GUID CLSID_SpecificationDocument;
extern __declspec (package) const GUID CLSID_TextDocument;
extern __declspec (package) const GUID CLSID_PartDocument;
extern __declspec (package) const GUID CLSID_AssemblyDocument;
extern __declspec (package) const GUID CLSID_PropertyTextButton;
extern __declspec (package) const GUID CLSID_PropertySpinEdit;
extern __declspec (package) const GUID CLSID_ViewsAndLayersManager;
extern __declspec (package) const GUID CLSID_DrawingObject;
extern __declspec (package) const GUID CLSID_DrawingObjects;
extern __declspec (package) const GUID CLSID_Views;
extern __declspec (package) const GUID CLSID_View;
extern __declspec (package) const GUID CLSID_AssociationView;
extern __declspec (package) const GUID CLSID_LayerGroups;
extern __declspec (package) const GUID CLSID_LayerGroup;
extern __declspec (package) const GUID CLSID_Layers;
extern __declspec (package) const GUID CLSID_Layer;
extern __declspec (package) const GUID CLSID_LayerFilterCondition;
extern __declspec (package) const GUID CLSID_LayerFilterConditions;
extern __declspec (package) const GUID CLSID_DocumentSettings;
extern __declspec (package) const GUID CLSID_Document2DSettings;
extern __declspec (package) const GUID CLSID_LibraryManager;
extern __declspec (package) const GUID CLSID_ProceduresLibrary;
extern __declspec (package) const GUID CLSID_Procedures;
extern __declspec (package) const GUID CLSID_Procedure;
extern __declspec (package) const GUID CLSID_InsertsLibrary;
extern __declspec (package) const GUID CLSID_Inserts;
extern __declspec (package) const GUID CLSID_Insert;
extern __declspec (package) const GUID CLSID_InsertsLibraries;
extern __declspec (package) const GUID CLSID_ProceduresLibraries;
extern __declspec (package) const GUID CLSID_SpecificationDescriptions;
extern __declspec (package) const GUID CLSID_SpecificationDescription;
extern __declspec (package) const GUID CLSID_SpecificationStyle;
extern __declspec (package) const GUID CLSID_SpecificationColumnStyles;
extern __declspec (package) const GUID CLSID_SpecificationColumnStyle;
extern __declspec (package) const GUID CLSID_SpecificationSectionStyles;
extern __declspec (package) const GUID CLSID_SpecificationSectionStyle;
extern __declspec (package) const GUID CLSID_AdditionalBlockStyles;
extern __declspec (package) const GUID CLSID_AdditionalBlockStyle;
extern __declspec (package) const GUID CLSID_SheetFormat;
extern __declspec (package) const GUID CLSID_SpecificationTuning;
extern __declspec (package) const GUID CLSID_SpecificationTuningSections;
extern __declspec (package) const GUID CLSID_SpecificationTuningSection;
extern __declspec (package) const GUID CLSID_SpecificationSubsections;
extern __declspec (package) const GUID CLSID_SpecificationSubsection;
extern __declspec (package) const GUID CLSID_AdditionalBlockTunings;
extern __declspec (package) const GUID CLSID_AdditionalBlockTuning;
extern __declspec (package) const GUID CLSID_AdditionalBlockSectionTunings;
extern __declspec (package) const GUID CLSID_AdditionalBlockSectionTuning;
extern __declspec (package) const GUID CLSID_TextFont;
extern __declspec (package) const GUID CLSID_TextStyle;
extern __declspec (package) const GUID CLSID_Tabulators;
extern __declspec (package) const GUID CLSID_Tabulator;
extern __declspec (package) const GUID CLSID_KompasError;
extern __declspec (package) const GUID CLSID_SpecificationBaseObjects;
extern __declspec (package) const GUID CLSID_SpecificationCommentObjects;
extern __declspec (package) const GUID CLSID_SpecificationObject;
extern __declspec (package) const GUID CLSID_SpecificationBaseObject;
extern __declspec (package) const GUID CLSID_SpecificationCommentObject;
extern __declspec (package) const GUID CLSID_SpecificationColumns;
extern __declspec (package) const GUID CLSID_SpecificationColumn;
extern __declspec (package) const GUID CLSID_SpecificationColumnItems;
extern __declspec (package) const GUID CLSID_SpecificationColumnItem;
extern __declspec (package) const GUID CLSID_AttachedDocuments;
extern __declspec (package) const GUID CLSID_AttachedDocument;
extern __declspec (package) const GUID CLSID_PropertyFileName;
extern __declspec (package) const GUID CLSID_PropertyColor;
extern __declspec (package) const GUID CLSID_LayoutSheets;
extern __declspec (package) const GUID CLSID_LayoutSheet;
extern __declspec (package) const GUID CLSID_Converter;
extern __declspec (package) const GUID CLSID_CheckSum;
extern __declspec (package) const GUID CLSID_ModelObject;
extern __declspec (package) const GUID CLSID_ModelObjects;
extern __declspec (package) const GUID CLSID_Parts7;
extern __declspec (package) const GUID CLSID_Part7;
extern __declspec (package) const GUID CLSID_Sketchs;
extern __declspec (package) const GUID CLSID_Extrusions;
extern __declspec (package) const GUID CLSID_VariableTable;
extern __declspec (package) const GUID CLSID_ProgressBarIndicator;
extern __declspec (package) const GUID CLSID_Text;
extern __declspec (package) const GUID CLSID_TextLine;
extern __declspec (package) const GUID CLSID_TextItem;
extern __declspec (package) const GUID CLSID_DrawingText;
extern __declspec (package) const GUID CLSID_DrawingTexts;
extern __declspec (package) const GUID CLSID_Marks;
extern __declspec (package) const GUID CLSID_MarkInsideForm;
extern __declspec (package) const GUID CLSID_MarkOnLine;
extern __declspec (package) const GUID CLSID_MarkOnLeader;
extern __declspec (package) const GUID CLSID_UserDataStoragesMng;
extern __declspec (package) const GUID CLSID_UserDataStorages;
extern __declspec (package) const GUID CLSID_UserDataStorage;
extern __declspec (package) const GUID CLSID_BuildingAxes;
extern __declspec (package) const GUID CLSID_StraightAxis;
extern __declspec (package) const GUID CLSID_ArcAxis;
extern __declspec (package) const GUID CLSID_CircleAxis;
extern __declspec (package) const GUID CLSID_AxisJut;
extern __declspec (package) const GUID CLSID_MarkNodes;
extern __declspec (package) const GUID CLSID_MarkNode;
extern __declspec (package) const GUID CLSID_LineSegments;
extern __declspec (package) const GUID CLSID_LineSegment;
extern __declspec (package) const GUID CLSID_SystemSettings;
extern __declspec (package) const GUID CLSID_CutUnitMarking;
extern __declspec (package) const GUID CLSID_CutUnitMarkings;
extern __declspec (package) const GUID CLSID_UnitMarking;
extern __declspec (package) const GUID CLSID_UnitMarkings;
extern __declspec (package) const GUID CLSID_Arcs;
extern __declspec (package) const GUID CLSID__Arc;
extern __declspec (package) const GUID CLSID_MultiTextLeader;
extern __declspec (package) const GUID CLSID_MultiTextLeaders;
extern __declspec (package) const GUID CLSID_Brace;
extern __declspec (package) const GUID CLSID_Braces;
extern __declspec (package) const GUID CLSID_UnitNumber;
extern __declspec (package) const GUID CLSID_UnitNumbers;
extern __declspec (package) const GUID CLSID_Sketch;
extern __declspec (package) const GUID CLSID_Extrusion;
extern __declspec (package) const GUID CLSID_ParametriticConstraint;
extern __declspec (package) const GUID CLSID_CutExtrusion;
extern __declspec (package) const GUID CLSID_Body7;
extern __declspec (package) const GUID CLSID_SheetMetalBodies;
extern __declspec (package) const GUID CLSID_SheetMetalBody;
extern __declspec (package) const GUID CLSID_Points3D;
extern __declspec (package) const GUID CLSID_Point3D;
extern __declspec (package) const GUID CLSID_Point3DParamDisplace;
extern __declspec (package) const GUID CLSID_Point3DParamIntersect;
extern __declspec (package) const GUID CLSID_Point3DParamCenter;
extern __declspec (package) const GUID CLSID_Point3DParamCurve;
extern __declspec (package) const GUID CLSID_Point3DParamSurface;
extern __declspec (package) const GUID CLSID_Point3DParamProjection;
extern __declspec (package) const GUID CLSID_SheetMetalBends;
extern __declspec (package) const GUID CLSID_SheetMetalBend;
extern __declspec (package) const GUID CLSID_SheetMetalLineBends;
extern __declspec (package) const GUID CLSID_SheetMetalLineBend;
extern __declspec (package) const GUID CLSID_SheetMetalHole;
extern __declspec (package) const GUID CLSID_SheetMetalHoles;
extern __declspec (package) const GUID CLSID_SheetMetalCut;
extern __declspec (package) const GUID CLSID_SheetMetalCuts;
extern __declspec (package) const GUID CLSID_RadialDimension;
extern __declspec (package) const GUID CLSID_RadialDimensions;
extern __declspec (package) const GUID CLSID_BreakRadialDimension;
extern __declspec (package) const GUID CLSID_RadialBreakDimensions;
extern __declspec (package) const GUID CLSID_DiametralDimension;
extern __declspec (package) const GUID CLSID_DiametralDimensions;
extern __declspec (package) const GUID CLSID_LineDimensions3D;
extern __declspec (package) const GUID CLSID_BaseLineDimension3D;
extern __declspec (package) const GUID CLSID_LineDimension3D;
extern __declspec (package) const GUID CLSID_LineDimension;
extern __declspec (package) const GUID CLSID_LineDimensions;
extern __declspec (package) const GUID CLSID_RadialDimension3D;
extern __declspec (package) const GUID CLSID_DiametralDimension3D;
extern __declspec (package) const GUID CLSID_RadialDimensions3D;
extern __declspec (package) const GUID CLSID_DiametralDimensions3D;
extern __declspec (package) const GUID CLSID_BreakLineDimension;
extern __declspec (package) const GUID CLSID_BreakLineDimensions;
extern __declspec (package) const GUID CLSID_HeightDimension;
extern __declspec (package) const GUID CLSID_HeightDimensions;
extern __declspec (package) const GUID CLSID_AngleDimension;
extern __declspec (package) const GUID CLSID_AngleDimensions;
extern __declspec (package) const GUID CLSID_BreakAngleDimension;
extern __declspec (package) const GUID CLSID_ArcDimension;
extern __declspec (package) const GUID CLSID_ArcDimensions;
extern __declspec (package) const GUID CLSID_AngleDimension3D;
extern __declspec (package) const GUID CLSID_AngleDimensions3D;
extern __declspec (package) const GUID CLSID_CurveVertexParam;
extern __declspec (package) const GUID CLSID_Splines3D;
extern __declspec (package) const GUID CLSID_Spline3D;
extern __declspec (package) const GUID CLSID_LocalCoordinateSystem;
extern __declspec (package) const GUID CLSID_LocalCoordinateSystems;
extern __declspec (package) const GUID CLSID_LocalCSAxesDirectionParam;
extern __declspec (package) const GUID CLSID_LocalCSEulerParam;
extern __declspec (package) const GUID CLSID_PolyLine;
extern __declspec (package) const GUID CLSID_PolyLines;
extern __declspec (package) const GUID CLSID_BaseLeader;
extern __declspec (package) const GUID CLSID_Leaders;
extern __declspec (package) const GUID CLSID_Roughs;
extern __declspec (package) const GUID CLSID_Rough;
extern __declspec (package) const GUID CLSID_BaseLeader3D;
extern __declspec (package) const GUID CLSID_Leaders3D;
extern __declspec (package) const GUID CLSID_Rough3D;
extern __declspec (package) const GUID CLSID_Roughs3D;
extern __declspec (package) const GUID CLSID__Base;
extern __declspec (package) const GUID CLSID_Bases;
extern __declspec (package) const GUID CLSID_TableCell;
extern __declspec (package) const GUID CLSID_DrawingTable;
extern __declspec (package) const GUID CLSID_DrawingTables;
extern __declspec (package) const GUID CLSID_Tolerances;
extern __declspec (package) const GUID CLSID__Tolerance;
extern __declspec (package) const GUID CLSID_Bases3D;
extern __declspec (package) const GUID CLSID_Base3D;
extern __declspec (package) const GUID CLSID_Tolerances3D;
extern __declspec (package) const GUID CLSID_Tolerance3D;
extern __declspec (package) const GUID CLSID_LocalCSOrientByObjectParam;
extern __declspec (package) const GUID CLSID_CutLine;
extern __declspec (package) const GUID CLSID_CutLines;
extern __declspec (package) const GUID CLSID_ExternalTessellationObject;
extern __declspec (package) const GUID CLSID_ControlPoints;
extern __declspec (package) const GUID CLSID_ControlPoint;
extern __declspec (package) const GUID CLSID_ConjunctivePoints;
extern __declspec (package) const GUID CLSID_ConjunctivePoint;
extern __declspec (package) const GUID CLSID_PropertyBmpList;
extern __declspec (package) const GUID CLSID_ViewPointer;
extern __declspec (package) const GUID CLSID_ViewPointers;
extern __declspec (package) const GUID CLSID_Multiline;
extern __declspec (package) const GUID CLSID_Multilines;
extern __declspec (package) const GUID CLSID_Contour;
extern __declspec (package) const GUID CLSID_ContourSegment;
extern __declspec (package) const GUID CLSID_ContourLineSegment;
extern __declspec (package) const GUID CLSID_ContourArc;
extern __declspec (package) const GUID CLSID_Curve2D;
extern __declspec (package) const GUID CLSID_DrawingContours;
extern __declspec (package) const GUID CLSID_DrawingContour;
extern __declspec (package) const GUID CLSID_SplitLines;
extern __declspec (package) const GUID CLSID_SplitLine;
extern __declspec (package) const GUID CLSID_SurfacePatches;
extern __declspec (package) const GUID CLSID_SurfacePatch;
extern __declspec (package) const GUID CLSID_FaceRemovers;
extern __declspec (package) const GUID CLSID_FaceRemover;
extern __declspec (package) const GUID CLSID_SurfaceSewers;
extern __declspec (package) const GUID CLSID_SurfaceSewer;
extern __declspec (package) const GUID CLSID_NurbsSurfaces;
extern __declspec (package) const GUID CLSID_NurbsSurface;
extern __declspec (package) const GUID CLSID_PropertyLibExplorer;
extern __declspec (package) const GUID CLSID_ExternalGDIObject;
extern __declspec (package) const GUID CLSID_Circles;
extern __declspec (package) const GUID CLSID__Circle;
extern __declspec (package) const GUID CLSID_MacroObjects;
extern __declspec (package) const GUID CLSID_MacroObject;
extern __declspec (package) const GUID CLSID_Ellipses;
extern __declspec (package) const GUID CLSID__Ellipse;
extern __declspec (package) const GUID CLSID_EllipseArcs;
extern __declspec (package) const GUID CLSID__EllipseArc;
extern __declspec (package) const GUID CLSID__Point;
extern __declspec (package) const GUID CLSID_Points;
extern __declspec (package) const GUID CLSID__Line;
extern __declspec (package) const GUID CLSID_Lines;
extern __declspec (package) const GUID CLSID__Bezier;
extern __declspec (package) const GUID CLSID_Beziers;
extern __declspec (package) const GUID CLSID_Rectangles;
extern __declspec (package) const GUID CLSID__Rectangle;
extern __declspec (package) const GUID CLSID_RegularPolygons;
extern __declspec (package) const GUID CLSID_RegularPolygon;
extern __declspec (package) const GUID CLSID_InsertionObjects;
extern __declspec (package) const GUID CLSID_InsertionView;
extern __declspec (package) const GUID CLSID_InsertionDefinition;
extern __declspec (package) const GUID CLSID_PolyLine2D;
extern __declspec (package) const GUID CLSID_PolyLines2D;
extern __declspec (package) const GUID CLSID_Equidistants;
extern __declspec (package) const GUID CLSID__Equidistant;
extern __declspec (package) const GUID CLSID__Nurbs;
extern __declspec (package) const GUID CLSID_Nurbses;
extern __declspec (package) const GUID CLSID_CentreMarkers;
extern __declspec (package) const GUID CLSID_CentreMarker;
extern __declspec (package) const GUID CLSID_RemoteElement;
extern __declspec (package) const GUID CLSID_RemoteElements;
extern __declspec (package) const GUID CLSID__Attribute;
extern __declspec (package) const GUID CLSID__ColumnInfo;
extern __declspec (package) const GUID CLSID__AttributeType;
extern __declspec (package) const GUID CLSID_AxisLine;
extern __declspec (package) const GUID CLSID_AxisLines;
extern __declspec (package) const GUID CLSID_Variable7;
extern __declspec (package) const GUID CLSID_InsertionParameters;
extern __declspec (package) const GUID CLSID_DrawingGroup;
extern __declspec (package) const GUID CLSID_DrawingGroups;
extern __declspec (package) const GUID CLSID__Hatch;
extern __declspec (package) const GUID CLSID__Colouring;
extern __declspec (package) const GUID CLSID_Hatches;
extern __declspec (package) const GUID CLSID_Colourings;
extern __declspec (package) const GUID CLSID__SpecRough;
extern __declspec (package) const GUID CLSID_TechnicalDemand;
extern __declspec (package) const GUID CLSID__Raster;
extern __declspec (package) const GUID CLSID_Rasters;
extern __declspec (package) const GUID CLSID_OleDrawingObject;
extern __declspec (package) const GUID CLSID_OleDrawingObjects;
extern __declspec (package) const GUID CLSID_SelectionManager;
extern __declspec (package) const GUID CLSID_ChooseManager;
extern __declspec (package) const GUID CLSID_SurfacesIntersectionCurve;
extern __declspec (package) const GUID CLSID_SurfacesIntersectionCurves;
extern __declspec (package) const GUID IID_IModelCurve3D;
extern __declspec (package) const GUID CLSID__Stamp;
extern __declspec (package) const GUID CLSID_WaveLine;
extern __declspec (package) const GUID CLSID_WaveLines;
extern __declspec (package) const GUID CLSID_BrokenLine;
extern __declspec (package) const GUID CLSID_BrokenLines;
extern __declspec (package) const GUID IID_IPropertyStyleList;
extern __declspec (package) const GUID CLSID_PropertyStyleList;
extern __declspec (package) const GUID CLSID__CopyObjectParam;
extern __declspec (package) const GUID CLSID_CurveCopyObjectParam;
extern __declspec (package) const GUID CLSID_CircleCopyObjectParam;
extern __declspec (package) const GUID IID_ICircularCopyObjectParam;
extern __declspec (package) const GUID CLSID_CircularCopyObjectParam;
extern __declspec (package) const GUID IID_IMeshCopyObjectParam;
extern __declspec (package) const GUID CLSID_MeshCopyObjectParam;
extern __declspec (package) const GUID CLSID_PrintJob;
extern __declspec (package) const GUID CLSID_PrintJob_Sheet;
extern __declspec (package) const GUID CLSID__Property;
extern __declspec (package) const GUID CLSID_LibArraySettings;
extern __declspec (package) const GUID CLSID_ReportProcess;
extern __declspec (package) const GUID CLSID_Equidistants3D;
extern __declspec (package) const GUID CLSID_Equidistant3D;

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
interface DECLSPEC_UUID("{5C799A83-C0A4-4312-BEB0-21CBD7FF4C13}") IKompasAPIObject;
typedef TComInterface<IKompasAPIObject, &IID_IKompasAPIObject> IKompasAPIObjectPtr;
interface DECLSPEC_UUID("{6A2EFAF7-8254-45A5-9DC8-2213F16AF5D7}") IApplication;
typedef TComInterface<IApplication, &IID_IApplication> IApplicationPtr;
interface DECLSPEC_UUID("{901F85DE-FA5A-4314-BD75-066A79AF20A8}") IKompasCollection;
typedef TComInterface<IKompasCollection, &IID_IKompasCollection> IKompasCollectionPtr;
interface DECLSPEC_UUID("{8BF39F08-5537-4910-84CE-B338E55F7BCF}") IDocuments;
typedef TComInterface<IDocuments, &IID_IDocuments> IDocumentsPtr;
interface DECLSPEC_UUID("{5C6E318D-BD6E-4AFA-8A13-977EAA0845EF}") IKompasDocument;
typedef TComInterface<IKompasDocument, &IID_IKompasDocument> IKompasDocumentPtr;
interface DECLSPEC_UUID("{1D18C466-C085-4D68-A465-A85D0C8E3A0E}") IDocumentFrames;
typedef TComInterface<IDocumentFrames, &IID_IDocumentFrames> IDocumentFramesPtr;
interface DECLSPEC_UUID("{4437FABA-990F-45E2-B1A2-7754FB326B76}") IDocumentFrame;
typedef TComInterface<IDocumentFrame, &IID_IDocumentFrame> IDocumentFramePtr;
interface DECLSPEC_UUID("{B35FF50E-2991-4630-8AB8-DC3153E7971A}") IDocumentSettings;
typedef TComInterface<IDocumentSettings, &IID_IDocumentSettings> IDocumentSettingsPtr;
interface DECLSPEC_UUID("{B9632C5C-86E1-4BC9-83A5-A954E407246A}") ISpecificationDescriptions;
typedef TComInterface<ISpecificationDescriptions, &IID_ISpecificationDescriptions> ISpecificationDescriptionsPtr;
interface DECLSPEC_UUID("{9678959E-166B-45F3-BDE8-88BBF4645F5C}") ISpecificationDescription;
typedef TComInterface<ISpecificationDescription, &IID_ISpecificationDescription> ISpecificationDescriptionPtr;
interface DECLSPEC_UUID("{F237D2B3-DFEE-4702-B71F-E5F6923F03E6}") ISpecificationStyle;
typedef TComInterface<ISpecificationStyle, &IID_ISpecificationStyle> ISpecificationStylePtr;
interface DECLSPEC_UUID("{BB719D42-E44C-445B-969A-0E2F63E97FC8}") ISpecificationTuning;
typedef TComInterface<ISpecificationTuning, &IID_ISpecificationTuning> ISpecificationTuningPtr;
interface DECLSPEC_UUID("{7EA65CA0-420D-4E1D-8C19-998495C4DA2F}") ITextStyle;
typedef TComInterface<ITextStyle, &IID_ITextStyle> ITextStylePtr;
interface DECLSPEC_UUID("{A6AD008D-58D1-48B5-BD29-E6795289FE4B}") ITextFont;
typedef TComInterface<ITextFont, &IID_ITextFont> ITextFontPtr;
interface DECLSPEC_UUID("{BB66E097-95C7-49B1-B6FD-3506C7758D09}") ITabulators;
typedef TComInterface<ITabulators, &IID_ITabulators> ITabulatorsPtr;
interface DECLSPEC_UUID("{2DD73B92-F8C8-49AA-AECD-B75713427FC1}") ITabulator;
typedef TComInterface<ITabulator, &IID_ITabulator> ITabulatorPtr;
interface DECLSPEC_UUID("{01B1BF6F-B9E3-4E94-99A0-81394FB99B16}") ISpecificationTuningSections;
typedef TComInterface<ISpecificationTuningSections, &IID_ISpecificationTuningSections> ISpecificationTuningSectionsPtr;
interface DECLSPEC_UUID("{E68AA413-CC35-450D-BF35-0F294F59B08C}") ISpecificationTuningSection;
typedef TComInterface<ISpecificationTuningSection, &IID_ISpecificationTuningSection> ISpecificationTuningSectionPtr;
interface DECLSPEC_UUID("{56532CB4-BD3F-442C-AFA4-0E6BEB677E61}") ISpecificationSubsections;
typedef TComInterface<ISpecificationSubsections, &IID_ISpecificationSubsections> ISpecificationSubsectionsPtr;
interface DECLSPEC_UUID("{7F0E5F63-815C-46E5-B99E-C24244566C00}") ISpecificationSubsection;
typedef TComInterface<ISpecificationSubsection, &IID_ISpecificationSubsection> ISpecificationSubsectionPtr;
interface DECLSPEC_UUID("{8910CC92-AC76-4837-AB7A-5FD3C7B74728}") IAdditionalBlockTunings;
typedef TComInterface<IAdditionalBlockTunings, &IID_IAdditionalBlockTunings> IAdditionalBlockTuningsPtr;
interface DECLSPEC_UUID("{9CD5B016-9CE9-4E0A-8902-196D11360536}") IAdditionalBlockTuning;
typedef TComInterface<IAdditionalBlockTuning, &IID_IAdditionalBlockTuning> IAdditionalBlockTuningPtr;
interface DECLSPEC_UUID("{43EFA203-F956-43D6-B603-87807DDEFD0A}") IAdditionalBlockSectionTunings;
typedef TComInterface<IAdditionalBlockSectionTunings, &IID_IAdditionalBlockSectionTunings> IAdditionalBlockSectionTuningsPtr;
interface DECLSPEC_UUID("{E04B8464-C8D6-4BAC-99B5-AE79EBBDB205}") IAdditionalBlockSectionTuning;
typedef TComInterface<IAdditionalBlockSectionTuning, &IID_IAdditionalBlockSectionTuning> IAdditionalBlockSectionTuningPtr;
interface DECLSPEC_UUID("{B9CDE694-4C33-4375-A6F6-AE94DC759510}") ISheetFormat;
typedef TComInterface<ISheetFormat, &IID_ISheetFormat> ISheetFormatPtr;
interface DECLSPEC_UUID("{41529A95-51F0-44B0-9D55-5753BCEB23BC}") ISpecificationColumnStyles;
typedef TComInterface<ISpecificationColumnStyles, &IID_ISpecificationColumnStyles> ISpecificationColumnStylesPtr;
interface DECLSPEC_UUID("{16839CAA-3AFB-49A4-A19A-C61963967649}") ISpecificationColumnStyle;
typedef TComInterface<ISpecificationColumnStyle, &IID_ISpecificationColumnStyle> ISpecificationColumnStylePtr;
interface DECLSPEC_UUID("{24AE8484-F4F4-4059-AFC7-9492A64C88E8}") ISpecificationSectionStyles;
typedef TComInterface<ISpecificationSectionStyles, &IID_ISpecificationSectionStyles> ISpecificationSectionStylesPtr;
interface DECLSPEC_UUID("{4B61FC7F-4826-4B58-8CCB-7D459AD0BE7B}") ISpecificationSectionStyle;
typedef TComInterface<ISpecificationSectionStyle, &IID_ISpecificationSectionStyle> ISpecificationSectionStylePtr;
interface DECLSPEC_UUID("{90E2FBEC-A56F-423C-B89F-479673EDD895}") IAdditionalBlockStyles;
typedef TComInterface<IAdditionalBlockStyles, &IID_IAdditionalBlockStyles> IAdditionalBlockStylesPtr;
interface DECLSPEC_UUID("{B2A43FA6-9BCE-4468-9662-811A6255E220}") IAdditionalBlockStyle;
typedef TComInterface<IAdditionalBlockStyle, &IID_IAdditionalBlockStyle> IAdditionalBlockStylePtr;
interface DECLSPEC_UUID("{B2B97D19-3A0B-4C9F-A6AC-DEFFAFE0D1C2}") ISpecificationBaseObjects;
typedef TComInterface<ISpecificationBaseObjects, &IID_ISpecificationBaseObjects> ISpecificationBaseObjectsPtr;
interface DECLSPEC_UUID("{72EB4E8E-7952-4B36-852B-4816B7B5AFEE}") ISpecificationObject;
typedef TComInterface<ISpecificationObject, &IID_ISpecificationObject> ISpecificationObjectPtr;
interface DECLSPEC_UUID("{49994ED8-96BA-4D9D-B642-5F0F1E3FED16}") ISpecificationBaseObject;
typedef TComInterface<ISpecificationBaseObject, &IID_ISpecificationBaseObject> ISpecificationBaseObjectPtr;
interface DECLSPEC_UUID("{9F44BF03-DE25-4DDE-ADA0-92384199C100}") ISpecificationColumns;
typedef TComInterface<ISpecificationColumns, &IID_ISpecificationColumns> ISpecificationColumnsPtr;
interface DECLSPEC_UUID("{3ECFB777-2645-42B5-A6ED-111688433B26}") ISpecificationColumn;
typedef TComInterface<ISpecificationColumn, &IID_ISpecificationColumn> ISpecificationColumnPtr;
interface DECLSPEC_UUID("{F4BAB79A-8A35-44D5-BE44-C566E444F342}") ISpecificationColumnItems;
typedef TComInterface<ISpecificationColumnItems, &IID_ISpecificationColumnItems> ISpecificationColumnItemsPtr;
interface DECLSPEC_UUID("{2BABDD01-EACA-4137-9749-25B8C5E230EE}") ISpecificationColumnItem;
typedef TComInterface<ISpecificationColumnItem, &IID_ISpecificationColumnItem> ISpecificationColumnItemPtr;
interface DECLSPEC_UUID("{99B840FC-0150-4DAD-BC0E-AD481BAAB8C2}") IText;
typedef TComInterface<IText, &IID_IText> ITextPtr;
interface DECLSPEC_UUID("{AAB72FE2-DEA3-4FB6-B0DD-B926249EF67C}") ITextLine;
typedef TComInterface<ITextLine, &IID_ITextLine> ITextLinePtr;
interface DECLSPEC_UUID("{1DE74AFB-5026-4B85-861F-F0CFDBD443E6}") ITextItem;
typedef TComInterface<ITextItem, &IID_ITextItem> ITextItemPtr;
interface DECLSPEC_UUID("{81FAB1C5-F566-4D06-8D3D-17FF01D3566F}") IAttachedDocuments;
typedef TComInterface<IAttachedDocuments, &IID_IAttachedDocuments> IAttachedDocumentsPtr;
interface DECLSPEC_UUID("{333E9E11-D161-49AE-9791-8BEDB58B4C78}") IAttachedDocument;
typedef TComInterface<IAttachedDocument, &IID_IAttachedDocument> IAttachedDocumentPtr;
interface DECLSPEC_UUID("{B8BD0FC7-AB2B-4E7A-8EC2-82060D7D29A7}") ISpecificationCommentObjects;
typedef TComInterface<ISpecificationCommentObjects, &IID_ISpecificationCommentObjects> ISpecificationCommentObjectsPtr;
interface DECLSPEC_UUID("{3B6B80CA-2145-4184-B786-0C571DF5ACD7}") ISpecificationCommentObject;
typedef TComInterface<ISpecificationCommentObject, &IID_ISpecificationCommentObject> ISpecificationCommentObjectPtr;
interface DECLSPEC_UUID("{7AB54196-0B76-4B01-B769-7F47637173C4}") ILayoutSheets;
typedef TComInterface<ILayoutSheets, &IID_ILayoutSheets> ILayoutSheetsPtr;
interface DECLSPEC_UUID("{D87B5A80-CF52-4510-ADD9-D1344FFFFC07}") ILayoutSheet;
typedef TComInterface<ILayoutSheet, &IID_ILayoutSheet> ILayoutSheetPtr;
interface DECLSPEC_UUID("{250CE350-7C21-47FD-8FF2-C44A9FF177DF}") IStamp;
typedef TComInterface<IStamp, &IID_IStamp> IStampPtr;
interface DECLSPEC_UUID("{77A6D4CA-6418-4DEE-B59C-400BFD052375}") IUserDataStoragesMng;
typedef TComInterface<IUserDataStoragesMng, &IID_IUserDataStoragesMng> IUserDataStoragesMngPtr;
interface DECLSPEC_UUID("{9DBFB4EB-BE9F-46EF-88FF-BB603A9E786B}") IUserDataStorages;
typedef TComInterface<IUserDataStorages, &IID_IUserDataStorages> IUserDataStoragesPtr;
interface DECLSPEC_UUID("{DD2AF5C4-D5B9-420D-B658-F935F80A8586}") IUserDataStorage;
typedef TComInterface<IUserDataStorage, &IID_IUserDataStorage> IUserDataStoragePtr;
interface DECLSPEC_UUID("{CB5FDBC8-4DAE-4C4B-87D5-6FD1F2705C38}") IProcessParam;
typedef TComInterface<IProcessParam, &IID_IProcessParam> IProcessParamPtr;
interface DECLSPEC_UUID("{5BA6324E-E555-490F-A0E2-68D3C6C88D92}") IPropertyTabs;
typedef TComInterface<IPropertyTabs, &IID_IPropertyTabs> IPropertyTabsPtr;
interface DECLSPEC_UUID("{45DE8E5B-BC2B-4584-8BA7-D3014D3A2397}") IPropertyTab;
typedef TComInterface<IPropertyTab, &IID_IPropertyTab> IPropertyTabPtr;
interface DECLSPEC_UUID("{548241BA-FDA8-4633-981E-94552BE38D6B}") IPropertyControls;
typedef TComInterface<IPropertyControls, &IID_IPropertyControls> IPropertyControlsPtr;
interface DECLSPEC_UUID("{E35F8FF8-03C6-460C-A2F1-294A3A29A029}") IPropertyControl;
typedef TComInterface<IPropertyControl, &IID_IPropertyControl> IPropertyControlPtr;
interface DECLSPEC_UUID("{34196EC3-58B2-436C-A353-427703740874}") IPropertyManager;
typedef TComInterface<IPropertyManager, &IID_IPropertyManager> IPropertyManagerPtr;
interface DECLSPEC_UUID("{53CDC510-99EA-4736-8542-194F4D8FB32B}") ILibraryManager;
typedef TComInterface<ILibraryManager, &IID_ILibraryManager> ILibraryManagerPtr;
interface DECLSPEC_UUID("{80F95B5B-DB8A-46B7-8C22-605A0AECD597}") IProceduresLibraries;
typedef TComInterface<IProceduresLibraries, &IID_IProceduresLibraries> IProceduresLibrariesPtr;
interface DECLSPEC_UUID("{9D6E9AE1-7DDF-4354-B8D0-E12023B186FA}") ILibrary;
typedef TComInterface<ILibrary, &IID_ILibrary> ILibraryPtr;
interface DECLSPEC_UUID("{1AECE59E-DE4C-4FB9-B62B-7967573AD3B1}") IProceduresLibrary;
typedef TComInterface<IProceduresLibrary, &IID_IProceduresLibrary> IProceduresLibraryPtr;
interface DECLSPEC_UUID("{1A77F076-2295-40F9-B1AA-2838C4CA0887}") IProcedures;
typedef TComInterface<IProcedures, &IID_IProcedures> IProceduresPtr;
interface DECLSPEC_UUID("{7BF9DF08-D14D-4DA9-ABC2-FB458E7122D0}") IProcedure;
typedef TComInterface<IProcedure, &IID_IProcedure> IProcedurePtr;
interface DECLSPEC_UUID("{A6E82D68-69D5-40C0-9A85-275B22219135}") IInsertsLibraries;
typedef TComInterface<IInsertsLibraries, &IID_IInsertsLibraries> IInsertsLibrariesPtr;
interface DECLSPEC_UUID("{885CAD68-B42B-45CF-8620-E0138558EFE3}") IInsertsLibrary;
typedef TComInterface<IInsertsLibrary, &IID_IInsertsLibrary> IInsertsLibraryPtr;
interface DECLSPEC_UUID("{FCBF6340-119D-4736-BB95-F1EAB4BEF1B8}") IInserts;
typedef TComInterface<IInserts, &IID_IInserts> IInsertsPtr;
interface DECLSPEC_UUID("{D6A6D305-6B5C-4392-B61D-D669C092EEF2}") IInsert;
typedef TComInterface<IInsert, &IID_IInsert> IInsertPtr;
interface DECLSPEC_UUID("{0A8B4CD1-7158-4CE6-96E0-885376F5DE1B}") IKompasError;
typedef TComInterface<IKompasError, &IID_IKompasError> IKompasErrorPtr;
interface DECLSPEC_UUID("{642D03AB-4798-48A5-B075-3CD9AFA18554}") IConverter;
typedef TComInterface<IConverter, &IID_IConverter> IConverterPtr;
interface DECLSPEC_UUID("{2AA9F713-2328-4E8F-B996-9DFDABC67DC9}") ICheckSum;
typedef TComInterface<ICheckSum, &IID_ICheckSum> ICheckSumPtr;
interface DECLSPEC_UUID("{BE125ABA-EAB2-4A22-99D7-108C84B6DCC5}") IProgressBarIndicator;
typedef TComInterface<IProgressBarIndicator, &IID_IProgressBarIndicator> IProgressBarIndicatorPtr;
interface DECLSPEC_UUID("{FFB66332-17FF-47EB-AC43-32084F8F6077}") ISystemSettings;
typedef TComInterface<ISystemSettings, &IID_ISystemSettings> ISystemSettingsPtr;
interface DECLSPEC_UUID("{76D9033D-5F87-41CC-A3E8-55EFEE94B677}") ILibArraySettings;
typedef TComInterface<ILibArraySettings, &IID_ILibArraySettings> ILibArraySettingsPtr;
interface DECLSPEC_UUID("{0409EC8F-88F7-4242-81E7-965ABEAE932C}") IMath2D;
typedef TComInterface<IMath2D, &IID_IMath2D> IMath2DPtr;
interface DECLSPEC_UUID("{65C82884-C41B-47A1-8C07-E8820D6718EA}") ICurve2D;
typedef TComInterface<ICurve2D, &IID_ICurve2D> ICurve2DPtr;
interface DECLSPEC_UUID("{9D86880B-C004-475D-8221-B786FD5A228B}") IPrintJob;
typedef TComInterface<IPrintJob, &IID_IPrintJob> IPrintJobPtr;
interface DECLSPEC_UUID("{0EC985BC-81FC-498E-BF15-03DDC870AA33}") IPrintJob_Sheet;
typedef TComInterface<IPrintJob_Sheet, &IID_IPrintJob_Sheet> IPrintJob_SheetPtr;
interface DECLSPEC_UUID("{096E62B3-7184-4998-9925-74BB710D8D8E}") IKompasDocument2D;
typedef TComInterface<IKompasDocument2D, &IID_IKompasDocument2D> IKompasDocument2DPtr;
interface DECLSPEC_UUID("{A4737593-578B-4187-8CAD-E1056EB5404B}") IViewsAndLayersManager;
typedef TComInterface<IViewsAndLayersManager, &IID_IViewsAndLayersManager> IViewsAndLayersManagerPtr;
interface DECLSPEC_UUID("{3DD7F97B-59CB-4297-A1BA-04E5A7FFF448}") IDrawingObjects;
typedef TComInterface<IDrawingObjects, &IID_IDrawingObjects> IDrawingObjectsPtr;
interface DECLSPEC_UUID("{9CD1B5E6-C1A2-4910-8D0C-97080B14AA3D}") IViews;
typedef TComInterface<IViews, &IID_IViews> IViewsPtr;
interface DECLSPEC_UUID("{07EF021F-11C1-4015-8D87-4DC94A2A71B0}") IDrawingObject;
typedef TComInterface<IDrawingObject, &IID_IDrawingObject> IDrawingObjectPtr;
interface DECLSPEC_UUID("{21A7BA87-1C8B-41B4-8247-CDD593546F37}") IView;
typedef TComInterface<IView, &IID_IView> IViewPtr;
interface DECLSPEC_UUID("{F6DC2898-D596-4418-A21A-D15AE07B9A40}") ILayers;
typedef TComInterface<ILayers, &IID_ILayers> ILayersPtr;
interface DECLSPEC_UUID("{9AD76C38-CC48-4901-AEE5-27B48F51563C}") ILayer;
typedef TComInterface<ILayer, &IID_ILayer> ILayerPtr;
interface DECLSPEC_UUID("{8BAB52D9-8EF6-43A6-A1B8-AF42D5961A94}") IVariable7;
typedef TComInterface<IVariable7, &IID_IVariable7> IVariable7Ptr;
interface DECLSPEC_UUID("{DBFF6D98-8F79-453E-9B8B-81E40A6D8027}") ILayerGroups;
typedef TComInterface<ILayerGroups, &IID_ILayerGroups> ILayerGroupsPtr;
interface DECLSPEC_UUID("{265BBB5A-7B8A-4AA5-A0BB-FF64D23BE62B}") ILayerGroup;
typedef TComInterface<ILayerGroup, &IID_ILayerGroup> ILayerGroupPtr;
interface DECLSPEC_UUID("{BCA22E27-AB60-4BA6-87EE-92158AA6D366}") ILayerFilterConditions;
typedef TComInterface<ILayerFilterConditions, &IID_ILayerFilterConditions> ILayerFilterConditionsPtr;
interface DECLSPEC_UUID("{D743BC12-82A9-4E8F-85B2-7154A356ACC0}") ILayerFilterCondition;
typedef TComInterface<ILayerFilterCondition, &IID_ILayerFilterCondition> ILayerFilterConditionPtr;
interface DECLSPEC_UUID("{7B60E769-06C3-4FDC-9677-7B5EF5180308}") IKompasDocument3D;
typedef TComInterface<IKompasDocument3D, &IID_IKompasDocument3D> IKompasDocument3DPtr;
interface DECLSPEC_UUID("{E37256D4-9021-47AC-8FAF-3713FB2A50C3}") IModelObject;
typedef TComInterface<IModelObject, &IID_IModelObject> IModelObjectPtr;
interface DECLSPEC_UUID("{FA4A5FDE-A08C-4F5A-8C04-98395BA44307}") IPart7;
typedef TComInterface<IPart7, &IID_IPart7> IPart7Ptr;
interface DECLSPEC_UUID("{EF4343FA-985D-4FE9-AD5F-439BC8F92958}") IFeature7;
typedef TComInterface<IFeature7, &IID_IFeature7> IFeature7Ptr;
interface DECLSPEC_UUID("{125CB096-639E-479F-98DE-F27FAB23838A}") IModelObjects;
typedef TComInterface<IModelObjects, &IID_IModelObjects> IModelObjectsPtr;
interface DECLSPEC_UUID("{42F8FCEF-E56F-466C-8814-BEBAC0719AE6}") IParts7;
typedef TComInterface<IParts7, &IID_IParts7> IParts7Ptr;
interface DECLSPEC_UUID("{2B8B154E-ED76-4FF0-B3E4-FEE691D014A4}") IVariableTable;
typedef TComInterface<IVariableTable, &IID_IVariableTable> IVariableTablePtr;
interface DECLSPEC_UUID("{D71AEDBE-01D4-4C7D-96DC-94981F2A1C37}") IPoint3D;
typedef TComInterface<IPoint3D, &IID_IPoint3D> IPoint3DPtr;
interface DECLSPEC_UUID("{BA6395F5-3506-4483-8864-4EEC220AF316}") ILocalCoordinateSystem;
typedef TComInterface<ILocalCoordinateSystem, &IID_ILocalCoordinateSystem> ILocalCoordinateSystemPtr;
interface DECLSPEC_UUID("{E6DF688C-5B23-436B-A027-A96BFD5484CC}") ISelectionManager;
typedef TComInterface<ISelectionManager, &IID_ISelectionManager> ISelectionManagerPtr;
interface DECLSPEC_UUID("{E2D9EAA6-F88C-4ADB-AC32-854E32E9FEE1}") IChooseManager;
typedef TComInterface<IChooseManager, &IID_IChooseManager> IChooseManagerPtr;
interface DECLSPEC_UUID("{94F965B0-5ABB-4994-98C7-B08FA8515452}") IAttribute;
typedef TComInterface<IAttribute, &IID_IAttribute> IAttributePtr;
interface DECLSPEC_UUID("{414CF83E-4FA3-42AB-BC26-6C6BBF91BB0F}") IAttributeType;
typedef TComInterface<IAttributeType, &IID_IAttributeType> IAttributeTypePtr;
interface DECLSPEC_UUID("{3FDE0F44-4459-49F3-A012-E64F9BFA454D}") IColumnInfo;
typedef TComInterface<IColumnInfo, &IID_IColumnInfo> IColumnInfoPtr;
interface DECLSPEC_UUID("{649F0EB2-EBC0-449B-8B61-DC3CF1953BF9}") IDrawingObject1;
typedef TComInterface<IDrawingObject1, &IID_IDrawingObject1> IDrawingObject1Ptr;
interface DECLSPEC_UUID("{131069F4-A4E2-4DB4-A559-85EACCC74CE4}") IParametriticConstraint;
typedef TComInterface<IParametriticConstraint, &IID_IParametriticConstraint> IParametriticConstraintPtr;
interface DECLSPEC_UUID("{58890FE8-E671-4561-994A-600DD29032E4}") IKompasDocument1;
typedef TComInterface<IKompasDocument1, &IID_IKompasDocument1> IKompasDocument1Ptr;
interface DECLSPEC_UUID("{FB57F1C4-44FE-4C73-9B15-87241E8735B5}") IKompasDocument2D1;
typedef TComInterface<IKompasDocument2D1, &IID_IKompasDocument2D1> IKompasDocument2D1Ptr;
interface DECLSPEC_UUID("{B21C70C9-53EC-4BB7-A9DB-BCE852CA6716}") IMacroObject;
typedef TComInterface<IMacroObject, &IID_IMacroObject> IMacroObjectPtr;
interface DECLSPEC_UUID("{0ED06421-907C-4EF0-89F7-AEFC81BEF1DF}") IDrawingGroups;
typedef TComInterface<IDrawingGroups, &IID_IDrawingGroups> IDrawingGroupsPtr;
interface DECLSPEC_UUID("{2C96ACB2-4877-45D9-B62D-78BBAD704458}") IDrawingGroup;
typedef TComInterface<IDrawingGroup, &IID_IDrawingGroup> IDrawingGroupPtr;
interface DECLSPEC_UUID("{58E1BACA-32D5-4EAB-87E9-D14816DAC29F}") ICopyObjectParam;
typedef TComInterface<ICopyObjectParam, &IID_ICopyObjectParam> ICopyObjectParamPtr;
interface DECLSPEC_UUID("{C2214318-5C89-40F8-A25C-C87D08B490F4}") IDrawingDocument;
typedef TComInterface<IDrawingDocument, &IID_IDrawingDocument> IDrawingDocumentPtr;
interface DECLSPEC_UUID("{D723AAC1-0315-4AED-99BF-88A7E55B6E6D}") ISpecRough;
typedef TComInterface<ISpecRough, &IID_ISpecRough> ISpecRoughPtr;
interface DECLSPEC_UUID("{18C80AE5-BF92-482A-9C56-3D1638F5E5F5}") ITechnicalDemand;
typedef TComInterface<ITechnicalDemand, &IID_ITechnicalDemand> ITechnicalDemandPtr;
interface DECLSPEC_UUID("{E19CE626-DF9C-48C4-A83D-3E3BC7F0DACA}") IFragmentDocument;
typedef TComInterface<IFragmentDocument, &IID_IFragmentDocument> IFragmentDocumentPtr;
interface DECLSPEC_UUID("{E3FA8FD0-6187-4625-89B7-3C815651944D}") ISpecificationDocument;
typedef TComInterface<ISpecificationDocument, &IID_ISpecificationDocument> ISpecificationDocumentPtr;
interface DECLSPEC_UUID("{71A589EA-D32F-42C4-BBC4-A51611E85E90}") ITextDocument;
typedef TComInterface<ITextDocument, &IID_ITextDocument> ITextDocumentPtr;
interface DECLSPEC_UUID("{0075EA2A-5498-4E28-BDF3-0288EB168054}") IPartDocument;
typedef TComInterface<IPartDocument, &IID_IPartDocument> IPartDocumentPtr;
interface DECLSPEC_UUID("{F6B3F33A-3273-43EF-9B8A-7C0AF8FAA129}") IAssemblyDocument;
typedef TComInterface<IAssemblyDocument, &IID_IAssemblyDocument> IAssemblyDocumentPtr;
interface DECLSPEC_UUID("{E0197BA7-C3FB-44A3-9C13-49115A150ED2}") IDimensionText;
typedef TComInterface<IDimensionText, &IID_IDimensionText> IDimensionTextPtr;
interface DECLSPEC_UUID("{534518CC-6577-4273-887A-6B833FDE6ED7}") IDimensionParams;
typedef TComInterface<IDimensionParams, &IID_IDimensionParams> IDimensionParamsPtr;
interface DECLSPEC_UUID("{E7F1FD16-B641-4264-859C-D47217DA8B04}") ILoadCombination;
typedef TComInterface<ILoadCombination, &IID_ILoadCombination> ILoadCombinationPtr;
interface DECLSPEC_UUID("{B9019350-FF1D-4161-B41B-CD1B020ECF36}") IFrameTreesManager;
typedef TComInterface<IFrameTreesManager, &IID_IFrameTreesManager> IFrameTreesManagerPtr;
interface DECLSPEC_UUID("{5378690E-A57D-473F-84DC-CA508B34FAD7}") IAttrTypeMng;
typedef TComInterface<IAttrTypeMng, &IID_IAttrTypeMng> IAttrTypeMngPtr;
interface DECLSPEC_UUID("{CB083231-EE0D-4596-B04D-E6A020926557}") IPrintJob_OutputParameters;
typedef TComInterface<IPrintJob_OutputParameters, &IID_IPrintJob_OutputParameters> IPrintJob_OutputParametersPtr;
interface DECLSPEC_UUID("{C389F80D-228D-4FB1-B183-959AEA0B5906}") IProperty;
typedef TComInterface<IProperty, &IID_IProperty> IPropertyPtr;
interface DECLSPEC_UUID("{FD515235-4DBA-4F81-8D5C-6FE87C834562}") IPropertyMng;
typedef TComInterface<IPropertyMng, &IID_IPropertyMng> IPropertyMngPtr;
interface DECLSPEC_UUID("{AE7377CB-28C6-468E-B667-73117BCDC300}") IPropertyKeeper;
typedef TComInterface<IPropertyKeeper, &IID_IPropertyKeeper> IPropertyKeeperPtr;
interface DECLSPEC_UUID("{29BBF2B8-A2E2-4E7D-BF04-0BB79C89EF35}") IReportProcess;
typedef TComInterface<IReportProcess, &IID_IReportProcess> IReportProcessPtr;
interface DECLSPEC_UUID("{9D111C31-1629-4A0B-89E5-8461CDFA2157}") IReportFilter;
typedef TComInterface<IReportFilter, &IID_IReportFilter> IReportFilterPtr;
interface DECLSPEC_UUID("{7D2A79FF-EC54-4480-B9F3-46F75293B558}") IPropertyControl1;
typedef TComInterface<IPropertyControl1, &IID_IPropertyControl1> IPropertyControl1Ptr;
interface DECLSPEC_UUID("{1D238C4C-AAD7-4374-B372-013CF7FCEDB4}") IPropertyEdit;
typedef TComInterface<IPropertyEdit, &IID_IPropertyEdit> IPropertyEditPtr;
interface DECLSPEC_UUID("{4504EFA0-D059-4FD4-B725-FA264D190869}") IPropertySeparator;
typedef TComInterface<IPropertySeparator, &IID_IPropertySeparator> IPropertySeparatorPtr;
interface DECLSPEC_UUID("{8F53E9D5-07AD-412E-8C2A-509BC633C4FF}") IPropertyList;
typedef TComInterface<IPropertyList, &IID_IPropertyList> IPropertyListPtr;
interface DECLSPEC_UUID("{9205277D-B480-4AF7-B660-CCDC653F6453}") IPropertyCheckBox;
typedef TComInterface<IPropertyCheckBox, &IID_IPropertyCheckBox> IPropertyCheckBoxPtr;
interface DECLSPEC_UUID("{3920A0BE-0628-47D5-B0F1-1DFEB77964BC}") IPropertyMultiButton;
typedef TComInterface<IPropertyMultiButton, &IID_IPropertyMultiButton> IPropertyMultiButtonPtr;
interface DECLSPEC_UUID("{E1DB38CD-A6D5-44B8-9AD0-0056B87924DD}") IPropertySlideBox;
typedef TComInterface<IPropertySlideBox, &IID_IPropertySlideBox> IPropertySlideBoxPtr;
interface DECLSPEC_UUID("{5A902C6C-A030-4F37-A089-91505BAEE466}") IPropertyUserControl;
typedef TComInterface<IPropertyUserControl, &IID_IPropertyUserControl> IPropertyUserControlPtr;
interface DECLSPEC_UUID("{6682B70F-59DB-4BF0-AB01-45B65B1BDED1}") IPropertyGrid;
typedef TComInterface<IPropertyGrid, &IID_IPropertyGrid> IPropertyGridPtr;
interface DECLSPEC_UUID("{3CDFE85F-643D-4008-AE32-379C0EB3FB7F}") IPropertyTextButton;
typedef TComInterface<IPropertyTextButton, &IID_IPropertyTextButton> IPropertyTextButtonPtr;
interface DECLSPEC_UUID("{F214A46D-2BA9-40AD-A32D-E696EF9C895A}") IPropertySpinEdit;
typedef TComInterface<IPropertySpinEdit, &IID_IPropertySpinEdit> IPropertySpinEditPtr;
interface DECLSPEC_UUID("{DB1F3224-837E-437F-8944-6FB9703F528B}") IPropertyFileName;
typedef TComInterface<IPropertyFileName, &IID_IPropertyFileName> IPropertyFileNamePtr;
interface DECLSPEC_UUID("{FC5CDCFB-3F67-43A1-8FC4-1278B901CE0E}") IPropertyColor;
typedef TComInterface<IPropertyColor, &IID_IPropertyColor> IPropertyColorPtr;
interface DECLSPEC_UUID("{FDB82760-7EA3-408E-8699-A8392ACFD810}") IPropertyEditList;
typedef TComInterface<IPropertyEditList, &IID_IPropertyEditList> IPropertyEditListPtr;
interface DECLSPEC_UUID("{C2523B7E-EB4B-45DB-8E3B-9D6CCED99333}") IPropertyToolBar;
typedef TComInterface<IPropertyToolBar, &IID_IPropertyToolBar> IPropertyToolBarPtr;
interface DECLSPEC_UUID("{D18D34F5-0028-4853-998C-25A48D141B43}") IPropertyBmpList;
typedef TComInterface<IPropertyBmpList, &IID_IPropertyBmpList> IPropertyBmpListPtr;
interface DECLSPEC_UUID("{06F93FBF-C65A-49B1-83DB-C736BA33F0A5}") IProcessInfoWindow;
typedef TComInterface<IProcessInfoWindow, &IID_IProcessInfoWindow> IProcessInfoWindowPtr;
interface DECLSPEC_UUID("{2A214701-0BCB-406C-B57F-6DFADD799A64}") IPropertyLibExplorer;
typedef TComInterface<IPropertyLibExplorer, &IID_IPropertyLibExplorer> IPropertyLibExplorerPtr;
interface DECLSPEC_UUID("{0825F23C-0A73-48DE-BEAB-DA2FF39962C3}") IAssociationView;
typedef TComInterface<IAssociationView, &IID_IAssociationView> IAssociationViewPtr;
interface DECLSPEC_UUID("{5F9580DA-915C-4C28-991D-5DFFE3BF3B3C}") IViewDesignation;
typedef TComInterface<IViewDesignation, &IID_IViewDesignation> IViewDesignationPtr;
interface DECLSPEC_UUID("{E4E42871-E799-4273-8EDB-E5EF83CC66C2}") IAssociationViewElements;
typedef TComInterface<IAssociationViewElements, &IID_IAssociationViewElements> IAssociationViewElementsPtr;
interface DECLSPEC_UUID("{1B94C65D-3473-4FF2-B185-0B1C2C98FCAE}") IBreakViewParam;
typedef TComInterface<IBreakViewParam, &IID_IBreakViewParam> IBreakViewParamPtr;
interface DECLSPEC_UUID("{D4C8B5AF-B2A1-4E07-9CD0-A1FC5B0BC1E1}") ICutViewParam;
typedef TComInterface<ICutViewParam, &IID_ICutViewParam> ICutViewParamPtr;
interface DECLSPEC_UUID("{437D6587-7649-4A0C-80BB-7A6E89661839}") IHatchParam;
typedef TComInterface<IHatchParam, &IID_IHatchParam> IHatchParamPtr;
interface DECLSPEC_UUID("{B09A64BF-7AA6-4BF6-B8E8-AA8E8EE6E9D6}") IDocument2DSettings;
typedef TComInterface<IDocument2DSettings, &IID_IDocument2DSettings> IDocument2DSettingsPtr;
interface DECLSPEC_UUID("{0DC39FC2-4FB1-489E-A76E-E47413199FA3}") IDrawingDocumentSettings;
typedef TComInterface<IDrawingDocumentSettings, &IID_IDrawingDocumentSettings> IDrawingDocumentSettingsPtr;
interface DECLSPEC_UUID("{A33D05CF-EFFF-4BBE-9BE0-15D283425828}") IFragmentDocumentSettings;
typedef TComInterface<IFragmentDocumentSettings, &IID_IFragmentDocumentSettings> IFragmentDocumentSettingsPtr;
interface DECLSPEC_UUID("{C474582A-2AD4-4ED5-A86A-A169C4DA5D54}") ILibItemSettings;
typedef TComInterface<ILibItemSettings, &IID_ILibItemSettings> ILibItemSettingsPtr;
interface DECLSPEC_UUID("{1DB65C7E-535E-489E-8F34-84DF7FBA09B2}") IInsertionParameters;
typedef TComInterface<IInsertionParameters, &IID_IInsertionParameters> IInsertionParametersPtr;
interface DECLSPEC_UUID("{66907239-09BA-4456-AC9A-318804099628}") IInsertionDefinition;
typedef TComInterface<IInsertionDefinition, &IID_IInsertionDefinition> IInsertionDefinitionPtr;
interface DECLSPEC_UUID("{CF9150BA-0E3A-46DE-8973-332A00361474}") ITableCell;
typedef TComInterface<ITableCell, &IID_ITableCell> ITableCellPtr;
interface DECLSPEC_UUID("{D3715420-645E-435B-BB25-8E35AC570718}") ITable;
typedef TComInterface<ITable, &IID_ITable> ITablePtr;
interface DECLSPEC_UUID("{D78E47DC-172B-4824-A519-9BC2C0387B5C}") ITableRange;
typedef TComInterface<ITableRange, &IID_ITableRange> ITableRangePtr;
interface DECLSPEC_UUID("{9F2F27E7-8FB2-4C6C-A54D-35DB240060D8}") ICellFormat;
typedef TComInterface<ICellFormat, &IID_ICellFormat> ICellFormatPtr;
interface DECLSPEC_UUID("{1E29E849-1D1E-4791-BD31-8EF00ED5D118}") ICellBoundaries;
typedef TComInterface<ICellBoundaries, &IID_ICellBoundaries> ICellBoundariesPtr;
interface DECLSPEC_UUID("{5A89C538-E0DD-4C21-B3D1-3BF65EEB8C3E}") ksPropertyManagerNotify;
typedef TComInterface<ksPropertyManagerNotify, &DIID_ksPropertyManagerNotify> ksPropertyManagerNotifyPtr;
interface DECLSPEC_UUID("{5A31BB02-026C-4419-A0FF-A93CF58DCA99}") ksPropertyUserControlNotify;
typedef TComInterface<ksPropertyUserControlNotify, &DIID_ksPropertyUserControlNotify> ksPropertyUserControlNotifyPtr;
interface DECLSPEC_UUID("{6ECBB531-5609-4364-AC92-7A6A21D23313}") ksDocumentFrameNotify;
typedef TComInterface<ksDocumentFrameNotify, &DIID_ksDocumentFrameNotify> ksDocumentFrameNotifyPtr;
interface DECLSPEC_UUID("{4D14726D-0EC2-49CE-B02C-FEDAA6D65BBD}") IPaintObject;
typedef TComInterface<IPaintObject, &IID_IPaintObject> IPaintObjectPtr;
interface DECLSPEC_UUID("{B1C65023-B908-4CAD-9238-C5026520E62C}") ksGLObject;
typedef TComInterface<ksGLObject, &DIID_ksGLObject> ksGLObjectPtr;
interface DECLSPEC_UUID("{B6674824-CD9D-4220-B2CB-9F939A9C35C8}") IGabaritObject;
typedef TComInterface<IGabaritObject, &IID_IGabaritObject> IGabaritObjectPtr;
interface DECLSPEC_UUID("{E335A73F-DF27-4D33-8CBD-E928F797FB94}") ksDrawingObjectNotify;
typedef TComInterface<ksDrawingObjectNotify, &DIID_ksDrawingObjectNotify> ksDrawingObjectNotifyPtr;
interface DECLSPEC_UUID("{FC04C62E-AB0F-4614-B3D9-0EA8671CEB08}") ksViewsAndLayersManagerNotify;
typedef TComInterface<ksViewsAndLayersManagerNotify, &DIID_ksViewsAndLayersManagerNotify> ksViewsAndLayersManagerNotifyPtr;
interface DECLSPEC_UUID("{9B9CC387-E217-4EED-BCE9-9E1D645B49EE}") ksLibraryManagerNotify;
typedef TComInterface<ksLibraryManagerNotify, &DIID_ksLibraryManagerNotify> ksLibraryManagerNotifyPtr;
interface DECLSPEC_UUID("{A0DA14E6-4F92-4D18-8CD1-2BBAB695CE13}") ksSpecificationDescriptionNotify;
typedef TComInterface<ksSpecificationDescriptionNotify, &DIID_ksSpecificationDescriptionNotify> ksSpecificationDescriptionNotifyPtr;
interface DECLSPEC_UUID("{1C4DEC41-A8EA-40EE-9AC8-F807232DB874}") ksSpecificationObjectNotify;
typedef TComInterface<ksSpecificationObjectNotify, &DIID_ksSpecificationObjectNotify> ksSpecificationObjectNotifyPtr;
interface DECLSPEC_UUID("{58E30500-6073-4337-BFC1-32A74EA17DE8}") ksLayoutSheetsNotify;
typedef TComInterface<ksLayoutSheetsNotify, &DIID_ksLayoutSheetsNotify> ksLayoutSheetsNotifyPtr;
interface DECLSPEC_UUID("{7B8E86E1-4304-449D-9CEC-1B14F74A16FB}") ksModelObjectNotify;
typedef TComInterface<ksModelObjectNotify, &DIID_ksModelObjectNotify> ksModelObjectNotifyPtr;
interface DECLSPEC_UUID("{C784D45B-8C68-4189-8F27-A3B0D6CFAEB2}") ksDocument3DNotify7;
typedef TComInterface<ksDocument3DNotify7, &DIID_ksDocument3DNotify7> ksDocument3DNotify7Ptr;
interface DECLSPEC_UUID("{73653933-51B5-49D6-9EF2-6667639283CC}") IModelObjectNotifyResult;
typedef TComInterface<IModelObjectNotifyResult, &IID_IModelObjectNotifyResult> IModelObjectNotifyResultPtr;
interface DECLSPEC_UUID("{354EA69A-3191-4DA4-B980-821BE9B7683C}") IKompasDocument3DNotifyResult;
typedef TComInterface<IKompasDocument3DNotifyResult, &IID_IKompasDocument3DNotifyResult> IKompasDocument3DNotifyResultPtr;
interface DECLSPEC_UUID("{2C6E8A0F-EDC8-413C-9304-9278817B915B}") IModelContainer;
typedef TComInterface<IModelContainer, &IID_IModelContainer> IModelContainerPtr;
interface DECLSPEC_UUID("{EE562963-395C-4748-9726-FCA9C531B1CA}") ISketchs;
typedef TComInterface<ISketchs, &IID_ISketchs> ISketchsPtr;
interface DECLSPEC_UUID("{E6BBF50D-8401-4FB3-A6B6-153D3F447255}") ISketch;
typedef TComInterface<ISketch, &IID_ISketch> ISketchPtr;
interface DECLSPEC_UUID("{A160C032-CF96-4467-A682-CE2243DF76BD}") IExtrusions;
typedef TComInterface<IExtrusions, &IID_IExtrusions> IExtrusionsPtr;
interface DECLSPEC_UUID("{0D7FFE70-33EB-442C-A9B6-A205EA85A237}") IExtrusion;
typedef TComInterface<IExtrusion, &IID_IExtrusion> IExtrusionPtr;
interface DECLSPEC_UUID("{81EBB128-3963-4759-9D4E-2829C3078B0F}") IPoints3D;
typedef TComInterface<IPoints3D, &IID_IPoints3D> IPoints3DPtr;
interface DECLSPEC_UUID("{666C987F-2700-4C35-B8CE-DB8BFB5AAF02}") IMassInertiaParam7;
typedef TComInterface<IMassInertiaParam7, &IID_IMassInertiaParam7> IMassInertiaParam7Ptr;
interface DECLSPEC_UUID("{B90D597D-4213-4A59-98D4-0B67E719551B}") IThinParameters;
typedef TComInterface<IThinParameters, &IID_IThinParameters> IThinParametersPtr;
interface DECLSPEC_UUID("{D2A01420-9159-48C2-8302-C1B10A13D8F8}") ICutExtrusion;
typedef TComInterface<ICutExtrusion, &IID_ICutExtrusion> ICutExtrusionPtr;
interface DECLSPEC_UUID("{7BF80DAA-25F8-4AFF-AFEA-CAD390D4275D}") IChooseBodies7;
typedef TComInterface<IChooseBodies7, &IID_IChooseBodies7> IChooseBodies7Ptr;
interface DECLSPEC_UUID("{4F122E22-0AA6-46E1-841F-A2504B145995}") IBody7;
typedef TComInterface<IBody7, &IID_IBody7> IBody7Ptr;
interface DECLSPEC_UUID("{F56DBE72-48CC-48AD-9DA4-10D972C903EE}") ISheetMetalBodies;
typedef TComInterface<ISheetMetalBodies, &IID_ISheetMetalBodies> ISheetMetalBodiesPtr;
interface DECLSPEC_UUID("{2DC533DC-829E-4EFF-A905-541E9220A12D}") ISheetMetalBody;
typedef TComInterface<ISheetMetalBody, &IID_ISheetMetalBody> ISheetMetalBodyPtr;
interface DECLSPEC_UUID("{77A4895D-9B09-4C63-A3FF-6857F4340840}") ISheetMetalContainer;
typedef TComInterface<ISheetMetalContainer, &IID_ISheetMetalContainer> ISheetMetalContainerPtr;
interface DECLSPEC_UUID("{6826CFD6-6A48-4EB1-8C89-7DB4E36702B4}") ISheetMetalBends;
typedef TComInterface<ISheetMetalBends, &IID_ISheetMetalBends> ISheetMetalBendsPtr;
interface DECLSPEC_UUID("{B631D95F-C487-41D6-9726-C65E9F5A4505}") ISheetMetalBend;
typedef TComInterface<ISheetMetalBend, &IID_ISheetMetalBend> ISheetMetalBendPtr;
interface DECLSPEC_UUID("{AF8B8310-AF82-4B02-8733-783FFAFD4DBD}") ISheetMetalLineBends;
typedef TComInterface<ISheetMetalLineBends, &IID_ISheetMetalLineBends> ISheetMetalLineBendsPtr;
interface DECLSPEC_UUID("{E13EF07A-B1E8-41FD-9C85-C17F01E52A03}") ISheetMetalLineBend;
typedef TComInterface<ISheetMetalLineBend, &IID_ISheetMetalLineBend> ISheetMetalLineBendPtr;
interface DECLSPEC_UUID("{E117BDF9-5133-4672-9B8F-06046F6B9BF3}") ISheetMetalHoles;
typedef TComInterface<ISheetMetalHoles, &IID_ISheetMetalHoles> ISheetMetalHolesPtr;
interface DECLSPEC_UUID("{3490B8B8-00D7-4BCF-AAD8-9487BF271084}") ISheetMetalHole;
typedef TComInterface<ISheetMetalHole, &IID_ISheetMetalHole> ISheetMetalHolePtr;
interface DECLSPEC_UUID("{9515E4BB-7C60-4C3A-AF7A-847861E67B55}") ISheetMetalCuts;
typedef TComInterface<ISheetMetalCuts, &IID_ISheetMetalCuts> ISheetMetalCutsPtr;
interface DECLSPEC_UUID("{B50B1730-BACF-46F2-B10A-6CCDF4E4A2B1}") ISheetMetalCut;
typedef TComInterface<ISheetMetalCut, &IID_ISheetMetalCut> ISheetMetalCutPtr;
interface DECLSPEC_UUID("{6D57994F-C170-4CED-968A-6AD69C1A2C7D}") IPoint3DParamDisplace;
typedef TComInterface<IPoint3DParamDisplace, &IID_IPoint3DParamDisplace> IPoint3DParamDisplacePtr;
interface DECLSPEC_UUID("{C009F9ED-ED8A-4B1E-A4CE-156F43C3F6F3}") IPoint3DParamIntersect;
typedef TComInterface<IPoint3DParamIntersect, &IID_IPoint3DParamIntersect> IPoint3DParamIntersectPtr;
interface DECLSPEC_UUID("{A92F2938-F1D4-475E-AAB4-962FAA4A4366}") IPoint3DParamCenter;
typedef TComInterface<IPoint3DParamCenter, &IID_IPoint3DParamCenter> IPoint3DParamCenterPtr;
interface DECLSPEC_UUID("{06B6BDA5-1DC6-4321-8B28-AC065D87E060}") IPoint3DParamCurve;
typedef TComInterface<IPoint3DParamCurve, &IID_IPoint3DParamCurve> IPoint3DParamCurvePtr;
interface DECLSPEC_UUID("{18CE6BBE-63FB-4C94-8998-E40BC5B5D1C6}") IPoint3DParamSurface;
typedef TComInterface<IPoint3DParamSurface, &IID_IPoint3DParamSurface> IPoint3DParamSurfacePtr;
interface DECLSPEC_UUID("{B5D353DD-5F26-42FD-87D3-01C97C44E1BF}") IPoint3DParamProjection;
typedef TComInterface<IPoint3DParamProjection, &IID_IPoint3DParamProjection> IPoint3DParamProjectionPtr;
interface DECLSPEC_UUID("{C9E03A9B-0A54-49AC-9397-8DE4465A8D1D}") ISourcePart7Params;
typedef TComInterface<ISourcePart7Params, &IID_ISourcePart7Params> ISourcePart7ParamsPtr;
interface DECLSPEC_UUID("{D695D345-7054-4BBD-8D36-8E1F5AEDC5ED}") ISymbols3DContainer;
typedef TComInterface<ISymbols3DContainer, &IID_ISymbols3DContainer> ISymbols3DContainerPtr;
interface DECLSPEC_UUID("{8E30C80C-4C79-497B-A74B-84D44F96EF4D}") ILineDimensions3D;
typedef TComInterface<ILineDimensions3D, &IID_ILineDimensions3D> ILineDimensions3DPtr;
interface DECLSPEC_UUID("{3514887E-321B-4CE3-A966-3EB1A02CEEF2}") IBaseLineDimension3D;
typedef TComInterface<IBaseLineDimension3D, &IID_IBaseLineDimension3D> IBaseLineDimension3DPtr;
interface DECLSPEC_UUID("{153924CD-E046-4334-8798-46A6D6663DE4}") IRadialDimensions3D;
typedef TComInterface<IRadialDimensions3D, &IID_IRadialDimensions3D> IRadialDimensions3DPtr;
interface DECLSPEC_UUID("{5711B871-1FAE-425C-898E-583442D851CD}") IRadialDimension3D;
typedef TComInterface<IRadialDimension3D, &IID_IRadialDimension3D> IRadialDimension3DPtr;
interface DECLSPEC_UUID("{79B5AC3B-9B2F-4C75-8482-3C0D6B07D911}") IDiametralDimensions3D;
typedef TComInterface<IDiametralDimensions3D, &IID_IDiametralDimensions3D> IDiametralDimensions3DPtr;
interface DECLSPEC_UUID("{261AE065-69B8-4B42-B103-C8746720C5BF}") IDiametralDimension3D;
typedef TComInterface<IDiametralDimension3D, &IID_IDiametralDimension3D> IDiametralDimension3DPtr;
interface DECLSPEC_UUID("{E0E8DB05-F71B-457E-BFEB-7EC2E803E77A}") IAngleDimensions3D;
typedef TComInterface<IAngleDimensions3D, &IID_IAngleDimensions3D> IAngleDimensions3DPtr;
interface DECLSPEC_UUID("{C22870B5-F002-4C76-9E67-46854E938824}") IAngleDimension3D;
typedef TComInterface<IAngleDimension3D, &IID_IAngleDimension3D> IAngleDimension3DPtr;
interface DECLSPEC_UUID("{C6E6BDD4-2B0E-49BF-87D3-04E800200DDC}") ILeaders3D;
typedef TComInterface<ILeaders3D, &IID_ILeaders3D> ILeaders3DPtr;
interface DECLSPEC_UUID("{7170F38E-8230-4C9C-B36B-0BACBB27B123}") IBaseLeader3D;
typedef TComInterface<IBaseLeader3D, &IID_IBaseLeader3D> IBaseLeader3DPtr;
interface DECLSPEC_UUID("{8533772B-1C43-4FDD-9F0E-BC92F15862C9}") IRoughs3D;
typedef TComInterface<IRoughs3D, &IID_IRoughs3D> IRoughs3DPtr;
interface DECLSPEC_UUID("{083A4984-199E-4591-8FC3-CB8A9D7D4303}") IRough3D;
typedef TComInterface<IRough3D, &IID_IRough3D> IRough3DPtr;
interface DECLSPEC_UUID("{8BC582B3-1F82-4D19-AF95-24CBAD412E52}") IBases3D;
typedef TComInterface<IBases3D, &IID_IBases3D> IBases3DPtr;
interface DECLSPEC_UUID("{D5B737F6-FD3D-49F8-B3D8-C8475E5E3D3A}") IBase3D;
typedef TComInterface<IBase3D, &IID_IBase3D> IBase3DPtr;
interface DECLSPEC_UUID("{82ADDA0C-B8DE-4336-A5CC-B36504A80E2D}") ITolerances3D;
typedef TComInterface<ITolerances3D, &IID_ITolerances3D> ITolerances3DPtr;
interface DECLSPEC_UUID("{9CF700CF-72DB-44EB-A191-3814A3CC21BD}") ITolerance3D;
typedef TComInterface<ITolerance3D, &IID_ITolerance3D> ITolerance3DPtr;
interface DECLSPEC_UUID("{F38E986B-9CC0-4492-B850-180D3A6AF713}") ILineDimension3D;
typedef TComInterface<ILineDimension3D, &IID_ILineDimension3D> ILineDimension3DPtr;
interface DECLSPEC_UUID("{2AD2E4B4-B870-437A-8D57-5807729FCB05}") ICurveVertexParam;
typedef TComInterface<ICurveVertexParam, &IID_ICurveVertexParam> ICurveVertexParamPtr;
interface DECLSPEC_UUID("{C4BC0839-932F-4DBC-9A84-5D1FE8927351}") ISplines3D;
typedef TComInterface<ISplines3D, &IID_ISplines3D> ISplines3DPtr;
interface DECLSPEC_UUID("{4D0940A0-6A4A-4CE8-A08A-EA0A4AE91942}") ISpline3D;
typedef TComInterface<ISpline3D, &IID_ISpline3D> ISpline3DPtr;
interface DECLSPEC_UUID("{CC04CBF6-F0D4-456E-903A-C0B0D3551368}") ILocalCoordinateSystems;
typedef TComInterface<ILocalCoordinateSystems, &IID_ILocalCoordinateSystems> ILocalCoordinateSystemsPtr;
interface DECLSPEC_UUID("{950FEBE2-F916-4E77-A37D-B061E5C22FA8}") IAuxiliaryGeomContainer;
typedef TComInterface<IAuxiliaryGeomContainer, &IID_IAuxiliaryGeomContainer> IAuxiliaryGeomContainerPtr;
interface DECLSPEC_UUID("{0CF9B989-29F8-495F-9DDA-8C2CAD840BB6}") IPolyLines;
typedef TComInterface<IPolyLines, &IID_IPolyLines> IPolyLinesPtr;
interface DECLSPEC_UUID("{6CE7843D-9AFA-48FF-B444-61CDF036D118}") IPolyLine;
typedef TComInterface<IPolyLine, &IID_IPolyLine> IPolyLinePtr;
interface DECLSPEC_UUID("{E22E30F6-05EE-4FB5-9EEB-E288234F256A}") IControlPoints;
typedef TComInterface<IControlPoints, &IID_IControlPoints> IControlPointsPtr;
interface DECLSPEC_UUID("{39F4FC2C-99E7-411B-9036-9C756A71E211}") IControlPoint;
typedef TComInterface<IControlPoint, &IID_IControlPoint> IControlPointPtr;
interface DECLSPEC_UUID("{4DF343A0-8744-429D-A605-0EEABB7B5F23}") IConjunctivePoints;
typedef TComInterface<IConjunctivePoints, &IID_IConjunctivePoints> IConjunctivePointsPtr;
interface DECLSPEC_UUID("{BC7AD518-9599-490B-9E2B-9711FD9B8D4C}") IConjunctivePoint;
typedef TComInterface<IConjunctivePoint, &IID_IConjunctivePoint> IConjunctivePointPtr;
interface DECLSPEC_UUID("{986E4A45-362F-469D-A3AE-CE081B8EA93A}") ISplitLines;
typedef TComInterface<ISplitLines, &IID_ISplitLines> ISplitLinesPtr;
interface DECLSPEC_UUID("{969B49D1-E660-4E94-9343-DE5B0F397B03}") ISplitLine;
typedef TComInterface<ISplitLine, &IID_ISplitLine> ISplitLinePtr;
interface DECLSPEC_UUID("{453E0E34-4D2D-47B2-8E95-EB05C731961D}") ISurfacesIntersectionCurves;
typedef TComInterface<ISurfacesIntersectionCurves, &IID_ISurfacesIntersectionCurves> ISurfacesIntersectionCurvesPtr;
interface DECLSPEC_UUID("{758420A0-BECB-4FDA-BDDE-1F398B41117C}") ISurfacesIntersectionCurve;
typedef TComInterface<ISurfacesIntersectionCurve, &IID_ISurfacesIntersectionCurve> ISurfacesIntersectionCurvePtr;
interface DECLSPEC_UUID("{8B94F332-EEFD-4610-9C55-20A1F7336122}") IEquidistants3D;
typedef TComInterface<IEquidistants3D, &IID_IEquidistants3D> IEquidistants3DPtr;
interface DECLSPEC_UUID("{C25DDBF4-3CC1-467D-B996-E30ED4D529B6}") IEquidistant3D;
typedef TComInterface<IEquidistant3D, &IID_IEquidistant3D> IEquidistant3DPtr;
interface DECLSPEC_UUID("{919DF6DB-0BA9-4EDD-B681-33E0B519834B}") ILocalCSAxesDirectionParam;
typedef TComInterface<ILocalCSAxesDirectionParam, &IID_ILocalCSAxesDirectionParam> ILocalCSAxesDirectionParamPtr;
interface DECLSPEC_UUID("{AD261149-1455-49BD-BA0A-B1760A0C8CB0}") ILocalCSEulerParam;
typedef TComInterface<ILocalCSEulerParam, &IID_ILocalCSEulerParam> ILocalCSEulerParamPtr;
interface DECLSPEC_UUID("{6C1943CE-8FDB-47D2-9B2F-95F7B851BE3D}") IRoughParams;
typedef TComInterface<IRoughParams, &IID_IRoughParams> IRoughParamsPtr;
interface DECLSPEC_UUID("{AFE08AEC-F751-42D9-A6F5-3C004E4D41A6}") IBranchs3D;
typedef TComInterface<IBranchs3D, &IID_IBranchs3D> IBranchs3DPtr;
interface DECLSPEC_UUID("{618485E7-D88A-4DCC-8896-7EA04D831DBB}") ILocalCSOrientByObjectParam;
typedef TComInterface<ILocalCSOrientByObjectParam, &IID_ILocalCSOrientByObjectParam> ILocalCSOrientByObjectParamPtr;
interface DECLSPEC_UUID("{116F7E59-F175-47D2-8346-EB3C87D60578}") ILocalCSObject;
typedef TComInterface<ILocalCSObject, &IID_ILocalCSObject> ILocalCSObjectPtr;
interface DECLSPEC_UUID("{2FE3B199-A6B2-4644-9950-F9905250FF0D}") ISurfaceContainer;
typedef TComInterface<ISurfaceContainer, &IID_ISurfaceContainer> ISurfaceContainerPtr;
interface DECLSPEC_UUID("{DEE5B135-4D8E-4AD8-AEA4-E763F68290B2}") ISurfacePatches;
typedef TComInterface<ISurfacePatches, &IID_ISurfacePatches> ISurfacePatchesPtr;
interface DECLSPEC_UUID("{B6330040-7ABA-4ECD-8C92-5B441AF11C3B}") ISurfacePatch;
typedef TComInterface<ISurfacePatch, &IID_ISurfacePatch> ISurfacePatchPtr;
interface DECLSPEC_UUID("{6E177627-05D6-40B4-B955-9203F00656B5}") IFaceRemovers;
typedef TComInterface<IFaceRemovers, &IID_IFaceRemovers> IFaceRemoversPtr;
interface DECLSPEC_UUID("{4CAE21E3-4183-47A6-94B8-8AD14D5775EE}") IFaceRemover;
typedef TComInterface<IFaceRemover, &IID_IFaceRemover> IFaceRemoverPtr;
interface DECLSPEC_UUID("{70AE0BA0-2059-4EAB-BE41-A6E8C8ACFA8A}") ISurfaceSewers;
typedef TComInterface<ISurfaceSewers, &IID_ISurfaceSewers> ISurfaceSewersPtr;
interface DECLSPEC_UUID("{031FD1C7-9CB6-4E49-A27D-73B8D0B648D4}") ISurfaceSewer;
typedef TComInterface<ISurfaceSewer, &IID_ISurfaceSewer> ISurfaceSewerPtr;
interface DECLSPEC_UUID("{DB184867-6207-4FB7-9B3F-882BEAA16B4D}") INurbsSurfaces;
typedef TComInterface<INurbsSurfaces, &IID_INurbsSurfaces> INurbsSurfacesPtr;
interface DECLSPEC_UUID("{5DAFC690-B3A7-4771-8E98-F83B5BF0D454}") INurbsSurface;
typedef TComInterface<INurbsSurface, &IID_INurbsSurface> INurbsSurfacePtr;
interface DECLSPEC_UUID("{BE6A80EE-38FE-4432-8331-BF864830761C}") IColorParam7;
typedef TComInterface<IColorParam7, &IID_IColorParam7> IColorParam7Ptr;
interface DECLSPEC_UUID("{E32E5703-0141-41CF-9917-9565648FE331}") IDrawingText;
typedef TComInterface<IDrawingText, &IID_IDrawingText> IDrawingTextPtr;
interface DECLSPEC_UUID("{C72E0E9D-7078-4AA7-95E4-E8C75CA9BCEC}") IDrawingTexts;
typedef TComInterface<IDrawingTexts, &IID_IDrawingTexts> IDrawingTextsPtr;
interface DECLSPEC_UUID("{D603FEC9-75B7-4FA5-918F-47074C45B848}") IDrawingContainer;
typedef TComInterface<IDrawingContainer, &IID_IDrawingContainer> IDrawingContainerPtr;
interface DECLSPEC_UUID("{B211C782-A830-468E-9F4F-C499A77078D8}") ILineSegments;
typedef TComInterface<ILineSegments, &IID_ILineSegments> ILineSegmentsPtr;
interface DECLSPEC_UUID("{64ACC86F-4B10-4897-8552-BC0A556D228B}") ILineSegment;
typedef TComInterface<ILineSegment, &IID_ILineSegment> ILineSegmentPtr;
interface DECLSPEC_UUID("{4FCB4C17-3B9E-45E8-B83C-9284027BAA0D}") IArcs;
typedef TComInterface<IArcs, &IID_IArcs> IArcsPtr;
interface DECLSPEC_UUID("{A22DFB7E-21E0-4B28-9CA1-29B7950CF256}") IArc;
typedef TComInterface<IArc, &IID_IArc> IArcPtr;
interface DECLSPEC_UUID("{968D7B84-2BC1-4354-AAFE-73192E405546}") IMultilines;
typedef TComInterface<IMultilines, &IID_IMultilines> IMultilinesPtr;
interface DECLSPEC_UUID("{F6CCB098-5710-44E3-8198-8FAFD56C7A6F}") IMultiline;
typedef TComInterface<IMultiline, &IID_IMultiline> IMultilinePtr;
interface DECLSPEC_UUID("{E79F5A53-F456-4996-B620-16B725F134FB}") IContour;
typedef TComInterface<IContour, &IID_IContour> IContourPtr;
interface DECLSPEC_UUID("{DBA3626C-12BE-4BFF-8D42-B01A78666BC9}") IDrawingContours;
typedef TComInterface<IDrawingContours, &IID_IDrawingContours> IDrawingContoursPtr;
interface DECLSPEC_UUID("{25509C3A-7B46-4E3F-B0E8-0E61B7548664}") IDrawingContour;
typedef TComInterface<IDrawingContour, &IID_IDrawingContour> IDrawingContourPtr;
interface DECLSPEC_UUID("{C8CA9255-E5FE-4396-9C3F-75EE7377C508}") ICircles;
typedef TComInterface<ICircles, &IID_ICircles> ICirclesPtr;
interface DECLSPEC_UUID("{5C952F95-DFED-4EEE-B39A-6699EDE08676}") ICircle;
typedef TComInterface<ICircle, &IID_ICircle> ICirclePtr;
interface DECLSPEC_UUID("{8C6846A4-EE3B-4C00-A708-5C0FD01E21B7}") IPoints;
typedef TComInterface<IPoints, &IID_IPoints> IPointsPtr;
interface DECLSPEC_UUID("{D0C19C87-14E7-401D-AEF5-A2E88E899F6E}") IPoint;
typedef TComInterface<IPoint, &IID_IPoint> IPointPtr;
interface DECLSPEC_UUID("{57944ECC-5491-4551-9DB9-FABC45125A63}") IBeziers;
typedef TComInterface<IBeziers, &IID_IBeziers> IBeziersPtr;
interface DECLSPEC_UUID("{6D51EC19-200C-47A2-AE55-0593AD746851}") IBezier;
typedef TComInterface<IBezier, &IID_IBezier> IBezierPtr;
interface DECLSPEC_UUID("{5B3F5454-160A-4981-B093-890E9A719AE3}") IMacroObjects;
typedef TComInterface<IMacroObjects, &IID_IMacroObjects> IMacroObjectsPtr;
interface DECLSPEC_UUID("{889A9B9C-7533-4EC5-8E2C-5ECF8228B06F}") ILines;
typedef TComInterface<ILines, &IID_ILines> ILinesPtr;
interface DECLSPEC_UUID("{3EA0DA9B-F2C0-40C4-BE36-7103509A9389}") ILine;
typedef TComInterface<ILine, &IID_ILine> ILinePtr;
interface DECLSPEC_UUID("{D1A9CB2D-A259-4CCC-9CD4-FA006494BCA7}") IPolyLines2D;
typedef TComInterface<IPolyLines2D, &IID_IPolyLines2D> IPolyLines2DPtr;
interface DECLSPEC_UUID("{4D0DA413-9507-4795-896F-E049FA6E44DD}") IPolyLine2D;
typedef TComInterface<IPolyLine2D, &IID_IPolyLine2D> IPolyLine2DPtr;
interface DECLSPEC_UUID("{88ECED7C-181C-4D9F-84DE-44B2E360F278}") INurbses;
typedef TComInterface<INurbses, &IID_INurbses> INurbsesPtr;
interface DECLSPEC_UUID("{EE1AB9F4-B127-4303-A30D-C3509F6D10CD}") INurbs;
typedef TComInterface<INurbs, &IID_INurbs> INurbsPtr;
interface DECLSPEC_UUID("{C6E4E32D-E077-4B14-B9DE-041BD628C38C}") IRasters;
typedef TComInterface<IRasters, &IID_IRasters> IRastersPtr;
interface DECLSPEC_UUID("{DEED8D7B-404B-4F17-B42A-2F5E64818D0A}") IRaster;
typedef TComInterface<IRaster, &IID_IRaster> IRasterPtr;
interface DECLSPEC_UUID("{E7A8DD07-CD6B-45A6-B6AF-155A674BC7E4}") IOleDrawingObjects;
typedef TComInterface<IOleDrawingObjects, &IID_IOleDrawingObjects> IOleDrawingObjectsPtr;
interface DECLSPEC_UUID("{9A0ECE23-7B60-44E0-9728-C56CAAA455A2}") IOleDrawingObject;
typedef TComInterface<IOleDrawingObject, &IID_IOleDrawingObject> IOleDrawingObjectPtr;
interface DECLSPEC_UUID("{47633C44-93BB-4F41-A6CA-4F8CCAEA0659}") IEllipses;
typedef TComInterface<IEllipses, &IID_IEllipses> IEllipsesPtr;
interface DECLSPEC_UUID("{F60C9107-D8E2-433C-A0E3-A4E508D09353}") IEllipse;
typedef TComInterface<IEllipse, &IID_IEllipse> IEllipsePtr;
interface DECLSPEC_UUID("{CC5B7FCB-B887-4A47-AE6B-2522DFA24433}") IEllipseArcs;
typedef TComInterface<IEllipseArcs, &IID_IEllipseArcs> IEllipseArcsPtr;
interface DECLSPEC_UUID("{320D837F-0B27-45B0-98B4-9D21156E9857}") IEllipseArc;
typedef TComInterface<IEllipseArc, &IID_IEllipseArc> IEllipseArcPtr;
interface DECLSPEC_UUID("{D6BC2EE9-249F-4961-89A7-88DA854F35FE}") IRectangles;
typedef TComInterface<IRectangles, &IID_IRectangles> IRectanglesPtr;
interface DECLSPEC_UUID("{42F9FC58-FEA0-4E52-A604-1A00985AB772}") IRectangle;
typedef TComInterface<IRectangle, &IID_IRectangle> IRectanglePtr;
interface DECLSPEC_UUID("{80377CB2-073E-4C38-8532-C42A078BA719}") IRegularPolygons;
typedef TComInterface<IRegularPolygons, &IID_IRegularPolygons> IRegularPolygonsPtr;
interface DECLSPEC_UUID("{51968648-F264-4904-A07F-653676AE1D35}") IRegularPolygon;
typedef TComInterface<IRegularPolygon, &IID_IRegularPolygon> IRegularPolygonPtr;
interface DECLSPEC_UUID("{86182E5E-8FA3-4283-9DC5-43D1673C80DA}") IEquidistants;
typedef TComInterface<IEquidistants, &IID_IEquidistants> IEquidistantsPtr;
interface DECLSPEC_UUID("{EE6713F9-AD9A-466D-9FB9-D19235E42C95}") IEquidistant;
typedef TComInterface<IEquidistant, &IID_IEquidistant> IEquidistantPtr;
interface DECLSPEC_UUID("{C485550B-29E3-4F2A-A85C-C2795E0F1F86}") IInsertionObjects;
typedef TComInterface<IInsertionObjects, &IID_IInsertionObjects> IInsertionObjectsPtr;
interface DECLSPEC_UUID("{B9E9CE68-371D-4600-9233-84D89A015C55}") IInsertionObject;
typedef TComInterface<IInsertionObject, &IID_IInsertionObject> IInsertionObjectPtr;
interface DECLSPEC_UUID("{B7E776B0-9524-4254-9D1F-0CF8E0314A1B}") IHatches;
typedef TComInterface<IHatches, &IID_IHatches> IHatchesPtr;
interface DECLSPEC_UUID("{826C0B5B-0146-417A-8128-E581F8430F37}") IHatch;
typedef TComInterface<IHatch, &IID_IHatch> IHatchPtr;
interface DECLSPEC_UUID("{60437DAD-2688-4146-B765-3FCC55C39D0F}") IColourings;
typedef TComInterface<IColourings, &IID_IColourings> IColouringsPtr;
interface DECLSPEC_UUID("{1E0EF1B5-08D3-40B6-893E-3EE7E4FAEC98}") IColouring;
typedef TComInterface<IColouring, &IID_IColouring> IColouringPtr;
interface DECLSPEC_UUID("{B5D1A0BE-8F3C-4143-B9C5-66F0CF0FE74D}") IMark;
typedef TComInterface<IMark, &IID_IMark> IMarkPtr;
interface DECLSPEC_UUID("{47585370-56BD-4419-82D9-DB7CBFB1A252}") IMarks;
typedef TComInterface<IMarks, &IID_IMarks> IMarksPtr;
interface DECLSPEC_UUID("{E5C5A0FF-6CAB-4179-9BF3-868D96BF6AEA}") IMarkInsideForm;
typedef TComInterface<IMarkInsideForm, &IID_IMarkInsideForm> IMarkInsideFormPtr;
interface DECLSPEC_UUID("{5A1540F9-7388-466F-A13C-EB1133423DD9}") IMarkOnLine;
typedef TComInterface<IMarkOnLine, &IID_IMarkOnLine> IMarkOnLinePtr;
interface DECLSPEC_UUID("{F3D7E6A6-26EA-4D68-AD58-4DE194C47B4E}") IMarkOnLeader;
typedef TComInterface<IMarkOnLeader, &IID_IMarkOnLeader> IMarkOnLeaderPtr;
interface DECLSPEC_UUID("{123C45BF-14DE-433E-B3B0-2FB642A9A418}") IBuildingAxis;
typedef TComInterface<IBuildingAxis, &IID_IBuildingAxis> IBuildingAxisPtr;
interface DECLSPEC_UUID("{5AC48E97-80B1-459F-9709-1F3F374559BE}") IMarkNode;
typedef TComInterface<IMarkNode, &IID_IMarkNode> IMarkNodePtr;
interface DECLSPEC_UUID("{EB8ACD77-8008-4F89-A311-2F4712462F72}") IMarkNodes;
typedef TComInterface<IMarkNodes, &IID_IMarkNodes> IMarkNodesPtr;
interface DECLSPEC_UUID("{18072E1D-1802-41F5-A434-04BB9D3F157F}") IBuildingAxes;
typedef TComInterface<IBuildingAxes, &IID_IBuildingAxes> IBuildingAxesPtr;
interface DECLSPEC_UUID("{7B2820E0-2CB7-4412-9B96-F291DD790448}") IStraightAxis;
typedef TComInterface<IStraightAxis, &IID_IStraightAxis> IStraightAxisPtr;
interface DECLSPEC_UUID("{5A22E024-F530-45DB-A3F2-CA0587BDA1B5}") IAxisJut;
typedef TComInterface<IAxisJut, &IID_IAxisJut> IAxisJutPtr;
interface DECLSPEC_UUID("{DAA9755A-3971-4713-B281-15995CBF2E56}") IArcAxis;
typedef TComInterface<IArcAxis, &IID_IArcAxis> IArcAxisPtr;
interface DECLSPEC_UUID("{D84358FB-674C-4A5D-93BA-EE5D3342097B}") ICircleAxis;
typedef TComInterface<ICircleAxis, &IID_ICircleAxis> ICircleAxisPtr;
interface DECLSPEC_UUID("{2EDA58EE-DBDA-44CC-AD10-6895006D498C}") ICutUnitMarking;
typedef TComInterface<ICutUnitMarking, &IID_ICutUnitMarking> ICutUnitMarkingPtr;
interface DECLSPEC_UUID("{23B00F94-98D3-4AD7-8827-F4088F4A9E5C}") ICutUnitMarkings;
typedef TComInterface<ICutUnitMarkings, &IID_ICutUnitMarkings> ICutUnitMarkingsPtr;
interface DECLSPEC_UUID("{86F46084-16A8-4B5C-99E9-F848216788F0}") IUnitMarking;
typedef TComInterface<IUnitMarking, &IID_IUnitMarking> IUnitMarkingPtr;
interface DECLSPEC_UUID("{969AD901-FC09-47F5-94F5-1ABEB1A9C85C}") IUnitMarkings;
typedef TComInterface<IUnitMarkings, &IID_IUnitMarkings> IUnitMarkingsPtr;
interface DECLSPEC_UUID("{FD1FD236-F5BA-4FB0-A872-21FC13E6895F}") IBuildingContainer;
typedef TComInterface<IBuildingContainer, &IID_IBuildingContainer> IBuildingContainerPtr;
interface DECLSPEC_UUID("{233B2298-7A45-4CE1-AEF2-30B063FDB63C}") IMultiTextLeaders;
typedef TComInterface<IMultiTextLeaders, &IID_IMultiTextLeaders> IMultiTextLeadersPtr;
interface DECLSPEC_UUID("{1BFC5D3F-1483-4569-B4B5-7A12163A4655}") IMultiTextLeader;
typedef TComInterface<IMultiTextLeader, &IID_IMultiTextLeader> IMultiTextLeaderPtr;
interface DECLSPEC_UUID("{598E649B-970C-454B-9162-1BB6C9FBFCBF}") IUnitNumbers;
typedef TComInterface<IUnitNumbers, &IID_IUnitNumbers> IUnitNumbersPtr;
interface DECLSPEC_UUID("{FABAF607-CB92-47C4-9409-B7678162051D}") IUnitNumber;
typedef TComInterface<IUnitNumber, &IID_IUnitNumber> IUnitNumberPtr;
interface DECLSPEC_UUID("{99F27BD6-6294-45D9-AF78-A9D52E9DD799}") IBraces;
typedef TComInterface<IBraces, &IID_IBraces> IBracesPtr;
interface DECLSPEC_UUID("{7F328D28-76E9-4E04-A35C-AD60339998E4}") IBrace;
typedef TComInterface<IBrace, &IID_IBrace> IBracePtr;
interface DECLSPEC_UUID("{666DA5B4-324C-493C-9A91-37D9E078EB4E}") ICutLines;
typedef TComInterface<ICutLines, &IID_ICutLines> ICutLinesPtr;
interface DECLSPEC_UUID("{26E86124-DC1C-41A2-8075-E73F3EAD8474}") ICutLine;
typedef TComInterface<ICutLine, &IID_ICutLine> ICutLinePtr;
interface DECLSPEC_UUID("{F46B0086-17F2-4489-A5A7-0AA677610AFD}") ISymbols2DContainer;
typedef TComInterface<ISymbols2DContainer, &IID_ISymbols2DContainer> ISymbols2DContainerPtr;
interface DECLSPEC_UUID("{A6F6A18A-78FA-4A77-BB75-90647E0C545C}") ILineDimensions;
typedef TComInterface<ILineDimensions, &IID_ILineDimensions> ILineDimensionsPtr;
interface DECLSPEC_UUID("{A3767BDA-E605-4FC1-988D-81809DEB36F4}") ILineDimension;
typedef TComInterface<ILineDimension, &IID_ILineDimension> ILineDimensionPtr;
interface DECLSPEC_UUID("{12D26993-449E-42E2-A909-B047AFD6E27D}") IRadialDimensions;
typedef TComInterface<IRadialDimensions, &IID_IRadialDimensions> IRadialDimensionsPtr;
interface DECLSPEC_UUID("{712A9437-D772-4EAE-AF83-ABC9C22EB281}") IRadialDimension;
typedef TComInterface<IRadialDimension, &IID_IRadialDimension> IRadialDimensionPtr;
interface DECLSPEC_UUID("{8E45FEB9-7BCD-4C9F-9767-320736980662}") IDiametralDimensions;
typedef TComInterface<IDiametralDimensions, &IID_IDiametralDimensions> IDiametralDimensionsPtr;
interface DECLSPEC_UUID("{2B4CE92F-438D-4D3E-8F8D-4D14E5D0E214}") IDiametralDimension;
typedef TComInterface<IDiametralDimension, &IID_IDiametralDimension> IDiametralDimensionPtr;
interface DECLSPEC_UUID("{DF9ABB77-BBB6-4B29-A0E0-81DCFD525C2E}") IAngleDimensions;
typedef TComInterface<IAngleDimensions, &IID_IAngleDimensions> IAngleDimensionsPtr;
interface DECLSPEC_UUID("{0F2CE9EC-5D2A-4B21-B96A-46201C120ED1}") IAngleDimension;
typedef TComInterface<IAngleDimension, &IID_IAngleDimension> IAngleDimensionPtr;
interface DECLSPEC_UUID("{4125169F-3EA8-4AC0-9E1B-5582D62600C4}") IBreakLineDimensions;
typedef TComInterface<IBreakLineDimensions, &IID_IBreakLineDimensions> IBreakLineDimensionsPtr;
interface DECLSPEC_UUID("{61164A26-855C-4220-88ED-C2BDAF49B2DB}") IBreakLineDimension;
typedef TComInterface<IBreakLineDimension, &IID_IBreakLineDimension> IBreakLineDimensionPtr;
interface DECLSPEC_UUID("{3A56D35C-3242-4C49-BA99-CF790EB10356}") IHeightDimensions;
typedef TComInterface<IHeightDimensions, &IID_IHeightDimensions> IHeightDimensionsPtr;
interface DECLSPEC_UUID("{938BE57F-55FF-469F-82A5-B1CD6CCF8340}") IHeightDimension;
typedef TComInterface<IHeightDimension, &IID_IHeightDimension> IHeightDimensionPtr;
interface DECLSPEC_UUID("{FE2755D9-48E2-44CC-BC24-86CF86BE08E2}") IArcDimensions;
typedef TComInterface<IArcDimensions, &IID_IArcDimensions> IArcDimensionsPtr;
interface DECLSPEC_UUID("{11487495-B18A-4877-9E85-3DC9016DF8BD}") IArcDimension;
typedef TComInterface<IArcDimension, &IID_IArcDimension> IArcDimensionPtr;
interface DECLSPEC_UUID("{E2181A3E-5417-4D73-AB65-983DED3438E0}") IBreakRadialDimensions;
typedef TComInterface<IBreakRadialDimensions, &IID_IBreakRadialDimensions> IBreakRadialDimensionsPtr;
interface DECLSPEC_UUID("{88491537-9E93-42F3-861C-761A75BB89D6}") IBreakRadialDimension;
typedef TComInterface<IBreakRadialDimension, &IID_IBreakRadialDimension> IBreakRadialDimensionPtr;
interface DECLSPEC_UUID("{ACC42B32-27F3-4F74-B4A5-C97D4C7B289D}") IRoughs;
typedef TComInterface<IRoughs, &IID_IRoughs> IRoughsPtr;
interface DECLSPEC_UUID("{0A192AC5-D8BC-43E9-8FC7-ACF32578DDB4}") IRough;
typedef TComInterface<IRough, &IID_IRough> IRoughPtr;
interface DECLSPEC_UUID("{BA2D820C-0DB9-47C6-A32D-34C7D8BA1B2F}") ILeaders;
typedef TComInterface<ILeaders, &IID_ILeaders> ILeadersPtr;
interface DECLSPEC_UUID("{1AF590A9-C339-477A-9F22-799C04D20BB4}") IBaseLeader;
typedef TComInterface<IBaseLeader, &IID_IBaseLeader> IBaseLeaderPtr;
interface DECLSPEC_UUID("{C607727C-6B0A-4FB6-AFCA-ED9D83F5C6B7}") IBases;
typedef TComInterface<IBases, &IID_IBases> IBasesPtr;
interface DECLSPEC_UUID("{01CDFD67-69EA-4289-8F42-5B01BB9BF70B}") IBase;
typedef TComInterface<IBase, &IID_IBase> IBasePtr;
interface DECLSPEC_UUID("{97CDD55F-3C64-469B-B26E-A927D3300B6C}") ITolerances;
typedef TComInterface<ITolerances, &IID_ITolerances> ITolerancesPtr;
interface DECLSPEC_UUID("{42DEF911-ADB2-478C-85F1-D5FEFA262EEC}") ITolerance;
typedef TComInterface<ITolerance, &IID_ITolerance> ITolerancePtr;
interface DECLSPEC_UUID("{DF92DACE-BDC6-4341-86DA-3A9C8DCFDEFE}") IDrawingTables;
typedef TComInterface<IDrawingTables, &IID_IDrawingTables> IDrawingTablesPtr;
interface DECLSPEC_UUID("{9B421BDA-0444-4A68-B69C-1C05D05C9D28}") IDrawingTable;
typedef TComInterface<IDrawingTable, &IID_IDrawingTable> IDrawingTablePtr;
interface DECLSPEC_UUID("{08B45C97-6F86-4809-BBC3-78F216BD0430}") IViewPointers;
typedef TComInterface<IViewPointers, &IID_IViewPointers> IViewPointersPtr;
interface DECLSPEC_UUID("{3EE98177-63E8-4C48-89AD-3D5CCCF84D72}") IViewPointer;
typedef TComInterface<IViewPointer, &IID_IViewPointer> IViewPointerPtr;
interface DECLSPEC_UUID("{A0533211-CF52-4AB5-A172-3DC7D94276D1}") ICentreMarkers;
typedef TComInterface<ICentreMarkers, &IID_ICentreMarkers> ICentreMarkersPtr;
interface DECLSPEC_UUID("{8FE1CADA-DE72-4A55-B303-EAF1F4748CF6}") ICentreMarker;
typedef TComInterface<ICentreMarker, &IID_ICentreMarker> ICentreMarkerPtr;
interface DECLSPEC_UUID("{88427A6B-00AF-46E2-9B95-BC8348C2162A}") IRemoteElements;
typedef TComInterface<IRemoteElements, &IID_IRemoteElements> IRemoteElementsPtr;
interface DECLSPEC_UUID("{A9D96CE2-9FE4-494E-87B2-20122EAC2AE4}") IRemoteElement;
typedef TComInterface<IRemoteElement, &IID_IRemoteElement> IRemoteElementPtr;
interface DECLSPEC_UUID("{C567E700-E163-4C8F-B329-931BB93D0223}") IAxisLines;
typedef TComInterface<IAxisLines, &IID_IAxisLines> IAxisLinesPtr;
interface DECLSPEC_UUID("{5C5CAEBD-70A9-41DB-9F74-F9760D822D95}") IAxisLine;
typedef TComInterface<IAxisLine, &IID_IAxisLine> IAxisLinePtr;
interface DECLSPEC_UUID("{C1F0A911-8B4A-48B5-9611-5250D3FC2ACA}") IWaveLines;
typedef TComInterface<IWaveLines, &IID_IWaveLines> IWaveLinesPtr;
interface DECLSPEC_UUID("{FA2012E1-A983-47D3-9D43-B8DC619AC554}") IWaveLine;
typedef TComInterface<IWaveLine, &IID_IWaveLine> IWaveLinePtr;
interface DECLSPEC_UUID("{2A7EADC0-5E79-4DDB-85D5-E3EDB743480D}") IBrokenLines;
typedef TComInterface<IBrokenLines, &IID_IBrokenLines> IBrokenLinesPtr;
interface DECLSPEC_UUID("{2482EB44-5625-4FB9-A46B-781426B02510}") IBrokenLine;
typedef TComInterface<IBrokenLine, &IID_IBrokenLine> IBrokenLinePtr;
interface DECLSPEC_UUID("{F6ED408A-C2A8-47DD-8EC3-011A7AD60335}") IBreakAngleDimension;
typedef TComInterface<IBreakAngleDimension, &IID_IBreakAngleDimension> IBreakAngleDimensionPtr;
interface DECLSPEC_UUID("{C8A55AB3-D6DD-49B8-95F0-716475855C10}") IBranchs;
typedef TComInterface<IBranchs, &IID_IBranchs> IBranchsPtr;
interface DECLSPEC_UUID("{A7419920-06B8-4F34-AC1E-9D48E0ED9DCB}") ILeader;
typedef TComInterface<ILeader, &IID_ILeader> ILeaderPtr;
interface DECLSPEC_UUID("{8A5D2A56-ECB6-4151-B1AC-F8548CD668CF}") IMarkLeader;
typedef TComInterface<IMarkLeader, &IID_IMarkLeader> IMarkLeaderPtr;
interface DECLSPEC_UUID("{A8227628-4B9C-42C8-AE58-B3716A7EC1AF}") IPositionLeader;
typedef TComInterface<IPositionLeader, &IID_IPositionLeader> IPositionLeaderPtr;
interface DECLSPEC_UUID("{CCFBE87D-1A3C-4C8B-ABE3-1C2319694314}") IChangeLeader;
typedef TComInterface<IChangeLeader, &IID_IChangeLeader> IChangeLeaderPtr;
interface DECLSPEC_UUID("{EEF8366B-7C8D-448B-9944-BE63E82C1543}") IBrandLeader;
typedef TComInterface<IBrandLeader, &IID_IBrandLeader> IBrandLeaderPtr;
interface DECLSPEC_UUID("{46E2F216-6BCE-4863-9DDC-CC08DC0016F7}") IToleranceParam;
typedef TComInterface<IToleranceParam, &IID_IToleranceParam> IToleranceParamPtr;
interface DECLSPEC_UUID("{AA485B32-FF45-4035-BFC4-AEE54E638344}") IContourSegment;
typedef TComInterface<IContourSegment, &IID_IContourSegment> IContourSegmentPtr;
interface DECLSPEC_UUID("{FB2432F1-8AE7-4D43-AFF2-A3A3BE226CFA}") IContourLineSegment;
typedef TComInterface<IContourLineSegment, &IID_IContourLineSegment> IContourLineSegmentPtr;
interface DECLSPEC_UUID("{ED4A6D97-4543-4842-B2C3-973FB0E90E87}") IContourArc;
typedef TComInterface<IContourArc, &IID_IContourArc> IContourArcPtr;
interface DECLSPEC_UUID("{3D99B82C-CD88-406D-A946-2D8C8E94EE73}") IInsertionFragment;
typedef TComInterface<IInsertionFragment, &IID_IInsertionFragment> IInsertionFragmentPtr;
interface DECLSPEC_UUID("{0C8FC5A9-57A8-4971-8E6C-68933269D42E}") IInsertionView;
typedef TComInterface<IInsertionView, &IID_IInsertionView> IInsertionViewPtr;
interface DECLSPEC_UUID("{B43FA13A-9488-422C-A9F3-D279FDA296BB}") IInsertionsManager;
typedef TComInterface<IInsertionsManager, &IID_IInsertionsManager> IInsertionsManagerPtr;
interface DECLSPEC_UUID("{620CC8EB-A5C0-4978-BD98-38344DC6ADC0}") IAxisLineParam;
typedef TComInterface<IAxisLineParam, &IID_IAxisLineParam> IAxisLineParamPtr;
interface DECLSPEC_UUID("{7198C93A-7655-4347-9954-BA9AA28D0608}") IBoundariesObject;
typedef TComInterface<IBoundariesObject, &IID_IBoundariesObject> IBoundariesObjectPtr;
interface DECLSPEC_UUID("{0DBD7BCD-F78E-4BDA-BCAD-3004C60B6D06}") IAnnotativeObject;
typedef TComInterface<IAnnotativeObject, &IID_IAnnotativeObject> IAnnotativeObjectPtr;
interface DECLSPEC_UUID("{AE6C238C-4398-4057-9D28-D275954D9506}") IAnnotativeContainer;
typedef TComInterface<IAnnotativeContainer, &IID_IAnnotativeContainer> IAnnotativeContainerPtr;
interface DECLSPEC_UUID("{12B52A99-FF5F-4C08-9E5E-DF7C7AD834A8}") ICurveCopyObjectParam;
typedef TComInterface<ICurveCopyObjectParam, &IID_ICurveCopyObjectParam> ICurveCopyObjectParamPtr;
interface DECLSPEC_UUID("{138D1202-CA46-4DB3-BF2B-85D260E44355}") ICircleCopyObjectParam;
typedef TComInterface<ICircleCopyObjectParam, &IID_ICircleCopyObjectParam> ICircleCopyObjectParamPtr;
interface DECLSPEC_UUID("{9D5CDE37-7833-4359-B25A-FE7011EA771A}") IExternalTessellationObject;
typedef TComInterface<IExternalTessellationObject, &IID_IExternalTessellationObject> IExternalTessellationObjectPtr;
interface DECLSPEC_UUID("{DC21F3D3-FFA6-4274-A976-79F34729B866}") IExternalTessellationManager;
typedef TComInterface<IExternalTessellationManager, &IID_IExternalTessellationManager> IExternalTessellationManagerPtr;
interface DECLSPEC_UUID("{C234E81D-4232-41FD-980D-8E7E6EA7B733}") IExternalGDIObject;
typedef TComInterface<IExternalGDIObject, &IID_IExternalGDIObject> IExternalGDIObjectPtr;
interface DECLSPEC_UUID("{EB4AB3A9-8E01-4952-9119-F8D09D9572D5}") IModelCurve3D;
typedef TComInterface<IModelCurve3D, &IID_IModelCurve3D> IModelCurve3DPtr;
interface DECLSPEC_UUID("{B2431C46-9A35-494B-A958-D9098F82C3FA}") IPropertyStyleList;
typedef TComInterface<IPropertyStyleList, &IID_IPropertyStyleList> IPropertyStyleListPtr;
interface DECLSPEC_UUID("{A5B8E337-EE84-4EEC-8235-A812FDD6C2DE}") ICircularCopyObjectParam;
typedef TComInterface<ICircularCopyObjectParam, &IID_ICircularCopyObjectParam> ICircularCopyObjectParamPtr;
interface DECLSPEC_UUID("{592AB214-A8CF-462E-ACD5-528839113338}") IMeshCopyObjectParam;
typedef TComInterface<IMeshCopyObjectParam, &IID_IMeshCopyObjectParam> IMeshCopyObjectParamPtr;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library                       
// (NOTE: Here we map each CoClass to its Default Interface)              
//                                                                        
// The LIBID_OF_ macro(s) map a LIBID_OF_CoClassName to the GUID of this  
// TypeLibrary. It simplifies the updating of macros when CoClass name    
// change.                                                                
// *********************************************************************//
typedef IKompasDocument KompasDocument;
typedef IKompasDocumentPtr KompasDocumentPtr;
typedef IApplication _Application;
typedef IApplicationPtr _ApplicationPtr;
typedef IDocuments Documents;
typedef IDocumentsPtr DocumentsPtr;
typedef IDocumentFrame DocumentFrame;
typedef IDocumentFramePtr DocumentFramePtr;
typedef IDocumentFrames DocumentFrames;
typedef IDocumentFramesPtr DocumentFramesPtr;
typedef IProcessParam ProcessParam;
typedef IProcessParamPtr ProcessParamPtr;
typedef IPropertyControls PropertyControls;
typedef IPropertyControlsPtr PropertyControlsPtr;
typedef IPropertyTab PropertyTab;
typedef IPropertyTabPtr PropertyTabPtr;
typedef IPropertyTabs PropertyTabs;
typedef IPropertyTabsPtr PropertyTabsPtr;
typedef IPropertyEdit PropertyEdit;
typedef IPropertyEditPtr PropertyEditPtr;
typedef IPropertySeparator PropertySeparator;
typedef IPropertySeparatorPtr PropertySeparatorPtr;
typedef IPropertyList PropertyList;
typedef IPropertyListPtr PropertyListPtr;
typedef IPropertyCheckBox PropertyCheckBox;
typedef IPropertyCheckBoxPtr PropertyCheckBoxPtr;
typedef IPropertyMultiButton PropertyMultiButton;
typedef IPropertyMultiButtonPtr PropertyMultiButtonPtr;
typedef IPropertySlideBox PropertySlideBox;
typedef IPropertySlideBoxPtr PropertySlideBoxPtr;
typedef IPropertyUserControl PropertyUserControl;
typedef IPropertyUserControlPtr PropertyUserControlPtr;
typedef IPropertyGrid PropertyGrid;
typedef IPropertyGridPtr PropertyGridPtr;
typedef IPropertyManager PropertyManager;
typedef IPropertyManagerPtr PropertyManagerPtr;
typedef IKompasDocument3D KompasDocument3D;
typedef IKompasDocument3DPtr KompasDocument3DPtr;
typedef IDrawingDocument DrawingDocument;
typedef IDrawingDocumentPtr DrawingDocumentPtr;
typedef IFragmentDocument FragmentDocument;
typedef IFragmentDocumentPtr FragmentDocumentPtr;
typedef ISpecificationDocument SpecificationDocument;
typedef ISpecificationDocumentPtr SpecificationDocumentPtr;
typedef ITextDocument TextDocument;
typedef ITextDocumentPtr TextDocumentPtr;
typedef IPartDocument PartDocument;
typedef IPartDocumentPtr PartDocumentPtr;
typedef IAssemblyDocument AssemblyDocument;
typedef IAssemblyDocumentPtr AssemblyDocumentPtr;
typedef IPropertyTextButton PropertyTextButton;
typedef IPropertyTextButtonPtr PropertyTextButtonPtr;
typedef IPropertySpinEdit PropertySpinEdit;
typedef IPropertySpinEditPtr PropertySpinEditPtr;
typedef IViewsAndLayersManager ViewsAndLayersManager;
typedef IViewsAndLayersManagerPtr ViewsAndLayersManagerPtr;
typedef IDrawingObject DrawingObject;
typedef IDrawingObjectPtr DrawingObjectPtr;
typedef IDrawingObjects DrawingObjects;
typedef IDrawingObjectsPtr DrawingObjectsPtr;
typedef IViews Views;
typedef IViewsPtr ViewsPtr;
typedef IView View;
typedef IViewPtr ViewPtr;
typedef IAssociationView AssociationView;
typedef IAssociationViewPtr AssociationViewPtr;
typedef ILayerGroups LayerGroups;
typedef ILayerGroupsPtr LayerGroupsPtr;
typedef ILayerGroup LayerGroup;
typedef ILayerGroupPtr LayerGroupPtr;
typedef ILayers Layers;
typedef ILayersPtr LayersPtr;
typedef ILayer Layer;
typedef ILayerPtr LayerPtr;
typedef ILayerFilterCondition LayerFilterCondition;
typedef ILayerFilterConditionPtr LayerFilterConditionPtr;
typedef ILayerFilterConditions LayerFilterConditions;
typedef ILayerFilterConditionsPtr LayerFilterConditionsPtr;
typedef IDocumentSettings DocumentSettings;
typedef IDocumentSettingsPtr DocumentSettingsPtr;
typedef IDocument2DSettings Document2DSettings;
typedef IDocument2DSettingsPtr Document2DSettingsPtr;
typedef ILibraryManager LibraryManager;
typedef ILibraryManagerPtr LibraryManagerPtr;
typedef IProceduresLibrary ProceduresLibrary;
typedef IProceduresLibraryPtr ProceduresLibraryPtr;
typedef IProcedures Procedures;
typedef IProceduresPtr ProceduresPtr;
typedef IProcedure Procedure;
typedef IProcedurePtr ProcedurePtr;
typedef IInsertsLibrary InsertsLibrary;
typedef IInsertsLibraryPtr InsertsLibraryPtr;
typedef IInserts Inserts;
typedef IInsertsPtr InsertsPtr;
typedef IInsert Insert;
typedef IInsertPtr InsertPtr;
typedef IInsertsLibraries InsertsLibraries;
typedef IInsertsLibrariesPtr InsertsLibrariesPtr;
typedef IProceduresLibraries ProceduresLibraries;
typedef IProceduresLibrariesPtr ProceduresLibrariesPtr;
typedef ISpecificationDescriptions SpecificationDescriptions;
typedef ISpecificationDescriptionsPtr SpecificationDescriptionsPtr;
typedef ISpecificationDescription SpecificationDescription;
typedef ISpecificationDescriptionPtr SpecificationDescriptionPtr;
typedef ISpecificationStyle SpecificationStyle;
typedef ISpecificationStylePtr SpecificationStylePtr;
typedef ISpecificationColumnStyles SpecificationColumnStyles;
typedef ISpecificationColumnStylesPtr SpecificationColumnStylesPtr;
typedef ISpecificationColumnStyle SpecificationColumnStyle;
typedef ISpecificationColumnStylePtr SpecificationColumnStylePtr;
typedef ISpecificationSectionStyles SpecificationSectionStyles;
typedef ISpecificationSectionStylesPtr SpecificationSectionStylesPtr;
typedef ISpecificationSectionStyle SpecificationSectionStyle;
typedef ISpecificationSectionStylePtr SpecificationSectionStylePtr;
typedef IAdditionalBlockStyles AdditionalBlockStyles;
typedef IAdditionalBlockStylesPtr AdditionalBlockStylesPtr;
typedef IAdditionalBlockStyle AdditionalBlockStyle;
typedef IAdditionalBlockStylePtr AdditionalBlockStylePtr;
typedef ISheetFormat SheetFormat;
typedef ISheetFormatPtr SheetFormatPtr;
typedef ISpecificationTuning SpecificationTuning;
typedef ISpecificationTuningPtr SpecificationTuningPtr;
typedef ISpecificationTuningSections SpecificationTuningSections;
typedef ISpecificationTuningSectionsPtr SpecificationTuningSectionsPtr;
typedef ISpecificationTuningSection SpecificationTuningSection;
typedef ISpecificationTuningSectionPtr SpecificationTuningSectionPtr;
typedef ISpecificationSubsections SpecificationSubsections;
typedef ISpecificationSubsectionsPtr SpecificationSubsectionsPtr;
typedef ISpecificationSubsection SpecificationSubsection;
typedef ISpecificationSubsectionPtr SpecificationSubsectionPtr;
typedef IAdditionalBlockTunings AdditionalBlockTunings;
typedef IAdditionalBlockTuningsPtr AdditionalBlockTuningsPtr;
typedef IAdditionalBlockTuning AdditionalBlockTuning;
typedef IAdditionalBlockTuningPtr AdditionalBlockTuningPtr;
typedef IAdditionalBlockSectionTunings AdditionalBlockSectionTunings;
typedef IAdditionalBlockSectionTuningsPtr AdditionalBlockSectionTuningsPtr;
typedef IAdditionalBlockSectionTuning AdditionalBlockSectionTuning;
typedef IAdditionalBlockSectionTuningPtr AdditionalBlockSectionTuningPtr;
typedef ITextFont TextFont;
typedef ITextFontPtr TextFontPtr;
typedef ITextStyle TextStyle;
typedef ITextStylePtr TextStylePtr;
typedef ITabulators Tabulators;
typedef ITabulatorsPtr TabulatorsPtr;
typedef ITabulator Tabulator;
typedef ITabulatorPtr TabulatorPtr;
typedef IKompasError KompasError;
typedef IKompasErrorPtr KompasErrorPtr;
typedef ISpecificationBaseObjects SpecificationBaseObjects;
typedef ISpecificationBaseObjectsPtr SpecificationBaseObjectsPtr;
typedef ISpecificationCommentObjects SpecificationCommentObjects;
typedef ISpecificationCommentObjectsPtr SpecificationCommentObjectsPtr;
typedef ISpecificationObject SpecificationObject;
typedef ISpecificationObjectPtr SpecificationObjectPtr;
typedef ISpecificationBaseObject SpecificationBaseObject;
typedef ISpecificationBaseObjectPtr SpecificationBaseObjectPtr;
typedef ISpecificationCommentObject SpecificationCommentObject;
typedef ISpecificationCommentObjectPtr SpecificationCommentObjectPtr;
typedef ISpecificationColumns SpecificationColumns;
typedef ISpecificationColumnsPtr SpecificationColumnsPtr;
typedef ISpecificationColumn SpecificationColumn;
typedef ISpecificationColumnPtr SpecificationColumnPtr;
typedef ISpecificationColumnItems SpecificationColumnItems;
typedef ISpecificationColumnItemsPtr SpecificationColumnItemsPtr;
typedef ISpecificationColumnItem SpecificationColumnItem;
typedef ISpecificationColumnItemPtr SpecificationColumnItemPtr;
typedef IAttachedDocuments AttachedDocuments;
typedef IAttachedDocumentsPtr AttachedDocumentsPtr;
typedef IAttachedDocument AttachedDocument;
typedef IAttachedDocumentPtr AttachedDocumentPtr;
typedef IPropertyFileName PropertyFileName;
typedef IPropertyFileNamePtr PropertyFileNamePtr;
typedef IPropertyColor PropertyColor;
typedef IPropertyColorPtr PropertyColorPtr;
typedef ILayoutSheets LayoutSheets;
typedef ILayoutSheetsPtr LayoutSheetsPtr;
typedef ILayoutSheet LayoutSheet;
typedef ILayoutSheetPtr LayoutSheetPtr;
typedef IConverter Converter;
typedef IConverterPtr ConverterPtr;
typedef ICheckSum CheckSum;
typedef ICheckSumPtr CheckSumPtr;
typedef IModelObject ModelObject;
typedef IModelObjectPtr ModelObjectPtr;
typedef IModelObjects ModelObjects;
typedef IModelObjectsPtr ModelObjectsPtr;
typedef IParts7 Parts7;
typedef IParts7Ptr Parts7Ptr;
typedef IPart7 Part7;
typedef IPart7Ptr Part7Ptr;
typedef ISketchs Sketchs;
typedef ISketchsPtr SketchsPtr;
typedef IExtrusions Extrusions;
typedef IExtrusionsPtr ExtrusionsPtr;
typedef IVariableTable VariableTable;
typedef IVariableTablePtr VariableTablePtr;
typedef IProgressBarIndicator ProgressBarIndicator;
typedef IProgressBarIndicatorPtr ProgressBarIndicatorPtr;
typedef IText Text;
typedef ITextPtr TextPtr;
typedef ITextLine TextLine;
typedef ITextLinePtr TextLinePtr;
typedef ITextItem TextItem;
typedef ITextItemPtr TextItemPtr;
typedef IDrawingText DrawingText;
typedef IDrawingTextPtr DrawingTextPtr;
typedef IDrawingTexts DrawingTexts;
typedef IDrawingTextsPtr DrawingTextsPtr;
typedef IMarks Marks;
typedef IMarksPtr MarksPtr;
typedef IMarkInsideForm MarkInsideForm;
typedef IMarkInsideFormPtr MarkInsideFormPtr;
typedef IMarkOnLine MarkOnLine;
typedef IMarkOnLinePtr MarkOnLinePtr;
typedef IMarkOnLeader MarkOnLeader;
typedef IMarkOnLeaderPtr MarkOnLeaderPtr;
typedef IUserDataStoragesMng UserDataStoragesMng;
typedef IUserDataStoragesMngPtr UserDataStoragesMngPtr;
typedef IUserDataStorages UserDataStorages;
typedef IUserDataStoragesPtr UserDataStoragesPtr;
typedef IUserDataStorage UserDataStorage;
typedef IUserDataStoragePtr UserDataStoragePtr;
typedef IBuildingAxes BuildingAxes;
typedef IBuildingAxesPtr BuildingAxesPtr;
typedef IStraightAxis StraightAxis;
typedef IStraightAxisPtr StraightAxisPtr;
typedef IArcAxis ArcAxis;
typedef IArcAxisPtr ArcAxisPtr;
typedef ICircleAxis CircleAxis;
typedef ICircleAxisPtr CircleAxisPtr;
typedef IAxisJut AxisJut;
typedef IAxisJutPtr AxisJutPtr;
typedef IMarkNodes MarkNodes;
typedef IMarkNodesPtr MarkNodesPtr;
typedef IMarkNode MarkNode;
typedef IMarkNodePtr MarkNodePtr;
typedef ILineSegments LineSegments;
typedef ILineSegmentsPtr LineSegmentsPtr;
typedef ILineSegment LineSegment;
typedef ILineSegmentPtr LineSegmentPtr;
typedef ISystemSettings SystemSettings;
typedef ISystemSettingsPtr SystemSettingsPtr;
typedef ICutUnitMarking CutUnitMarking;
typedef ICutUnitMarkingPtr CutUnitMarkingPtr;
typedef ICutUnitMarkings CutUnitMarkings;
typedef ICutUnitMarkingsPtr CutUnitMarkingsPtr;
typedef IUnitMarking UnitMarking;
typedef IUnitMarkingPtr UnitMarkingPtr;
typedef IUnitMarkings UnitMarkings;
typedef IUnitMarkingsPtr UnitMarkingsPtr;
typedef IArcs Arcs;
typedef IArcsPtr ArcsPtr;
typedef IArc _Arc;
typedef IArcPtr _ArcPtr;
typedef IMultiTextLeader MultiTextLeader;
typedef IMultiTextLeaderPtr MultiTextLeaderPtr;
typedef IMultiTextLeaders MultiTextLeaders;
typedef IMultiTextLeadersPtr MultiTextLeadersPtr;
typedef IBrace Brace;
typedef IBracePtr BracePtr;
typedef IBraces Braces;
typedef IBracesPtr BracesPtr;
typedef IUnitNumber UnitNumber;
typedef IUnitNumberPtr UnitNumberPtr;
typedef IUnitNumbers UnitNumbers;
typedef IUnitNumbersPtr UnitNumbersPtr;
typedef ISketch Sketch;
typedef ISketchPtr SketchPtr;
typedef IExtrusion Extrusion;
typedef IExtrusionPtr ExtrusionPtr;
typedef IParametriticConstraint ParametriticConstraint;
typedef IParametriticConstraintPtr ParametriticConstraintPtr;
typedef ICutExtrusion CutExtrusion;
typedef ICutExtrusionPtr CutExtrusionPtr;
typedef IBody7 Body7;
typedef IBody7Ptr Body7Ptr;
typedef ISheetMetalBodies SheetMetalBodies;
typedef ISheetMetalBodiesPtr SheetMetalBodiesPtr;
typedef ISheetMetalBody SheetMetalBody;
typedef ISheetMetalBodyPtr SheetMetalBodyPtr;
typedef IPoints3D Points3D;
typedef IPoints3DPtr Points3DPtr;
typedef IPoint3D Point3D;
typedef IPoint3DPtr Point3DPtr;
typedef IPoint3DParamDisplace Point3DParamDisplace;
typedef IPoint3DParamDisplacePtr Point3DParamDisplacePtr;
typedef IPoint3DParamIntersect Point3DParamIntersect;
typedef IPoint3DParamIntersectPtr Point3DParamIntersectPtr;
typedef IPoint3DParamCenter Point3DParamCenter;
typedef IPoint3DParamCenterPtr Point3DParamCenterPtr;
typedef IPoint3DParamCurve Point3DParamCurve;
typedef IPoint3DParamCurvePtr Point3DParamCurvePtr;
typedef IPoint3DParamSurface Point3DParamSurface;
typedef IPoint3DParamSurfacePtr Point3DParamSurfacePtr;
typedef IPoint3DParamProjection Point3DParamProjection;
typedef IPoint3DParamProjectionPtr Point3DParamProjectionPtr;
typedef ISheetMetalBends SheetMetalBends;
typedef ISheetMetalBendsPtr SheetMetalBendsPtr;
typedef ISheetMetalBend SheetMetalBend;
typedef ISheetMetalBendPtr SheetMetalBendPtr;
typedef ISheetMetalLineBends SheetMetalLineBends;
typedef ISheetMetalLineBendsPtr SheetMetalLineBendsPtr;
typedef ISheetMetalLineBend SheetMetalLineBend;
typedef ISheetMetalLineBendPtr SheetMetalLineBendPtr;
typedef ISheetMetalHole SheetMetalHole;
typedef ISheetMetalHolePtr SheetMetalHolePtr;
typedef ISheetMetalHoles SheetMetalHoles;
typedef ISheetMetalHolesPtr SheetMetalHolesPtr;
typedef ISheetMetalCut SheetMetalCut;
typedef ISheetMetalCutPtr SheetMetalCutPtr;
typedef ISheetMetalCuts SheetMetalCuts;
typedef ISheetMetalCutsPtr SheetMetalCutsPtr;
typedef IRadialDimension RadialDimension;
typedef IRadialDimensionPtr RadialDimensionPtr;
typedef IRadialDimensions RadialDimensions;
typedef IRadialDimensionsPtr RadialDimensionsPtr;
typedef IBreakRadialDimension BreakRadialDimension;
typedef IBreakRadialDimensionPtr BreakRadialDimensionPtr;
typedef IBreakRadialDimensions RadialBreakDimensions;
typedef IBreakRadialDimensionsPtr RadialBreakDimensionsPtr;
typedef IDiametralDimension DiametralDimension;
typedef IDiametralDimensionPtr DiametralDimensionPtr;
typedef IDiametralDimensions DiametralDimensions;
typedef IDiametralDimensionsPtr DiametralDimensionsPtr;
typedef ILineDimensions3D LineDimensions3D;
typedef ILineDimensions3DPtr LineDimensions3DPtr;
typedef IBaseLineDimension3D BaseLineDimension3D;
typedef IBaseLineDimension3DPtr BaseLineDimension3DPtr;
typedef ILineDimension3D LineDimension3D;
typedef ILineDimension3DPtr LineDimension3DPtr;
typedef ILineDimension LineDimension;
typedef ILineDimensionPtr LineDimensionPtr;
typedef ILineDimensions LineDimensions;
typedef ILineDimensionsPtr LineDimensionsPtr;
typedef IRadialDimension3D RadialDimension3D;
typedef IRadialDimension3DPtr RadialDimension3DPtr;
typedef IDiametralDimension3D DiametralDimension3D;
typedef IDiametralDimension3DPtr DiametralDimension3DPtr;
typedef IRadialDimensions3D RadialDimensions3D;
typedef IRadialDimensions3DPtr RadialDimensions3DPtr;
typedef IDiametralDimensions3D DiametralDimensions3D;
typedef IDiametralDimensions3DPtr DiametralDimensions3DPtr;
typedef IBreakLineDimension BreakLineDimension;
typedef IBreakLineDimensionPtr BreakLineDimensionPtr;
typedef IBreakLineDimensions BreakLineDimensions;
typedef IBreakLineDimensionsPtr BreakLineDimensionsPtr;
typedef IHeightDimension HeightDimension;
typedef IHeightDimensionPtr HeightDimensionPtr;
typedef IHeightDimensions HeightDimensions;
typedef IHeightDimensionsPtr HeightDimensionsPtr;
typedef IAngleDimension AngleDimension;
typedef IAngleDimensionPtr AngleDimensionPtr;
typedef IAngleDimensions AngleDimensions;
typedef IAngleDimensionsPtr AngleDimensionsPtr;
typedef IBreakAngleDimension BreakAngleDimension;
typedef IBreakAngleDimensionPtr BreakAngleDimensionPtr;
typedef IArcDimension ArcDimension;
typedef IArcDimensionPtr ArcDimensionPtr;
typedef IArcDimensions ArcDimensions;
typedef IArcDimensionsPtr ArcDimensionsPtr;
typedef IAngleDimension3D AngleDimension3D;
typedef IAngleDimension3DPtr AngleDimension3DPtr;
typedef IAngleDimensions3D AngleDimensions3D;
typedef IAngleDimensions3DPtr AngleDimensions3DPtr;
typedef ICurveVertexParam CurveVertexParam;
typedef ICurveVertexParamPtr CurveVertexParamPtr;
typedef ISplines3D Splines3D;
typedef ISplines3DPtr Splines3DPtr;
typedef ISpline3D Spline3D;
typedef ISpline3DPtr Spline3DPtr;
typedef ILocalCoordinateSystem LocalCoordinateSystem;
typedef ILocalCoordinateSystemPtr LocalCoordinateSystemPtr;
typedef ILocalCoordinateSystems LocalCoordinateSystems;
typedef ILocalCoordinateSystemsPtr LocalCoordinateSystemsPtr;
typedef ILocalCSAxesDirectionParam LocalCSAxesDirectionParam;
typedef ILocalCSAxesDirectionParamPtr LocalCSAxesDirectionParamPtr;
typedef ILocalCSEulerParam LocalCSEulerParam;
typedef ILocalCSEulerParamPtr LocalCSEulerParamPtr;
typedef IPolyLine PolyLine;
typedef IPolyLinePtr PolyLinePtr;
typedef IPolyLines PolyLines;
typedef IPolyLinesPtr PolyLinesPtr;
typedef IBaseLeader BaseLeader;
typedef IBaseLeaderPtr BaseLeaderPtr;
typedef ILeaders Leaders;
typedef ILeadersPtr LeadersPtr;
typedef IRoughs Roughs;
typedef IRoughsPtr RoughsPtr;
typedef IRough Rough;
typedef IRoughPtr RoughPtr;
typedef IBaseLeader3D BaseLeader3D;
typedef IBaseLeader3DPtr BaseLeader3DPtr;
typedef ILeaders3D Leaders3D;
typedef ILeaders3DPtr Leaders3DPtr;
typedef IRough3D Rough3D;
typedef IRough3DPtr Rough3DPtr;
typedef IRoughs3D Roughs3D;
typedef IRoughs3DPtr Roughs3DPtr;
typedef IBase _Base;
typedef IBasePtr _BasePtr;
typedef IBases Bases;
typedef IBasesPtr BasesPtr;
typedef ITableCell TableCell;
typedef ITableCellPtr TableCellPtr;
typedef IDrawingTable DrawingTable;
typedef IDrawingTablePtr DrawingTablePtr;
typedef IDrawingTables DrawingTables;
typedef IDrawingTablesPtr DrawingTablesPtr;
typedef ITolerances Tolerances;
typedef ITolerancesPtr TolerancesPtr;
typedef ITolerance _Tolerance;
typedef ITolerancePtr _TolerancePtr;
typedef IBases3D Bases3D;
typedef IBases3DPtr Bases3DPtr;
typedef IBase3D Base3D;
typedef IBase3DPtr Base3DPtr;
typedef ITolerances3D Tolerances3D;
typedef ITolerances3DPtr Tolerances3DPtr;
typedef ITolerance3D Tolerance3D;
typedef ITolerance3DPtr Tolerance3DPtr;
typedef ILocalCSOrientByObjectParam LocalCSOrientByObjectParam;
typedef ILocalCSOrientByObjectParamPtr LocalCSOrientByObjectParamPtr;
typedef ICutLine CutLine;
typedef ICutLinePtr CutLinePtr;
typedef ICutLines CutLines;
typedef ICutLinesPtr CutLinesPtr;
typedef IExternalTessellationObject ExternalTessellationObject;
typedef IExternalTessellationObjectPtr ExternalTessellationObjectPtr;
typedef IControlPoints ControlPoints;
typedef IControlPointsPtr ControlPointsPtr;
typedef IControlPoint ControlPoint;
typedef IControlPointPtr ControlPointPtr;
typedef IConjunctivePoints ConjunctivePoints;
typedef IConjunctivePointsPtr ConjunctivePointsPtr;
typedef IConjunctivePoint ConjunctivePoint;
typedef IConjunctivePointPtr ConjunctivePointPtr;
typedef IPropertyBmpList PropertyBmpList;
typedef IPropertyBmpListPtr PropertyBmpListPtr;
typedef IViewPointer ViewPointer;
typedef IViewPointerPtr ViewPointerPtr;
typedef IViewPointers ViewPointers;
typedef IViewPointersPtr ViewPointersPtr;
typedef IMultiline Multiline;
typedef IMultilinePtr MultilinePtr;
typedef IMultilines Multilines;
typedef IMultilinesPtr MultilinesPtr;
typedef IContour Contour;
typedef IContourPtr ContourPtr;
typedef IContourSegment ContourSegment;
typedef IContourSegmentPtr ContourSegmentPtr;
typedef IContourLineSegment ContourLineSegment;
typedef IContourLineSegmentPtr ContourLineSegmentPtr;
typedef IContourArc ContourArc;
typedef IContourArcPtr ContourArcPtr;
typedef ICurve2D Curve2D;
typedef ICurve2DPtr Curve2DPtr;
typedef IDrawingContours DrawingContours;
typedef IDrawingContoursPtr DrawingContoursPtr;
typedef IDrawingContour DrawingContour;
typedef IDrawingContourPtr DrawingContourPtr;
typedef ISplitLines SplitLines;
typedef ISplitLinesPtr SplitLinesPtr;
typedef ISplitLine SplitLine;
typedef ISplitLinePtr SplitLinePtr;
typedef ISurfacePatches SurfacePatches;
typedef ISurfacePatchesPtr SurfacePatchesPtr;
typedef ISurfacePatch SurfacePatch;
typedef ISurfacePatchPtr SurfacePatchPtr;
typedef IFaceRemovers FaceRemovers;
typedef IFaceRemoversPtr FaceRemoversPtr;
typedef IFaceRemover FaceRemover;
typedef IFaceRemoverPtr FaceRemoverPtr;
typedef ISurfaceSewers SurfaceSewers;
typedef ISurfaceSewersPtr SurfaceSewersPtr;
typedef ISurfaceSewer SurfaceSewer;
typedef ISurfaceSewerPtr SurfaceSewerPtr;
typedef INurbsSurfaces NurbsSurfaces;
typedef INurbsSurfacesPtr NurbsSurfacesPtr;
typedef INurbsSurface NurbsSurface;
typedef INurbsSurfacePtr NurbsSurfacePtr;
typedef IPropertyLibExplorer PropertyLibExplorer;
typedef IPropertyLibExplorerPtr PropertyLibExplorerPtr;
typedef IExternalGDIObject ExternalGDIObject;
typedef IExternalGDIObjectPtr ExternalGDIObjectPtr;
typedef ICircles Circles;
typedef ICirclesPtr CirclesPtr;
typedef ICircle _Circle;
typedef ICirclePtr _CirclePtr;
typedef IMacroObjects MacroObjects;
typedef IMacroObjectsPtr MacroObjectsPtr;
typedef IMacroObject MacroObject;
typedef IMacroObjectPtr MacroObjectPtr;
typedef IEllipses Ellipses;
typedef IEllipsesPtr EllipsesPtr;
typedef IEllipse _Ellipse;
typedef IEllipsePtr _EllipsePtr;
typedef IEllipseArcs EllipseArcs;
typedef IEllipseArcsPtr EllipseArcsPtr;
typedef IEllipseArc _EllipseArc;
typedef IEllipseArcPtr _EllipseArcPtr;
typedef IPoint _Point;
typedef IPointPtr _PointPtr;
typedef IPoints Points;
typedef IPointsPtr PointsPtr;
typedef ILine _Line;
typedef ILinePtr _LinePtr;
typedef ILines Lines;
typedef ILinesPtr LinesPtr;
typedef IBezier _Bezier;
typedef IBezierPtr _BezierPtr;
typedef IBeziers Beziers;
typedef IBeziersPtr BeziersPtr;
typedef IRectangles Rectangles;
typedef IRectanglesPtr RectanglesPtr;
typedef IRectangle _Rectangle;
typedef IRectanglePtr _RectanglePtr;
typedef IRegularPolygons RegularPolygons;
typedef IRegularPolygonsPtr RegularPolygonsPtr;
typedef IRegularPolygon RegularPolygon;
typedef IRegularPolygonPtr RegularPolygonPtr;
typedef IInsertionObjects InsertionObjects;
typedef IInsertionObjectsPtr InsertionObjectsPtr;
typedef IInsertionView InsertionView;
typedef IInsertionViewPtr InsertionViewPtr;
typedef IInsertionDefinition InsertionDefinition;
typedef IInsertionDefinitionPtr InsertionDefinitionPtr;
typedef IPolyLine2D PolyLine2D;
typedef IPolyLine2DPtr PolyLine2DPtr;
typedef IPolyLines2D PolyLines2D;
typedef IPolyLines2DPtr PolyLines2DPtr;
typedef IEquidistants Equidistants;
typedef IEquidistantsPtr EquidistantsPtr;
typedef IEquidistant _Equidistant;
typedef IEquidistantPtr _EquidistantPtr;
typedef INurbs _Nurbs;
typedef INurbsPtr _NurbsPtr;
typedef INurbses Nurbses;
typedef INurbsesPtr NurbsesPtr;
typedef ICentreMarkers CentreMarkers;
typedef ICentreMarkersPtr CentreMarkersPtr;
typedef ICentreMarker CentreMarker;
typedef ICentreMarkerPtr CentreMarkerPtr;
typedef IRemoteElement RemoteElement;
typedef IRemoteElementPtr RemoteElementPtr;
typedef IRemoteElements RemoteElements;
typedef IRemoteElementsPtr RemoteElementsPtr;
typedef IAttribute _Attribute;
typedef IAttributePtr _AttributePtr;
typedef IColumnInfo _ColumnInfo;
typedef IColumnInfoPtr _ColumnInfoPtr;
typedef IAttributeType _AttributeType;
typedef IAttributeTypePtr _AttributeTypePtr;
typedef IAxisLine AxisLine;
typedef IAxisLinePtr AxisLinePtr;
typedef IAxisLines AxisLines;
typedef IAxisLinesPtr AxisLinesPtr;
typedef IVariable7 Variable7;
typedef IVariable7Ptr Variable7Ptr;
typedef IInsertionParameters InsertionParameters;
typedef IInsertionParametersPtr InsertionParametersPtr;
typedef IDrawingGroup DrawingGroup;
typedef IDrawingGroupPtr DrawingGroupPtr;
typedef IDrawingGroups DrawingGroups;
typedef IDrawingGroupsPtr DrawingGroupsPtr;
typedef IHatch _Hatch;
typedef IHatchPtr _HatchPtr;
typedef IColouring _Colouring;
typedef IColouringPtr _ColouringPtr;
typedef IHatches Hatches;
typedef IHatchesPtr HatchesPtr;
typedef IColourings Colourings;
typedef IColouringsPtr ColouringsPtr;
typedef ISpecRough _SpecRough;
typedef ISpecRoughPtr _SpecRoughPtr;
typedef ITechnicalDemand TechnicalDemand;
typedef ITechnicalDemandPtr TechnicalDemandPtr;
typedef IRaster _Raster;
typedef IRasterPtr _RasterPtr;
typedef IRasters Rasters;
typedef IRastersPtr RastersPtr;
typedef IOleDrawingObject OleDrawingObject;
typedef IOleDrawingObjectPtr OleDrawingObjectPtr;
typedef IOleDrawingObjects OleDrawingObjects;
typedef IOleDrawingObjectsPtr OleDrawingObjectsPtr;
typedef ISelectionManager SelectionManager;
typedef ISelectionManagerPtr SelectionManagerPtr;
typedef IChooseManager ChooseManager;
typedef IChooseManagerPtr ChooseManagerPtr;
typedef ISurfacesIntersectionCurve SurfacesIntersectionCurve;
typedef ISurfacesIntersectionCurvePtr SurfacesIntersectionCurvePtr;
typedef ISurfacesIntersectionCurves SurfacesIntersectionCurves;
typedef ISurfacesIntersectionCurvesPtr SurfacesIntersectionCurvesPtr;
typedef IStamp _Stamp;
typedef IStampPtr _StampPtr;
typedef IWaveLine WaveLine;
typedef IWaveLinePtr WaveLinePtr;
typedef IWaveLines WaveLines;
typedef IWaveLinesPtr WaveLinesPtr;
typedef IBrokenLine BrokenLine;
typedef IBrokenLinePtr BrokenLinePtr;
typedef IBrokenLines BrokenLines;
typedef IBrokenLinesPtr BrokenLinesPtr;
typedef IPropertyStyleList PropertyStyleList;
typedef IPropertyStyleListPtr PropertyStyleListPtr;
typedef ICopyObjectParam _CopyObjectParam;
typedef ICopyObjectParamPtr _CopyObjectParamPtr;
typedef ICurveCopyObjectParam CurveCopyObjectParam;
typedef ICurveCopyObjectParamPtr CurveCopyObjectParamPtr;
typedef ICircleCopyObjectParam CircleCopyObjectParam;
typedef ICircleCopyObjectParamPtr CircleCopyObjectParamPtr;
typedef ICircularCopyObjectParam CircularCopyObjectParam;
typedef ICircularCopyObjectParamPtr CircularCopyObjectParamPtr;
typedef IMeshCopyObjectParam MeshCopyObjectParam;
typedef IMeshCopyObjectParamPtr MeshCopyObjectParamPtr;
typedef IPrintJob PrintJob;
typedef IPrintJobPtr PrintJobPtr;
typedef IPrintJob_Sheet PrintJob_Sheet;
typedef IPrintJob_SheetPtr PrintJob_SheetPtr;
typedef IProperty _Property;
typedef IPropertyPtr _PropertyPtr;
typedef ILibArraySettings LibArraySettings;
typedef ILibArraySettingsPtr LibArraySettingsPtr;
typedef IReportProcess ReportProcess;
typedef IReportProcessPtr ReportProcessPtr;
typedef IEquidistants3D Equidistants3D;
typedef IEquidistants3DPtr Equidistants3DPtr;
typedef IEquidistant3D Equidistant3D;
typedef IEquidistant3DPtr Equidistant3DPtr;

#define LIBID_OF_KompasDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF__Application (&LIBID_KompasLTAPI7)
#define LIBID_OF_Documents (&LIBID_KompasLTAPI7)
#define LIBID_OF_DocumentFrame (&LIBID_KompasLTAPI7)
#define LIBID_OF_DocumentFrames (&LIBID_KompasLTAPI7)
#define LIBID_OF_ProcessParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyControls (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyTab (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyTabs (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyEdit (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertySeparator (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyList (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyCheckBox (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyMultiButton (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertySlideBox (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyUserControl (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyGrid (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyManager (&LIBID_KompasLTAPI7)
#define LIBID_OF_KompasDocument3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF_FragmentDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF_TextDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF_PartDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF_AssemblyDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyTextButton (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertySpinEdit (&LIBID_KompasLTAPI7)
#define LIBID_OF_ViewsAndLayersManager (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingObjects (&LIBID_KompasLTAPI7)
#define LIBID_OF_Views (&LIBID_KompasLTAPI7)
#define LIBID_OF_View (&LIBID_KompasLTAPI7)
#define LIBID_OF_AssociationView (&LIBID_KompasLTAPI7)
#define LIBID_OF_LayerGroups (&LIBID_KompasLTAPI7)
#define LIBID_OF_LayerGroup (&LIBID_KompasLTAPI7)
#define LIBID_OF_Layers (&LIBID_KompasLTAPI7)
#define LIBID_OF_Layer (&LIBID_KompasLTAPI7)
#define LIBID_OF_LayerFilterCondition (&LIBID_KompasLTAPI7)
#define LIBID_OF_LayerFilterConditions (&LIBID_KompasLTAPI7)
#define LIBID_OF_DocumentSettings (&LIBID_KompasLTAPI7)
#define LIBID_OF_Document2DSettings (&LIBID_KompasLTAPI7)
#define LIBID_OF_LibraryManager (&LIBID_KompasLTAPI7)
#define LIBID_OF_ProceduresLibrary (&LIBID_KompasLTAPI7)
#define LIBID_OF_Procedures (&LIBID_KompasLTAPI7)
#define LIBID_OF_Procedure (&LIBID_KompasLTAPI7)
#define LIBID_OF_InsertsLibrary (&LIBID_KompasLTAPI7)
#define LIBID_OF_Inserts (&LIBID_KompasLTAPI7)
#define LIBID_OF_Insert (&LIBID_KompasLTAPI7)
#define LIBID_OF_InsertsLibraries (&LIBID_KompasLTAPI7)
#define LIBID_OF_ProceduresLibraries (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationDescriptions (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationDescription (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationStyle (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationColumnStyles (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationColumnStyle (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationSectionStyles (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationSectionStyle (&LIBID_KompasLTAPI7)
#define LIBID_OF_AdditionalBlockStyles (&LIBID_KompasLTAPI7)
#define LIBID_OF_AdditionalBlockStyle (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetFormat (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationTuning (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationTuningSections (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationTuningSection (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationSubsections (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationSubsection (&LIBID_KompasLTAPI7)
#define LIBID_OF_AdditionalBlockTunings (&LIBID_KompasLTAPI7)
#define LIBID_OF_AdditionalBlockTuning (&LIBID_KompasLTAPI7)
#define LIBID_OF_AdditionalBlockSectionTunings (&LIBID_KompasLTAPI7)
#define LIBID_OF_AdditionalBlockSectionTuning (&LIBID_KompasLTAPI7)
#define LIBID_OF_TextFont (&LIBID_KompasLTAPI7)
#define LIBID_OF_TextStyle (&LIBID_KompasLTAPI7)
#define LIBID_OF_Tabulators (&LIBID_KompasLTAPI7)
#define LIBID_OF_Tabulator (&LIBID_KompasLTAPI7)
#define LIBID_OF_KompasError (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationBaseObjects (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationCommentObjects (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationBaseObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationCommentObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationColumns (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationColumn (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationColumnItems (&LIBID_KompasLTAPI7)
#define LIBID_OF_SpecificationColumnItem (&LIBID_KompasLTAPI7)
#define LIBID_OF_AttachedDocuments (&LIBID_KompasLTAPI7)
#define LIBID_OF_AttachedDocument (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyFileName (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyColor (&LIBID_KompasLTAPI7)
#define LIBID_OF_LayoutSheets (&LIBID_KompasLTAPI7)
#define LIBID_OF_LayoutSheet (&LIBID_KompasLTAPI7)
#define LIBID_OF_Converter (&LIBID_KompasLTAPI7)
#define LIBID_OF_CheckSum (&LIBID_KompasLTAPI7)
#define LIBID_OF_ModelObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_ModelObjects (&LIBID_KompasLTAPI7)
#define LIBID_OF_Parts7 (&LIBID_KompasLTAPI7)
#define LIBID_OF_Part7 (&LIBID_KompasLTAPI7)
#define LIBID_OF_Sketchs (&LIBID_KompasLTAPI7)
#define LIBID_OF_Extrusions (&LIBID_KompasLTAPI7)
#define LIBID_OF_VariableTable (&LIBID_KompasLTAPI7)
#define LIBID_OF_ProgressBarIndicator (&LIBID_KompasLTAPI7)
#define LIBID_OF_Text (&LIBID_KompasLTAPI7)
#define LIBID_OF_TextLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_TextItem (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingText (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingTexts (&LIBID_KompasLTAPI7)
#define LIBID_OF_Marks (&LIBID_KompasLTAPI7)
#define LIBID_OF_MarkInsideForm (&LIBID_KompasLTAPI7)
#define LIBID_OF_MarkOnLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_MarkOnLeader (&LIBID_KompasLTAPI7)
#define LIBID_OF_UserDataStoragesMng (&LIBID_KompasLTAPI7)
#define LIBID_OF_UserDataStorages (&LIBID_KompasLTAPI7)
#define LIBID_OF_UserDataStorage (&LIBID_KompasLTAPI7)
#define LIBID_OF_BuildingAxes (&LIBID_KompasLTAPI7)
#define LIBID_OF_StraightAxis (&LIBID_KompasLTAPI7)
#define LIBID_OF_ArcAxis (&LIBID_KompasLTAPI7)
#define LIBID_OF_CircleAxis (&LIBID_KompasLTAPI7)
#define LIBID_OF_AxisJut (&LIBID_KompasLTAPI7)
#define LIBID_OF_MarkNodes (&LIBID_KompasLTAPI7)
#define LIBID_OF_MarkNode (&LIBID_KompasLTAPI7)
#define LIBID_OF_LineSegments (&LIBID_KompasLTAPI7)
#define LIBID_OF_LineSegment (&LIBID_KompasLTAPI7)
#define LIBID_OF_SystemSettings (&LIBID_KompasLTAPI7)
#define LIBID_OF_CutUnitMarking (&LIBID_KompasLTAPI7)
#define LIBID_OF_CutUnitMarkings (&LIBID_KompasLTAPI7)
#define LIBID_OF_UnitMarking (&LIBID_KompasLTAPI7)
#define LIBID_OF_UnitMarkings (&LIBID_KompasLTAPI7)
#define LIBID_OF_Arcs (&LIBID_KompasLTAPI7)
#define LIBID_OF__Arc (&LIBID_KompasLTAPI7)
#define LIBID_OF_MultiTextLeader (&LIBID_KompasLTAPI7)
#define LIBID_OF_MultiTextLeaders (&LIBID_KompasLTAPI7)
#define LIBID_OF_Brace (&LIBID_KompasLTAPI7)
#define LIBID_OF_Braces (&LIBID_KompasLTAPI7)
#define LIBID_OF_UnitNumber (&LIBID_KompasLTAPI7)
#define LIBID_OF_UnitNumbers (&LIBID_KompasLTAPI7)
#define LIBID_OF_Sketch (&LIBID_KompasLTAPI7)
#define LIBID_OF_Extrusion (&LIBID_KompasLTAPI7)
#define LIBID_OF_ParametriticConstraint (&LIBID_KompasLTAPI7)
#define LIBID_OF_CutExtrusion (&LIBID_KompasLTAPI7)
#define LIBID_OF_Body7 (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalBodies (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalBody (&LIBID_KompasLTAPI7)
#define LIBID_OF_Points3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Point3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Point3DParamDisplace (&LIBID_KompasLTAPI7)
#define LIBID_OF_Point3DParamIntersect (&LIBID_KompasLTAPI7)
#define LIBID_OF_Point3DParamCenter (&LIBID_KompasLTAPI7)
#define LIBID_OF_Point3DParamCurve (&LIBID_KompasLTAPI7)
#define LIBID_OF_Point3DParamSurface (&LIBID_KompasLTAPI7)
#define LIBID_OF_Point3DParamProjection (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalBends (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalBend (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalLineBends (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalLineBend (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalHole (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalHoles (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalCut (&LIBID_KompasLTAPI7)
#define LIBID_OF_SheetMetalCuts (&LIBID_KompasLTAPI7)
#define LIBID_OF_RadialDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_RadialDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_BreakRadialDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_RadialBreakDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_DiametralDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_DiametralDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_LineDimensions3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_BaseLineDimension3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_LineDimension3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_LineDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_LineDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_RadialDimension3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_DiametralDimension3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_RadialDimensions3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_DiametralDimensions3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_BreakLineDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_BreakLineDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_HeightDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_HeightDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_AngleDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_AngleDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_BreakAngleDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_ArcDimension (&LIBID_KompasLTAPI7)
#define LIBID_OF_ArcDimensions (&LIBID_KompasLTAPI7)
#define LIBID_OF_AngleDimension3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_AngleDimensions3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_CurveVertexParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_Splines3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Spline3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_LocalCoordinateSystem (&LIBID_KompasLTAPI7)
#define LIBID_OF_LocalCoordinateSystems (&LIBID_KompasLTAPI7)
#define LIBID_OF_LocalCSAxesDirectionParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_LocalCSEulerParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_PolyLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_PolyLines (&LIBID_KompasLTAPI7)
#define LIBID_OF_BaseLeader (&LIBID_KompasLTAPI7)
#define LIBID_OF_Leaders (&LIBID_KompasLTAPI7)
#define LIBID_OF_Roughs (&LIBID_KompasLTAPI7)
#define LIBID_OF_Rough (&LIBID_KompasLTAPI7)
#define LIBID_OF_BaseLeader3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Leaders3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Rough3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Roughs3D (&LIBID_KompasLTAPI7)
#define LIBID_OF__Base (&LIBID_KompasLTAPI7)
#define LIBID_OF_Bases (&LIBID_KompasLTAPI7)
#define LIBID_OF_TableCell (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingTable (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingTables (&LIBID_KompasLTAPI7)
#define LIBID_OF_Tolerances (&LIBID_KompasLTAPI7)
#define LIBID_OF__Tolerance (&LIBID_KompasLTAPI7)
#define LIBID_OF_Bases3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Base3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Tolerances3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Tolerance3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_LocalCSOrientByObjectParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_CutLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_CutLines (&LIBID_KompasLTAPI7)
#define LIBID_OF_ExternalTessellationObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_ControlPoints (&LIBID_KompasLTAPI7)
#define LIBID_OF_ControlPoint (&LIBID_KompasLTAPI7)
#define LIBID_OF_ConjunctivePoints (&LIBID_KompasLTAPI7)
#define LIBID_OF_ConjunctivePoint (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyBmpList (&LIBID_KompasLTAPI7)
#define LIBID_OF_ViewPointer (&LIBID_KompasLTAPI7)
#define LIBID_OF_ViewPointers (&LIBID_KompasLTAPI7)
#define LIBID_OF_Multiline (&LIBID_KompasLTAPI7)
#define LIBID_OF_Multilines (&LIBID_KompasLTAPI7)
#define LIBID_OF_Contour (&LIBID_KompasLTAPI7)
#define LIBID_OF_ContourSegment (&LIBID_KompasLTAPI7)
#define LIBID_OF_ContourLineSegment (&LIBID_KompasLTAPI7)
#define LIBID_OF_ContourArc (&LIBID_KompasLTAPI7)
#define LIBID_OF_Curve2D (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingContours (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingContour (&LIBID_KompasLTAPI7)
#define LIBID_OF_SplitLines (&LIBID_KompasLTAPI7)
#define LIBID_OF_SplitLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_SurfacePatches (&LIBID_KompasLTAPI7)
#define LIBID_OF_SurfacePatch (&LIBID_KompasLTAPI7)
#define LIBID_OF_FaceRemovers (&LIBID_KompasLTAPI7)
#define LIBID_OF_FaceRemover (&LIBID_KompasLTAPI7)
#define LIBID_OF_SurfaceSewers (&LIBID_KompasLTAPI7)
#define LIBID_OF_SurfaceSewer (&LIBID_KompasLTAPI7)
#define LIBID_OF_NurbsSurfaces (&LIBID_KompasLTAPI7)
#define LIBID_OF_NurbsSurface (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyLibExplorer (&LIBID_KompasLTAPI7)
#define LIBID_OF_ExternalGDIObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_Circles (&LIBID_KompasLTAPI7)
#define LIBID_OF__Circle (&LIBID_KompasLTAPI7)
#define LIBID_OF_MacroObjects (&LIBID_KompasLTAPI7)
#define LIBID_OF_MacroObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_Ellipses (&LIBID_KompasLTAPI7)
#define LIBID_OF__Ellipse (&LIBID_KompasLTAPI7)
#define LIBID_OF_EllipseArcs (&LIBID_KompasLTAPI7)
#define LIBID_OF__EllipseArc (&LIBID_KompasLTAPI7)
#define LIBID_OF__Point (&LIBID_KompasLTAPI7)
#define LIBID_OF_Points (&LIBID_KompasLTAPI7)
#define LIBID_OF__Line (&LIBID_KompasLTAPI7)
#define LIBID_OF_Lines (&LIBID_KompasLTAPI7)
#define LIBID_OF__Bezier (&LIBID_KompasLTAPI7)
#define LIBID_OF_Beziers (&LIBID_KompasLTAPI7)
#define LIBID_OF_Rectangles (&LIBID_KompasLTAPI7)
#define LIBID_OF__Rectangle (&LIBID_KompasLTAPI7)
#define LIBID_OF_RegularPolygons (&LIBID_KompasLTAPI7)
#define LIBID_OF_RegularPolygon (&LIBID_KompasLTAPI7)
#define LIBID_OF_InsertionObjects (&LIBID_KompasLTAPI7)
#define LIBID_OF_InsertionView (&LIBID_KompasLTAPI7)
#define LIBID_OF_InsertionDefinition (&LIBID_KompasLTAPI7)
#define LIBID_OF_PolyLine2D (&LIBID_KompasLTAPI7)
#define LIBID_OF_PolyLines2D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Equidistants (&LIBID_KompasLTAPI7)
#define LIBID_OF__Equidistant (&LIBID_KompasLTAPI7)
#define LIBID_OF__Nurbs (&LIBID_KompasLTAPI7)
#define LIBID_OF_Nurbses (&LIBID_KompasLTAPI7)
#define LIBID_OF_CentreMarkers (&LIBID_KompasLTAPI7)
#define LIBID_OF_CentreMarker (&LIBID_KompasLTAPI7)
#define LIBID_OF_RemoteElement (&LIBID_KompasLTAPI7)
#define LIBID_OF_RemoteElements (&LIBID_KompasLTAPI7)
#define LIBID_OF__Attribute (&LIBID_KompasLTAPI7)
#define LIBID_OF__ColumnInfo (&LIBID_KompasLTAPI7)
#define LIBID_OF__AttributeType (&LIBID_KompasLTAPI7)
#define LIBID_OF_AxisLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_AxisLines (&LIBID_KompasLTAPI7)
#define LIBID_OF_Variable7 (&LIBID_KompasLTAPI7)
#define LIBID_OF_InsertionParameters (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingGroup (&LIBID_KompasLTAPI7)
#define LIBID_OF_DrawingGroups (&LIBID_KompasLTAPI7)
#define LIBID_OF__Hatch (&LIBID_KompasLTAPI7)
#define LIBID_OF__Colouring (&LIBID_KompasLTAPI7)
#define LIBID_OF_Hatches (&LIBID_KompasLTAPI7)
#define LIBID_OF_Colourings (&LIBID_KompasLTAPI7)
#define LIBID_OF__SpecRough (&LIBID_KompasLTAPI7)
#define LIBID_OF_TechnicalDemand (&LIBID_KompasLTAPI7)
#define LIBID_OF__Raster (&LIBID_KompasLTAPI7)
#define LIBID_OF_Rasters (&LIBID_KompasLTAPI7)
#define LIBID_OF_OleDrawingObject (&LIBID_KompasLTAPI7)
#define LIBID_OF_OleDrawingObjects (&LIBID_KompasLTAPI7)
#define LIBID_OF_SelectionManager (&LIBID_KompasLTAPI7)
#define LIBID_OF_ChooseManager (&LIBID_KompasLTAPI7)
#define LIBID_OF_SurfacesIntersectionCurve (&LIBID_KompasLTAPI7)
#define LIBID_OF_SurfacesIntersectionCurves (&LIBID_KompasLTAPI7)
#define LIBID_OF__Stamp (&LIBID_KompasLTAPI7)
#define LIBID_OF_WaveLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_WaveLines (&LIBID_KompasLTAPI7)
#define LIBID_OF_BrokenLine (&LIBID_KompasLTAPI7)
#define LIBID_OF_BrokenLines (&LIBID_KompasLTAPI7)
#define LIBID_OF_PropertyStyleList (&LIBID_KompasLTAPI7)
#define LIBID_OF__CopyObjectParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_CurveCopyObjectParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_CircleCopyObjectParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_CircularCopyObjectParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_MeshCopyObjectParam (&LIBID_KompasLTAPI7)
#define LIBID_OF_PrintJob (&LIBID_KompasLTAPI7)
#define LIBID_OF_PrintJob_Sheet (&LIBID_KompasLTAPI7)
#define LIBID_OF__Property (&LIBID_KompasLTAPI7)
#define LIBID_OF_LibArraySettings (&LIBID_KompasLTAPI7)
#define LIBID_OF_ReportProcess (&LIBID_KompasLTAPI7)
#define LIBID_OF_Equidistants3D (&LIBID_KompasLTAPI7)
#define LIBID_OF_Equidistant3D (&LIBID_KompasLTAPI7)
// *********************************************************************//
// Interface: IKompasAPIObject
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C799A83-C0A4-4312-BEB0-21CBD7FF4C13}
// *********************************************************************//
interface IKompasAPIObject  : public IDispatch
{
public:
  // [1000]    .
  virtual HRESULT STDMETHODCALLTYPE get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/) = 0;
  // [1001]    .
  virtual HRESULT STDMETHODCALLTYPE get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/) = 0;
  // [1002]  .
  virtual HRESULT STDMETHODCALLTYPE get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/) = 0;
  // [1003]    .
  virtual HRESULT STDMETHODCALLTYPE get_Reference(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
    OLECHECK(this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void)
  {
    Kompasltapi7_tlb::IApplicationPtr PVal;
    OLECHECK(this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal));
    return PVal;
  }

  KompasAPIObjectTypeEnum __fastcall get_Type(void)
  {
    KompasAPIObjectTypeEnum Type;
    OLECHECK(this->get_Type((KompasAPIObjectTypeEnum*)&Type));
    return Type;
  }

  long __fastcall get_Reference(void)
  {
    long PVal;
    OLECHECK(this->get_Reference((long*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IApplication
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6A2EFAF7-8254-45A5-9DC8-2213F16AF5D7}
// *********************************************************************//
interface IApplication  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [1]   
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]      
  virtual HRESULT STDMETHODCALLTYPE get_Documents(Kompasltapi7_tlb::IDocumentsPtr* Documents/*[out,retval]*/) = 0;
  // [3]  
  virtual HRESULT STDMETHODCALLTYPE Quit(void) = 0;
  // [4]    
  virtual HRESULT STDMETHODCALLTYPE CreateProcessParam(Kompasltapi7_tlb::IProcessParamPtr* PProcessParam/*[out,retval]*/) = 0;
  // [5]     
  virtual HRESULT STDMETHODCALLTYPE StopCurrentProcess(TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                       Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in,def,opt]*/) = 0;
  // [6]    
  virtual HRESULT STDMETHODCALLTYPE CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/, 
                                                          Kompasltapi7_tlb::IPropertyManagerPtr* PPropertyManager/*[out,retval]*/) = 0;
  // [7]  
  virtual HRESULT STDMETHODCALLTYPE set_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in]*/) = 0;
  // [7]  
  virtual HRESULT STDMETHODCALLTYPE get_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr* PDoc/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryManager(Kompasltapi7_tlb::ILibraryManagerPtr* PRes/*[out,retval]*/) = 0;
  // [9]     .
  virtual HRESULT STDMETHODCALLTYPE get_KompasError(Kompasltapi7_tlb::IKompasErrorPtr* PRes/*[out,retval]*/) = 0;
  // [10]    .
  virtual HRESULT STDMETHODCALLTYPE get_Converter(TVariantInParam Library/*[in]*/, 
                                                  Kompasltapi7_tlb::IConverterPtr* PVal/*[out,retval]*/) = 0;
  // [11]    .
  virtual HRESULT STDMETHODCALLTYPE get_CheckSum(Kompasltapi7_tlb::ICheckSumPtr* PRes/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_ProgressBarIndicator(Kompasltapi7_tlb::IProgressBarIndicatorPtr* PRes/*[out,retval]*/) = 0;
  // [13]   .
  virtual HRESULT STDMETHODCALLTYPE set_HideMessage(ksHideMessageEnum PVal/*[in]*/) = 0;
  // [13]   .
  virtual HRESULT STDMETHODCALLTYPE get_HideMessage(ksHideMessageEnum* PVal/*[out,retval]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                         TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                         TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [15]    .
  virtual HRESULT STDMETHODCALLTYPE IsKompasCommandEnable(long CommandID/*[in]*/, 
                                                          TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [16]     .
  virtual HRESULT STDMETHODCALLTYPE IsKompasCommandCheck(long CommandID/*[in]*/, 
                                                         long* PRes/*[out,retval]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE get_SystemSettings(Kompasltapi7_tlb::ISystemSettingsPtr* PVal/*[out,retval]*/) = 0;
  // [18]  .
  virtual HRESULT STDMETHODCALLTYPE get_ApplicationName(TOLEBOOL FullName/*[in]*/, 
                                                        BSTR* PVal/*[out,retval]*/) = 0;
  // [19]  2D .
  virtual HRESULT STDMETHODCALLTYPE get_Math2D(Kompasltapi7_tlb::IMath2DPtr* PRes/*[out,retval]*/) = 0;
  // [20]   
  virtual HRESULT STDMETHODCALLTYPE get_PrintJob(Kompasltapi7_tlb::IPrintJobPtr* PrintJob/*[out,retval]*/) = 0;
  // [21]  
  virtual HRESULT STDMETHODCALLTYPE MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, 
                                                 long Flags/*[in]*/, long* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDocumentsPtr __fastcall get_Documents(void)
  {
    Kompasltapi7_tlb::IDocumentsPtr Documents;
    OLECHECK(this->get_Documents((Kompasltapi7_tlb::IDocumentsPtr*)&Documents));
    return Documents;
  }

  Kompasltapi7_tlb::IProcessParamPtr __fastcall CreateProcessParam(void)
  {
    Kompasltapi7_tlb::IProcessParamPtr PProcessParam;
    OLECHECK(this->CreateProcessParam((Kompasltapi7_tlb::IProcessParamPtr*)&PProcessParam));
    return PProcessParam;
  }

  Kompasltapi7_tlb::IPropertyManagerPtr __fastcall CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/)
  {
    Kompasltapi7_tlb::IPropertyManagerPtr PPropertyManager;
    OLECHECK(this->CreatePropertyManager(NewManager, (Kompasltapi7_tlb::IPropertyManagerPtr*)&PPropertyManager));
    return PPropertyManager;
  }

  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall get_ActiveDocument(void)
  {
    Kompasltapi7_tlb::IKompasDocumentPtr PDoc;
    OLECHECK(this->get_ActiveDocument((Kompasltapi7_tlb::IKompasDocumentPtr*)&PDoc));
    return PDoc;
  }

  Kompasltapi7_tlb::ILibraryManagerPtr __fastcall get_LibraryManager(void)
  {
    Kompasltapi7_tlb::ILibraryManagerPtr PRes;
    OLECHECK(this->get_LibraryManager((Kompasltapi7_tlb::ILibraryManagerPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::IKompasErrorPtr __fastcall get_KompasError(void)
  {
    Kompasltapi7_tlb::IKompasErrorPtr PRes;
    OLECHECK(this->get_KompasError((Kompasltapi7_tlb::IKompasErrorPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::IConverterPtr __fastcall get_Converter(TVariantInParam Library/*[in]*/)
  {
    Kompasltapi7_tlb::IConverterPtr PVal;
    OLECHECK(this->get_Converter(Library, (Kompasltapi7_tlb::IConverterPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ICheckSumPtr __fastcall get_CheckSum(void)
  {
    Kompasltapi7_tlb::ICheckSumPtr PRes;
    OLECHECK(this->get_CheckSum((Kompasltapi7_tlb::ICheckSumPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::IProgressBarIndicatorPtr __fastcall get_ProgressBarIndicator(void)
  {
    Kompasltapi7_tlb::IProgressBarIndicatorPtr PRes;
    OLECHECK(this->get_ProgressBarIndicator((Kompasltapi7_tlb::IProgressBarIndicatorPtr*)&PRes));
    return PRes;
  }

  ksHideMessageEnum __fastcall get_HideMessage(void)
  {
    ksHideMessageEnum PVal;
    OLECHECK(this->get_HideMessage((ksHideMessageEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                           TOLEBOOL PostMessage/*[in,def,opt]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->ExecuteKompasCommand(CommandID, PostMessage, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall IsKompasCommandEnable(long CommandID/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->IsKompasCommandEnable(CommandID, (TOLEBOOL*)&PRes));
    return PRes;
  }

  long __fastcall IsKompasCommandCheck(long CommandID/*[in]*/)
  {
    long PRes;
    OLECHECK(this->IsKompasCommandCheck(CommandID, (long*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ISystemSettingsPtr __fastcall get_SystemSettings(void)
  {
    Kompasltapi7_tlb::ISystemSettingsPtr PVal;
    OLECHECK(this->get_SystemSettings((Kompasltapi7_tlb::ISystemSettingsPtr*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ApplicationName(TOLEBOOL FullName/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ApplicationName(FullName, (BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMath2DPtr __fastcall get_Math2D(void)
  {
    Kompasltapi7_tlb::IMath2DPtr PRes;
    OLECHECK(this->get_Math2D((Kompasltapi7_tlb::IMath2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::IPrintJobPtr __fastcall get_PrintJob(void)
  {
    Kompasltapi7_tlb::IPrintJobPtr PrintJob;
    OLECHECK(this->get_PrintJob((Kompasltapi7_tlb::IPrintJobPtr*)&PrintJob));
    return PrintJob;
  }

  long __fastcall MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, long Flags/*[in]*/)
  {
    long Result;
    OLECHECK(this->MessageBoxEx(Text, Caption, Flags, (long*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   Kompasltapi7_tlb::IDocumentsPtr Documents = {read = get_Documents};
  __property   Kompasltapi7_tlb::IKompasDocumentPtr ActiveDocument = {read = get_ActiveDocument, write = set_ActiveDocument};
  __property   Kompasltapi7_tlb::ILibraryManagerPtr LibraryManager = {read = get_LibraryManager};
  __property   Kompasltapi7_tlb::IKompasErrorPtr KompasError = {read = get_KompasError};
  __property   Kompasltapi7_tlb::ICheckSumPtr CheckSum = {read = get_CheckSum};
  __property   Kompasltapi7_tlb::IProgressBarIndicatorPtr ProgressBarIndicator = {read = get_ProgressBarIndicator};
  __property   ksHideMessageEnum HideMessage = {read = get_HideMessage, write = set_HideMessage};
  __property   Kompasltapi7_tlb::ISystemSettingsPtr SystemSettings = {read = get_SystemSettings};
  __property   Kompasltapi7_tlb::IMath2DPtr Math2D = {read = get_Math2D};
  __property   Kompasltapi7_tlb::IPrintJobPtr PrintJob = {read = get_PrintJob};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasCollection
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {901F85DE-FA5A-4314-BD75-066A79AF20A8}
// *********************************************************************//
interface IKompasCollection  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [-4]   ( VB : for each).
  virtual HRESULT STDMETHODCALLTYPE get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/) = 0;
  // [2000]     .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  LPUNKNOWN __fastcall get__NewEnum(void)
  {
    LPUNKNOWN PObject;
    OLECHECK(this->get__NewEnum((LPUNKNOWN*)&PObject));
    return PObject;
  }

  long __fastcall get_Count(void)
  {
    long PVal;
    OLECHECK(this->get_Count((long*)&PVal));
    return PVal;
  }


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDocuments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BF39F08-5537-4910-84CE-B338E55F7BCF}
// *********************************************************************//
interface IDocuments  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,   ,    
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/) = 0;
  // [1]        
  virtual HRESULT STDMETHODCALLTYPE Add(DocumentTypeEnum Type/*[in]*/, 
                                        TOLEBOOL Visible/*[in,def,opt]*/, 
                                        Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/) = 0;
  // [2]         .
  virtual HRESULT STDMETHODCALLTYPE Open(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                                         TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                         Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/) = 0;
  // [3]         .
  virtual HRESULT STDMETHODCALLTYPE OpenEx(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                                           TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                           TVariantInParam LoadCombinationIndex/*[in]*/, 
                                           Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/) = 0;
  // [4]      SAFEARRAY' BSTR  - (VT_ARRAY | VT_BSTR)
  virtual HRESULT STDMETHODCALLTYPE GetLoadCombinations(BSTR PathName/*[in]*/, 
                                                        long* CurrentIndex/*[out]*/, 
                                                        TVariant* Value/*[out,retval]*/) = 0;
  // [5]          
  virtual HRESULT STDMETHODCALLTYPE AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                                           TOLEBOOL Visible/*[in,def,opt]*/, 
                                                           Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IKompasDocumentPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Add(DocumentTypeEnum Type/*[in]*/, 
                                                      TOLEBOOL Visible/*[in,def,opt]*/)
  {
    Kompasltapi7_tlb::IKompasDocumentPtr Result;
    OLECHECK(this->Add(Type, Visible, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Open(BSTR PathName/*[in]*/, 
                                                       TOLEBOOL Visible/*[in,def,opt]*/, 
                                                       TOLEBOOL ReadOnly/*[in,def,opt]*/)
  {
    Kompasltapi7_tlb::IKompasDocumentPtr Result;
    OLECHECK(this->Open(PathName, Visible, ReadOnly, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall OpenEx(BSTR PathName/*[in]*/, 
                                                         TOLEBOOL Visible/*[in,def,opt]*/, 
                                                         TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                                         TVariantInParam LoadCombinationIndex/*[in]*/)
  {
    Kompasltapi7_tlb::IKompasDocumentPtr Result;
    OLECHECK(this->OpenEx(PathName, Visible, ReadOnly, LoadCombinationIndex, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
    return Result;
  }

  TVariant __fastcall GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/)
  {
    TVariant Value;
    OLECHECK(this->GetLoadCombinations(PathName, CurrentIndex, (TVariant*)&Value));
    return Value;
  }

  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                                                         TOLEBOOL Visible/*[in,def,opt]*/)
  {
    Kompasltapi7_tlb::IKompasDocumentPtr Result;
    OLECHECK(this->AddWithDefaultSettings(Type, Visible, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C6E318D-BD6E-4AFA-8A13-977EAA0845EF}
// *********************************************************************//
interface IKompasDocument  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [3000]  .
  virtual HRESULT STDMETHODCALLTYPE get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/) = 0;
  // [3001]     .
  virtual HRESULT STDMETHODCALLTYPE get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/) = 0;
  // [3002]  .  SaveChanges = False,       .
  virtual HRESULT STDMETHODCALLTYPE Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                          TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3003]    .
  virtual HRESULT STDMETHODCALLTYPE Save(void) = 0;
  // [3004]     .
  virtual HRESULT STDMETHODCALLTYPE SaveAs(BSTR PathName/*[in]*/) = 0;
  // [3005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [3006]   ,   ,    .
  virtual HRESULT STDMETHODCALLTYPE get_PathName(BSTR* PVal/*[out,retval]*/) = 0;
  // [3007]    .
  virtual HRESULT STDMETHODCALLTYPE get_Path(BSTR* PVal/*[out,retval]*/) = 0;
  // [3008]    .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3009]  .
  virtual HRESULT STDMETHODCALLTYPE get_Active(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3009]  .
  virtual HRESULT STDMETHODCALLTYPE set_Active(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3010]     .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3010]     .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3011]  .
  virtual HRESULT STDMETHODCALLTYPE get_Changed(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3012]  .
  virtual HRESULT STDMETHODCALLTYPE get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/) = 0;
  // [3013]  .
  virtual HRESULT STDMETHODCALLTYPE get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/) = 0;
  // [3014]  .
  virtual HRESULT STDMETHODCALLTYPE get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/) = 0;
  // [3015]       .
  virtual HRESULT STDMETHODCALLTYPE get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  DocumentTypeEnum __fastcall get_DocumentType(void)
  {
    DocumentTypeEnum Type;
    OLECHECK(this->get_DocumentType((DocumentTypeEnum*)&Type));
    return Type;
  }

  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void)
  {
    Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
    OLECHECK(this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames));
    return PFrames;
  }

  TOLEBOOL __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Close(closeOptions, (TOLEBOOL*)&PRes));
    return PRes;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_PathName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_PathName((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Path(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Path((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Active(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Changed(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Changed((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void)
  {
    Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
    OLECHECK(this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void)
  {
    Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
    OLECHECK(this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void)
  {
    Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
    OLECHECK(this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void)
  {
    Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
    OLECHECK(this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal));
    return PVal;
  }


  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDocumentFrames
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1D18C466-C085-4D68-A465-A85D0C8E3A0E}
// *********************************************************************//
interface IDocumentFrames  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,   
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IDocumentFramePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDocumentFramePtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDocumentFramePtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IDocumentFramePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDocumentFrame
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4437FABA-990F-45E2-B1A2-7754FB326B76}
// *********************************************************************//
interface IDocumentFrame  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1] P   ( aximize, minimize,  )
  virtual HRESULT STDMETHODCALLTYPE set_Regime(FrameRegimeEnum PVal/*[in]*/) = 0;
  // [1] P   ( aximize, minimize,  )
  virtual HRESULT STDMETHODCALLTYPE get_Regime(FrameRegimeEnum* PVal/*[out,retval]*/) = 0;
  // [2]  
  virtual HRESULT STDMETHODCALLTYPE set_Active(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [2]  
  virtual HRESULT STDMETHODCALLTYPE get_Active(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE Zoom(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                         double Y2/*[in]*/) = 0;
  // [5]  /     .
  virtual HRESULT STDMETHODCALLTYPE ZoomPrevNextOrAll(ZoomTypeEnum Type/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE ZoomScale(double X/*[in]*/, double Y/*[in]*/, 
                                              double Scale/*[in]*/) = 0;
  // [7]      .
  virtual HRESULT STDMETHODCALLTYPE GetZoomScale(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Scale/*[out]*/) = 0;
  // [8]  Handle .
  virtual HRESULT STDMETHODCALLTYPE GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/) = 0;
  // [9]          .
  virtual HRESULT STDMETHODCALLTYPE SetGabaritModifying(void) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE RefreshWindow(void) = 0;
  // [11]      .
  virtual HRESULT STDMETHODCALLTYPE ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                                       long LX/*[in]*/, long LY/*[in]*/, 
                                                       double* X/*[out]*/, double* Y/*[out]*/, 
                                                       double* Z/*[out]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                         TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                         TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE IsKompasCommandEnable(long CommandID/*[in]*/, 
                                                          TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [14]     .
  virtual HRESULT STDMETHODCALLTYPE IsKompasCommandCheck(long CommandID/*[in]*/, 
                                                         long* PRes/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  FrameRegimeEnum __fastcall get_Regime(void)
  {
    FrameRegimeEnum PVal;
    OLECHECK(this->get_Regime((FrameRegimeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Active(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Caption(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Caption((BSTR*)&PVal));
    return PVal;
  }

  OLE_HANDLE __fastcall GetHWND(void)
  {
    OLE_HANDLE HWnd;
    OLECHECK(this->GetHWND((OLE_HANDLE*)&HWnd));
    return HWnd;
  }

  TOLEBOOL __fastcall ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                         long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                         double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ConvertCoordinates(Type, LX, LY, X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                           TOLEBOOL PostMessage/*[in,def,opt]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->ExecuteKompasCommand(CommandID, PostMessage, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall IsKompasCommandEnable(long CommandID/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->IsKompasCommandEnable(CommandID, (TOLEBOOL*)&PRes));
    return PRes;
  }

  long __fastcall IsKompasCommandCheck(long CommandID/*[in]*/)
  {
    long PRes;
    OLECHECK(this->IsKompasCommandCheck(CommandID, (long*)&PRes));
    return PRes;
  }


  __property   FrameRegimeEnum Regime = {read = get_Regime, write = set_Regime};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   BSTR            Caption = {read = get_Caption};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B35FF50E-2991-4630-8AB8-DC3153E7971A}
// *********************************************************************//
interface IDocumentSettings  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationDescriptions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9632C5C-86E1-4BC9-83A5-A954E407246A}
// *********************************************************************//
interface ISpecificationDescriptions  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/) = 0;
  // [1]         .
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                        BSTR SpcName/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/) = 0;
  // [2]             .
  virtual HRESULT STDMETHODCALLTYPE get_Description(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                                    Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Active(Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall Add(BSTR LayoutName/*[in]*/, 
                                                                long StyleID/*[in]*/, 
                                                                BSTR SpcName/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
    OLECHECK(this->Add(LayoutName, StyleID, SpcName, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Description(BSTR LayoutName/*[in]*/, 
                                                                            long StyleID/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
    OLECHECK(this->get_Description(LayoutName, StyleID, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Active(void)
  {
    Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
    OLECHECK(this->get_Active((Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::ISpecificationDescriptionPtr Active = {read = get_Active};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationDescription
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9678959E-166B-45F3-BDE8-88BBF4645F5C}
// *********************************************************************//
interface ISpecificationDescription  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_LayoutName(BSTR* PVal/*[out,retval]*/) = 0;
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE set_LayoutName(BSTR PVal/*[in]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE get_StyleID(long* PVal/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE set_StyleID(long PVal/*[in]*/) = 0;
  // [3]     .
  virtual HRESULT STDMETHODCALLTYPE get_SpecificationDocumentName(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]     .
  virtual HRESULT STDMETHODCALLTYPE set_SpecificationDocumentName(BSTR PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Active(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Active(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]   (  ).
  virtual HRESULT STDMETHODCALLTYPE get_SpecificationStyle(Kompasltapi7_tlb::ISpecificationStylePtr* Result/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* Result/*[out,retval]*/) = 0;
  // [9]     SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Objects(TVariant* Result/*[out,retval]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObjects(Kompasltapi7_tlb::ISpecificationBaseObjectsPtr* Result/*[out,retval]*/) = 0;
  // [11]   - .
  virtual HRESULT STDMETHODCALLTYPE get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_ShowOnSheet(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE set_ShowOnSheet(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [13]    (     ).
  virtual HRESULT STDMETHODCALLTYPE get_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr* Result/*[out,retval]*/) = 0;
  // [13]    (     ).
  virtual HRESULT STDMETHODCALLTYPE set_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr Result/*[in]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE get_ShowAllObjects(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE set_ShowAllObjects(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                        long BlockIndex/*[in]*/, 
                                                        BSTR* PVal/*[out,retval]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE set_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                        long BlockIndex/*[in]*/, BSTR PVal/*[in]*/) = 0;
  // [16]        .
  virtual HRESULT STDMETHODCALLTYPE get_DelegateMode(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [16]        .
  virtual HRESULT STDMETHODCALLTYPE set_DelegateMode(TOLEBOOL PVal/*[in,def,opt]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_LayoutName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LayoutName((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_StyleID(void)
  {
    long PVal;
    OLECHECK(this->get_StyleID((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_SpecificationDocumentName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_SpecificationDocumentName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Active(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->_Update((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationStylePtr __fastcall get_SpecificationStyle(void)
  {
    Kompasltapi7_tlb::ISpecificationStylePtr Result;
    OLECHECK(this->get_SpecificationStyle((Kompasltapi7_tlb::ISpecificationStylePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall get_SpecificationTuning(void)
  {
    Kompasltapi7_tlb::ISpecificationTuningPtr Result;
    OLECHECK(this->get_SpecificationTuning((Kompasltapi7_tlb::ISpecificationTuningPtr*)&Result));
    return Result;
  }

  TVariant __fastcall get_Objects(void)
  {
    TVariant Result;
    OLECHECK(this->get_Objects((TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationBaseObjectsPtr __fastcall get_BaseObjects(void)
  {
    Kompasltapi7_tlb::ISpecificationBaseObjectsPtr Result;
    OLECHECK(this->get_BaseObjects((Kompasltapi7_tlb::ISpecificationBaseObjectsPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall get_CommentObjects(void)
  {
    Kompasltapi7_tlb::ISpecificationCommentObjectsPtr Result;
    OLECHECK(this->get_CommentObjects((Kompasltapi7_tlb::ISpecificationCommentObjectsPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ShowOnSheet(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowOnSheet((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationObjectPtr __fastcall get_CurrentObject(void)
  {
    Kompasltapi7_tlb::ISpecificationObjectPtr Result;
    OLECHECK(this->get_CurrentObject((Kompasltapi7_tlb::ISpecificationObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ShowAllObjects(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowAllObjects((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_PerformanceName(long PerformanceIndex/*[in]*/, long BlockIndex/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_PerformanceName(PerformanceIndex, BlockIndex, (BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DelegateMode(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DelegateMode((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            LayoutName = {read = get_LayoutName, write = set_LayoutName};
  __property   long            StyleID = {read = get_StyleID, write = set_StyleID};
  __property   BSTR            SpecificationDocumentName = {read = get_SpecificationDocumentName, write = set_SpecificationDocumentName};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   Kompasltapi7_tlb::ISpecificationStylePtr SpecificationStyle = {read = get_SpecificationStyle};
  __property   Kompasltapi7_tlb::ISpecificationTuningPtr SpecificationTuning = {read = get_SpecificationTuning};
  __property   Kompasltapi7_tlb::ISpecificationBaseObjectsPtr BaseObjects = {read = get_BaseObjects};
  __property   Kompasltapi7_tlb::ISpecificationCommentObjectsPtr CommentObjects = {read = get_CommentObjects};
  __property   TOLEBOOL        ShowOnSheet = {read = get_ShowOnSheet, write = set_ShowOnSheet};
  __property   Kompasltapi7_tlb::ISpecificationObjectPtr CurrentObject = {read = get_CurrentObject, write = set_CurrentObject};
  __property   TOLEBOOL        ShowAllObjects = {read = get_ShowAllObjects, write = set_ShowAllObjects};
  __property   TOLEBOOL        DelegateMode = {read = get_DelegateMode, write = set_DelegateMode};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F237D2B3-DFEE-4702-B71F-E5F6923F03E6}
// *********************************************************************//
interface ISpecificationStyle  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]       .
  virtual HRESULT STDMETHODCALLTYPE get_LayoutName1(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE get_StyleID1(long* PVal/*[out,retval]*/) = 0;
  // [3]       .
  virtual HRESULT STDMETHODCALLTYPE get_LayoutName2(BSTR* PVal/*[out,retval]*/) = 0;
  // [4]        .
  virtual HRESULT STDMETHODCALLTYPE get_StyleID2(long* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_Variant(ksSpecificationVariantEnum* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_SectionOn(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/) = 0;
  // [9]   -  .
  virtual HRESULT STDMETHODCALLTYPE get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/) = 0;
  // [10]    -  .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/) = 0;
  // [11] .
  virtual HRESULT STDMETHODCALLTYPE get_Sections(Kompasltapi7_tlb::ISpecificationSectionStylesPtr* PVal/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE get_SortSectionDown(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_LayoutName1(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LayoutName1((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_StyleID1(void)
  {
    long PVal;
    OLECHECK(this->get_StyleID1((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LayoutName2(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LayoutName2((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_StyleID2(void)
  {
    long PVal;
    OLECHECK(this->get_StyleID2((long*)&PVal));
    return PVal;
  }

  ksSpecificationVariantEnum __fastcall get_Variant(void)
  {
    ksSpecificationVariantEnum PVal;
    OLECHECK(this->get_Variant((ksSpecificationVariantEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SectionOn(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SectionOn((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall get_SpecificationTuning(void)
  {
    Kompasltapi7_tlb::ISpecificationTuningPtr PVal;
    OLECHECK(this->get_SpecificationTuning((Kompasltapi7_tlb::ISpecificationTuningPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISheetFormatPtr __fastcall get_Format(void)
  {
    Kompasltapi7_tlb::ISheetFormatPtr PVal;
    OLECHECK(this->get_Format((Kompasltapi7_tlb::ISheetFormatPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_Columns(void)
  {
    Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
    OLECHECK(this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_AdditionalColumns(void)
  {
    Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
    OLECHECK(this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationSectionStylesPtr __fastcall get_Sections(void)
  {
    Kompasltapi7_tlb::ISpecificationSectionStylesPtr PVal;
    OLECHECK(this->get_Sections((Kompasltapi7_tlb::ISpecificationSectionStylesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall get_AdditionalBlocks(void)
  {
    Kompasltapi7_tlb::IAdditionalBlockStylesPtr PVal;
    OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockStylesPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SortSectionDown(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SortSectionDown((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            LayoutName1 = {read = get_LayoutName1};
  __property   long            StyleID1 = {read = get_StyleID1};
  __property   BSTR            LayoutName2 = {read = get_LayoutName2};
  __property   long            StyleID2 = {read = get_StyleID2};
  __property   ksSpecificationVariantEnum Variant = {read = get_Variant};
  __property   TOLEBOOL        SectionOn = {read = get_SectionOn};
  __property   Kompasltapi7_tlb::ISpecificationTuningPtr SpecificationTuning = {read = get_SpecificationTuning};
  __property   Kompasltapi7_tlb::ISheetFormatPtr Format = {read = get_Format};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::ISpecificationSectionStylesPtr Sections = {read = get_Sections};
  __property   Kompasltapi7_tlb::IAdditionalBlockStylesPtr AdditionalBlocks = {read = get_AdditionalBlocks};
  __property   TOLEBOOL        SortSectionDown = {read = get_SortSectionDown};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BB719D42-E44C-445B-969A-0E2F63E97FC8}
// *********************************************************************//
interface ISpecificationTuning  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]       .
  virtual HRESULT STDMETHODCALLTYPE get_LinkType(ksSpecificationLinkTypeEnum* PVal/*[out,retval]*/) = 0;
  // [1]       .
  virtual HRESULT STDMETHODCALLTYPE set_LinkType(ksSpecificationLinkTypeEnum PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_CalculateZone(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_CalculateZone(TOLEBOOL PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_CalculatePosition(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_CalculatePosition(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_ShowSectionName(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE set_ShowSectionName(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]      .
  virtual HRESULT STDMETHODCALLTYPE get_DeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]      .
  virtual HRESULT STDMETHODCALLTYPE set_DeleteGeometry(TOLEBOOL PVal/*[in]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE get_DisableEmptyString(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE set_DisableEmptyString(TOLEBOOL PVal/*[in]*/) = 0;
  // [7]       .
  virtual HRESULT STDMETHODCALLTYPE get_DisableEmptyBlockString(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]       .
  virtual HRESULT STDMETHODCALLTYPE set_DisableEmptyBlockString(TOLEBOOL PVal/*[in]*/) = 0;
  // [8]    :    .
  virtual HRESULT STDMETHODCALLTYPE get_InsertNull(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]    :    .
  virtual HRESULT STDMETHODCALLTYPE set_InsertNull(TOLEBOOL PVal/*[in]*/) = 0;
  // [9]    :  .
  virtual HRESULT STDMETHODCALLTYPE get_InsertDash(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]    :  .
  virtual HRESULT STDMETHODCALLTYPE set_InsertDash(TOLEBOOL PVal/*[in]*/) = 0;
  // [10]     (  > 10).
  virtual HRESULT STDMETHODCALLTYPE get_ShowInfoByObjects(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10]     (  > 10).
  virtual HRESULT STDMETHODCALLTYPE set_ShowInfoByObjects(TOLEBOOL PVal/*[in]*/) = 0;
  // [11]    .
  virtual HRESULT STDMETHODCALLTYPE get_SupportPerformance(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [11]    .
  virtual HRESULT STDMETHODCALLTYPE set_SupportPerformance(TOLEBOOL PVal/*[in]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE get_ShowPerformanceFull(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE set_ShowPerformanceFull(TOLEBOOL PVal/*[in]*/) = 0;
  // [13]     .
  virtual HRESULT STDMETHODCALLTYPE get_BlockOnNewPage(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [13]     .
  virtual HRESULT STDMETHODCALLTYPE set_BlockOnNewPage(TOLEBOOL PVal/*[in]*/) = 0;
  // [14]    :  .
  virtual HRESULT STDMETHODCALLTYPE get_PositionUp(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [14]    :  .
  virtual HRESULT STDMETHODCALLTYPE set_PositionUp(TOLEBOOL PVal/*[in]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE get_DrawBottomUp(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE set_DrawBottomUp(TOLEBOOL PVal/*[in]*/) = 0;
  // [16]     .
  virtual HRESULT STDMETHODCALLTYPE get_UserTextStyle(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [16]     .
  virtual HRESULT STDMETHODCALLTYPE set_UserTextStyle(TOLEBOOL PVal/*[in]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE get_PerformanceCount(long* PVal/*[out,retval]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE set_PerformanceCount(long PVal/*[in]*/) = 0;
  // [18]  .
  virtual HRESULT STDMETHODCALLTYPE get_BlockCount(long* PVal/*[out,retval]*/) = 0;
  // [19]  .
  virtual HRESULT STDMETHODCALLTYPE get_InitialPosition(long* PVal/*[out,retval]*/) = 0;
  // [19]  .
  virtual HRESULT STDMETHODCALLTYPE set_InitialPosition(long PVal/*[in]*/) = 0;
  // [20]      .
  virtual HRESULT STDMETHODCALLTYPE get_PredefinedTextFileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [20]      .
  virtual HRESULT STDMETHODCALLTYPE set_PredefinedTextFileName(BSTR PVal/*[in]*/) = 0;
  // [21]     -  .
  virtual HRESULT STDMETHODCALLTYPE get_SectionTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [22]     -  .
  virtual HRESULT STDMETHODCALLTYPE get_SectionTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [23]    .
  virtual HRESULT STDMETHODCALLTYPE get_ObjectTextStyle(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [24]  .
  virtual HRESULT STDMETHODCALLTYPE get_Sections(Kompasltapi7_tlb::ISpecificationTuningSectionsPtr* PVal/*[out,retval]*/) = 0;
  // [25]    .
  virtual HRESULT STDMETHODCALLTYPE get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [25]    .
  virtual HRESULT STDMETHODCALLTYPE set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/) = 0;
  // [26]   .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/) = 0;
  // [27]    .
  virtual HRESULT STDMETHODCALLTYPE get_ShowAdditionalBlockName(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [27]    .
  virtual HRESULT STDMETHODCALLTYPE set_ShowAdditionalBlockName(TOLEBOOL PVal/*[in]*/) = 0;
  // [28]    .
  virtual HRESULT STDMETHODCALLTYPE get_ShowNestingBlockName(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [28]    .
  virtual HRESULT STDMETHODCALLTYPE set_ShowNestingBlockName(TOLEBOOL PVal/*[in]*/) = 0;
  // [29]    .
  virtual HRESULT STDMETHODCALLTYPE get_ShowPerformanceBlockName(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [29]    .
  virtual HRESULT STDMETHODCALLTYPE set_ShowPerformanceBlockName(TOLEBOOL PVal/*[in]*/) = 0;
  // [30]      -  .
  virtual HRESULT STDMETHODCALLTYPE get_PerformanceBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [31]      -  .
  virtual HRESULT STDMETHODCALLTYPE get_PerformanceBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [32]      -  .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [33]      -  .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [34]      -  .
  virtual HRESULT STDMETHODCALLTYPE get_NestingBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [35]      -  .
  virtual HRESULT STDMETHODCALLTYPE get_NestingBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/) = 0;
  // [36]        .
  virtual HRESULT STDMETHODCALLTYPE get_DisableNestingBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [36]        .
  virtual HRESULT STDMETHODCALLTYPE set_DisableNestingBlockEmptyStrings(TOLEBOOL PVal/*[in]*/) = 0;
  // [37]        .
  virtual HRESULT STDMETHODCALLTYPE get_DisableAdditionalBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [37]        .
  virtual HRESULT STDMETHODCALLTYPE set_DisableAdditionalBlockEmptyStrings(TOLEBOOL PVal/*[in]*/) = 0;
  // [38]          .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [39]      .
  virtual HRESULT STDMETHODCALLTYPE get_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [39]      .
  virtual HRESULT STDMETHODCALLTYPE set_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL PVal/*[in]*/) = 0;
  // [40]      .
  virtual HRESULT STDMETHODCALLTYPE get_CopySpcObjectOnCopyGeometry(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [40]      .
  virtual HRESULT STDMETHODCALLTYPE set_CopySpcObjectOnCopyGeometry(TOLEBOOL PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksSpecificationLinkTypeEnum __fastcall get_LinkType(void)
  {
    ksSpecificationLinkTypeEnum PVal;
    OLECHECK(this->get_LinkType((ksSpecificationLinkTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CalculateZone(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CalculateZone((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CalculatePosition(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CalculatePosition((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowSectionName(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowSectionName((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DeleteGeometry(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DeleteGeometry((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DisableEmptyString(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DisableEmptyString((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DisableEmptyBlockString(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DisableEmptyBlockString((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_InsertNull(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_InsertNull((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_InsertDash(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_InsertDash((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowInfoByObjects(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowInfoByObjects((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SupportPerformance(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SupportPerformance((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowPerformanceFull(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowPerformanceFull((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_BlockOnNewPage(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_BlockOnNewPage((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_PositionUp(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_PositionUp((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DrawBottomUp(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DrawBottomUp((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_UserTextStyle(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UserTextStyle((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_PerformanceCount(void)
  {
    long PVal;
    OLECHECK(this->get_PerformanceCount((long*)&PVal));
    return PVal;
  }

  long __fastcall get_BlockCount(void)
  {
    long PVal;
    OLECHECK(this->get_BlockCount((long*)&PVal));
    return PVal;
  }

  long __fastcall get_InitialPosition(void)
  {
    long PVal;
    OLECHECK(this->get_InitialPosition((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_PredefinedTextFileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_PredefinedTextFileName((BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_SectionTextStyleFirst(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_SectionTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_SectionTextStyleNext(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_SectionTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_ObjectTextStyle(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_ObjectTextStyle((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationTuningSectionsPtr __fastcall get_Sections(void)
  {
    Kompasltapi7_tlb::ISpecificationTuningSectionsPtr PVal;
    OLECHECK(this->get_Sections((Kompasltapi7_tlb::ISpecificationTuningSectionsPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_UseAdditionalBlocks(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UseAdditionalBlocks((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall get_AdditionalBlocks(void)
  {
    Kompasltapi7_tlb::IAdditionalBlockTuningsPtr PVal;
    OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockTuningsPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowAdditionalBlockName(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowAdditionalBlockName((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowNestingBlockName(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowNestingBlockName((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowPerformanceBlockName(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowPerformanceBlockName((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_PerformanceBlockTextStyleFirst(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_PerformanceBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_PerformanceBlockTextStyleNext(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_PerformanceBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_AdditionalBlockTextStyleFirst(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_AdditionalBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_AdditionalBlockTextStyleNext(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_AdditionalBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_NestingBlockTextStyleFirst(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_NestingBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextStylePtr __fastcall get_NestingBlockTextStyleNext(void)
  {
    Kompasltapi7_tlb::ITextStylePtr PVal;
    OLECHECK(this->get_NestingBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DisableNestingBlockEmptyStrings(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DisableNestingBlockEmptyStrings((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DisableAdditionalBlockEmptyStrings(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DisableAdditionalBlockEmptyStrings((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->_Update((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DeleteSpcObjectOnDeleteGeometry(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DeleteSpcObjectOnDeleteGeometry((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CopySpcObjectOnCopyGeometry(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CopySpcObjectOnCopyGeometry((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   ksSpecificationLinkTypeEnum LinkType = {read = get_LinkType, write = set_LinkType};
  __property   TOLEBOOL        CalculateZone = {read = get_CalculateZone, write = set_CalculateZone};
  __property   TOLEBOOL        CalculatePosition = {read = get_CalculatePosition, write = set_CalculatePosition};
  __property   TOLEBOOL        ShowSectionName = {read = get_ShowSectionName, write = set_ShowSectionName};
  __property   TOLEBOOL        DeleteGeometry = {read = get_DeleteGeometry, write = set_DeleteGeometry};
  __property   TOLEBOOL        DisableEmptyString = {read = get_DisableEmptyString, write = set_DisableEmptyString};
  __property   TOLEBOOL        DisableEmptyBlockString = {read = get_DisableEmptyBlockString, write = set_DisableEmptyBlockString};
  __property   TOLEBOOL        InsertNull = {read = get_InsertNull, write = set_InsertNull};
  __property   TOLEBOOL        InsertDash = {read = get_InsertDash, write = set_InsertDash};
  __property   TOLEBOOL        ShowInfoByObjects = {read = get_ShowInfoByObjects, write = set_ShowInfoByObjects};
  __property   TOLEBOOL        SupportPerformance = {read = get_SupportPerformance, write = set_SupportPerformance};
  __property   TOLEBOOL        ShowPerformanceFull = {read = get_ShowPerformanceFull, write = set_ShowPerformanceFull};
  __property   TOLEBOOL        BlockOnNewPage = {read = get_BlockOnNewPage, write = set_BlockOnNewPage};
  __property   TOLEBOOL        PositionUp = {read = get_PositionUp, write = set_PositionUp};
  __property   TOLEBOOL        DrawBottomUp = {read = get_DrawBottomUp, write = set_DrawBottomUp};
  __property   TOLEBOOL        UserTextStyle = {read = get_UserTextStyle, write = set_UserTextStyle};
  __property   long            PerformanceCount = {read = get_PerformanceCount, write = set_PerformanceCount};
  __property   long            BlockCount = {read = get_BlockCount};
  __property   long            InitialPosition = {read = get_InitialPosition, write = set_InitialPosition};
  __property   BSTR            PredefinedTextFileName = {read = get_PredefinedTextFileName, write = set_PredefinedTextFileName};
  __property   Kompasltapi7_tlb::ITextStylePtr SectionTextStyleFirst = {read = get_SectionTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr SectionTextStyleNext = {read = get_SectionTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr ObjectTextStyle = {read = get_ObjectTextStyle};
  __property   Kompasltapi7_tlb::ISpecificationTuningSectionsPtr Sections = {read = get_Sections};
  __property   TOLEBOOL        UseAdditionalBlocks = {read = get_UseAdditionalBlocks, write = set_UseAdditionalBlocks};
  __property   Kompasltapi7_tlb::IAdditionalBlockTuningsPtr AdditionalBlocks = {read = get_AdditionalBlocks};
  __property   TOLEBOOL        ShowAdditionalBlockName = {read = get_ShowAdditionalBlockName, write = set_ShowAdditionalBlockName};
  __property   TOLEBOOL        ShowNestingBlockName = {read = get_ShowNestingBlockName, write = set_ShowNestingBlockName};
  __property   TOLEBOOL        ShowPerformanceBlockName = {read = get_ShowPerformanceBlockName, write = set_ShowPerformanceBlockName};
  __property   Kompasltapi7_tlb::ITextStylePtr PerformanceBlockTextStyleFirst = {read = get_PerformanceBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr PerformanceBlockTextStyleNext = {read = get_PerformanceBlockTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr AdditionalBlockTextStyleFirst = {read = get_AdditionalBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr AdditionalBlockTextStyleNext = {read = get_AdditionalBlockTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr NestingBlockTextStyleFirst = {read = get_NestingBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr NestingBlockTextStyleNext = {read = get_NestingBlockTextStyleNext};
  __property   TOLEBOOL        DisableNestingBlockEmptyStrings = {read = get_DisableNestingBlockEmptyStrings, write = set_DisableNestingBlockEmptyStrings};
  __property   TOLEBOOL        DisableAdditionalBlockEmptyStrings = {read = get_DisableAdditionalBlockEmptyStrings, write = set_DisableAdditionalBlockEmptyStrings};
  __property   TOLEBOOL        DeleteSpcObjectOnDeleteGeometry = {read = get_DeleteSpcObjectOnDeleteGeometry, write = set_DeleteSpcObjectOnDeleteGeometry};
  __property   TOLEBOOL        CopySpcObjectOnCopyGeometry = {read = get_CopySpcObjectOnCopyGeometry, write = set_CopySpcObjectOnCopyGeometry};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITextStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7EA65CA0-420D-4E1D-8C19-998495C4DA2F}
// *********************************************************************//
interface ITextStyle  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Number(long PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Step(double* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_Step(double PVal/*[in]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE get_Align(ksAlignEnum* PVal/*[out,retval]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE set_Align(ksAlignEnum PVal/*[in]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_IndentedLine(double* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_IndentedLine(double PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_StepBeforeParagraph(double* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_StepBeforeParagraph(double PVal/*[in]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_StepAfterParagraph(double* PVal/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE set_StepAfterParagraph(double PVal/*[in]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_LeftEdge(double* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE set_LeftEdge(double PVal/*[in]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE get_RightEdge(double* PVal/*[out,retval]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE set_RightEdge(double PVal/*[in]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_Extended(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE set_Extended(TOLEBOOL PVal/*[in]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_LinesCount(long* PVal/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE set_LinesCount(long PVal/*[in]*/) = 0;
  // [12]      .
  virtual HRESULT STDMETHODCALLTYPE get_EnableLine1(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [12]      .
  virtual HRESULT STDMETHODCALLTYPE set_EnableLine1(TOLEBOOL PVal/*[in]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE get_Height1(double* PVal/*[out,retval]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE set_Height1(double PVal/*[in]*/) = 0;
  // [14]     .
  virtual HRESULT STDMETHODCALLTYPE get_WidthFactor1(double* PVal/*[out,retval]*/) = 0;
  // [14]     .
  virtual HRESULT STDMETHODCALLTYPE set_WidthFactor1(double PVal/*[in]*/) = 0;
  // [15]    .
  virtual HRESULT STDMETHODCALLTYPE get_Step1(double* PVal/*[out,retval]*/) = 0;
  // [15]    .
  virtual HRESULT STDMETHODCALLTYPE set_Step1(double PVal/*[in]*/) = 0;
  // [16]      .
  virtual HRESULT STDMETHODCALLTYPE get_EnableLine2(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [16]      .
  virtual HRESULT STDMETHODCALLTYPE set_EnableLine2(TOLEBOOL PVal/*[in]*/) = 0;
  // [17]    .
  virtual HRESULT STDMETHODCALLTYPE get_Height2(double* PVal/*[out,retval]*/) = 0;
  // [17]    .
  virtual HRESULT STDMETHODCALLTYPE set_Height2(double PVal/*[in]*/) = 0;
  // [18]     .
  virtual HRESULT STDMETHODCALLTYPE get_WidthFactor2(double* PVal/*[out,retval]*/) = 0;
  // [18]     .
  virtual HRESULT STDMETHODCALLTYPE set_WidthFactor2(double PVal/*[in]*/) = 0;
  // [19]    .
  virtual HRESULT STDMETHODCALLTYPE get_Step2(double* PVal/*[out,retval]*/) = 0;
  // [19]    .
  virtual HRESULT STDMETHODCALLTYPE set_Step2(double PVal/*[in]*/) = 0;
  // [20]      .
  virtual HRESULT STDMETHODCALLTYPE get_EnableLine3(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [20]      .
  virtual HRESULT STDMETHODCALLTYPE set_EnableLine3(TOLEBOOL PVal/*[in]*/) = 0;
  // [21]    .
  virtual HRESULT STDMETHODCALLTYPE get_Height3(double* PVal/*[out,retval]*/) = 0;
  // [21]    .
  virtual HRESULT STDMETHODCALLTYPE set_Height3(double PVal/*[in]*/) = 0;
  // [22]     .
  virtual HRESULT STDMETHODCALLTYPE get_WidthFactor3(double* PVal/*[out,retval]*/) = 0;
  // [22]     .
  virtual HRESULT STDMETHODCALLTYPE set_WidthFactor3(double PVal/*[in]*/) = 0;
  // [23]    .
  virtual HRESULT STDMETHODCALLTYPE get_Step3(double* PVal/*[out,retval]*/) = 0;
  // [23]    .
  virtual HRESULT STDMETHODCALLTYPE set_Step3(double PVal/*[in]*/) = 0;
  // [24]  .
  virtual HRESULT STDMETHODCALLTYPE get_Font(Kompasltapi7_tlb::ITextFontPtr* PVal/*[out,retval]*/) = 0;
  // [25]   .
  virtual HRESULT STDMETHODCALLTYPE get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  double __fastcall get_Step(void)
  {
    double PVal;
    OLECHECK(this->get_Step((double*)&PVal));
    return PVal;
  }

  ksAlignEnum __fastcall get_Align(void)
  {
    ksAlignEnum PVal;
    OLECHECK(this->get_Align((ksAlignEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_IndentedLine(void)
  {
    double PVal;
    OLECHECK(this->get_IndentedLine((double*)&PVal));
    return PVal;
  }

  double __fastcall get_StepBeforeParagraph(void)
  {
    double PVal;
    OLECHECK(this->get_StepBeforeParagraph((double*)&PVal));
    return PVal;
  }

  double __fastcall get_StepAfterParagraph(void)
  {
    double PVal;
    OLECHECK(this->get_StepAfterParagraph((double*)&PVal));
    return PVal;
  }

  double __fastcall get_LeftEdge(void)
  {
    double PVal;
    OLECHECK(this->get_LeftEdge((double*)&PVal));
    return PVal;
  }

  double __fastcall get_RightEdge(void)
  {
    double PVal;
    OLECHECK(this->get_RightEdge((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Extended(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Extended((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_LinesCount(void)
  {
    long PVal;
    OLECHECK(this->get_LinesCount((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_EnableLine1(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_EnableLine1((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Height1(void)
  {
    double PVal;
    OLECHECK(this->get_Height1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_WidthFactor1(void)
  {
    double PVal;
    OLECHECK(this->get_WidthFactor1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Step1(void)
  {
    double PVal;
    OLECHECK(this->get_Step1((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_EnableLine2(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_EnableLine2((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Height2(void)
  {
    double PVal;
    OLECHECK(this->get_Height2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_WidthFactor2(void)
  {
    double PVal;
    OLECHECK(this->get_WidthFactor2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Step2(void)
  {
    double PVal;
    OLECHECK(this->get_Step2((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_EnableLine3(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_EnableLine3((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Height3(void)
  {
    double PVal;
    OLECHECK(this->get_Height3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_WidthFactor3(void)
  {
    double PVal;
    OLECHECK(this->get_WidthFactor3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Step3(void)
  {
    double PVal;
    OLECHECK(this->get_Step3((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextFontPtr __fastcall get_Font(void)
  {
    Kompasltapi7_tlb::ITextFontPtr PVal;
    OLECHECK(this->get_Font((Kompasltapi7_tlb::ITextFontPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITabulatorsPtr __fastcall get_Tabulators(void)
  {
    Kompasltapi7_tlb::ITabulatorsPtr PVal;
    OLECHECK(this->get_Tabulators((Kompasltapi7_tlb::ITabulatorsPtr*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   long            Number = {read = get_Number, write = set_Number};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   double          IndentedLine = {read = get_IndentedLine, write = set_IndentedLine};
  __property   double          StepBeforeParagraph = {read = get_StepBeforeParagraph, write = set_StepBeforeParagraph};
  __property   double          StepAfterParagraph = {read = get_StepAfterParagraph, write = set_StepAfterParagraph};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   TOLEBOOL        Extended = {read = get_Extended, write = set_Extended};
  __property   long            LinesCount = {read = get_LinesCount, write = set_LinesCount};
  __property   TOLEBOOL        EnableLine1 = {read = get_EnableLine1, write = set_EnableLine1};
  __property   double          Height1 = {read = get_Height1, write = set_Height1};
  __property   double          WidthFactor1 = {read = get_WidthFactor1, write = set_WidthFactor1};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        EnableLine2 = {read = get_EnableLine2, write = set_EnableLine2};
  __property   double          Height2 = {read = get_Height2, write = set_Height2};
  __property   double          WidthFactor2 = {read = get_WidthFactor2, write = set_WidthFactor2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        EnableLine3 = {read = get_EnableLine3, write = set_EnableLine3};
  __property   double          Height3 = {read = get_Height3, write = set_Height3};
  __property   double          WidthFactor3 = {read = get_WidthFactor3, write = set_WidthFactor3};
  __property   double          Step3 = {read = get_Step3, write = set_Step3};
  __property   Kompasltapi7_tlb::ITextFontPtr Font = {read = get_Font};
  __property   Kompasltapi7_tlb::ITabulatorsPtr Tabulators = {read = get_Tabulators};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITextFont
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6AD008D-58D1-48B5-BD29-E6795289FE4B}
// *********************************************************************//
interface ITextFont  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_FontName(BSTR* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_FontName(BSTR PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(double* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(double PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_WidthFactor(double* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_WidthFactor(double PVal/*[in]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE get_Color(long* PVal/*[out,retval]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE set_Color(long PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Bold(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Bold(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Italic(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Italic(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_Underline(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE set_Underline(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE get_TextLineStep(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE set_TextLineStep(TOLEBOOL PVal/*[in,def,opt]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_FontName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FontName((BSTR*)&PVal));
    return PVal;
  }

  double __fastcall get_Height(void)
  {
    double PVal;
    OLECHECK(this->get_Height((double*)&PVal));
    return PVal;
  }

  double __fastcall get_WidthFactor(void)
  {
    double PVal;
    OLECHECK(this->get_WidthFactor((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Color(void)
  {
    long PVal;
    OLECHECK(this->get_Color((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Bold(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Bold((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Italic(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Italic((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Underline(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Underline((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_TextLineStep(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_TextLineStep((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            FontName = {read = get_FontName, write = set_FontName};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          WidthFactor = {read = get_WidthFactor, write = set_WidthFactor};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   TOLEBOOL        Bold = {read = get_Bold, write = set_Bold};
  __property   TOLEBOOL        Italic = {read = get_Italic, write = set_Italic};
  __property   TOLEBOOL        Underline = {read = get_Underline, write = set_Underline};
  __property   TOLEBOOL        TextLineStep = {read = get_TextLineStep, write = set_TextLineStep};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITabulators
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BB66E097-95C7-49B1-B6FD-3506C7758D09}
// *********************************************************************//
interface ITabulators  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/) = 0;
  // [1]         .
  virtual HRESULT STDMETHODCALLTYPE Add(long Position/*[in]*/, 
                                        Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/) = 0;
  // [2]  ,      .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ITabulatorPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ITabulatorPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ITabulatorPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITabulatorPtr __fastcall Add(long Position/*[in]*/)
  {
    Kompasltapi7_tlb::ITabulatorPtr Result;
    OLECHECK(this->Add(Position, (Kompasltapi7_tlb::ITabulatorPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITabulator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2DD73B92-F8C8-49AA-AECD-B75713427FC1}
// *********************************************************************//
interface ITabulator  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]     * 100.
  virtual HRESULT STDMETHODCALLTYPE get_Position(long* PVal/*[out,retval]*/) = 0;
  // [1]     * 100.
  virtual HRESULT STDMETHODCALLTYPE set_Position(long PVal/*[in]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE get_Align(ksAlignEnum* PVal/*[out,retval]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE set_Align(ksAlignEnum PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Filling(ksTabulatorFillingEnum* PVal/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Filling(ksTabulatorFillingEnum PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Position(void)
  {
    long PVal;
    OLECHECK(this->get_Position((long*)&PVal));
    return PVal;
  }

  ksAlignEnum __fastcall get_Align(void)
  {
    ksAlignEnum PVal;
    OLECHECK(this->get_Align((ksAlignEnum*)&PVal));
    return PVal;
  }

  ksTabulatorFillingEnum __fastcall get_Filling(void)
  {
    ksTabulatorFillingEnum PVal;
    OLECHECK(this->get_Filling((ksTabulatorFillingEnum*)&PVal));
    return PVal;
  }


  __property   long            Position = {read = get_Position, write = set_Position};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   ksTabulatorFillingEnum Filling = {read = get_Filling, write = set_Filling};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationTuningSections
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {01B1BF6F-B9E3-4E94-99A0-81394FB99B16}
// *********************************************************************//
interface ISpecificationTuningSections  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationTuningSectionPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationTuningSectionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationTuningSectionPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationTuningSectionPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationTuningSection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E68AA413-CC35-450D-BF35-0F294F59B08C}
// *********************************************************************//
interface ISpecificationTuningSection  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_SubsectionOn(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE set_SubsectionOn(TOLEBOOL PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_AttachGeometry(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_AttachGeometry(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_PutPosition(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_PutPosition(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_SortObjects(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_SortObjects(TOLEBOOL PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_FirstOnSheet(TOLEBOOL PVal/*[in]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE get_ReserveStringCount(short* PVal/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE set_ReserveStringCount(short PVal/*[in]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Subsections(Kompasltapi7_tlb::ISpecificationSubsectionsPtr* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SubsectionOn(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SubsectionOn((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AttachGeometry(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AttachGeometry((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_PutPosition(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_PutPosition((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SortObjects(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SortObjects((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FirstOnSheet(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FirstOnSheet((TOLEBOOL*)&PVal));
    return PVal;
  }

  short __fastcall get_ReserveStringCount(void)
  {
    short PVal;
    OLECHECK(this->get_ReserveStringCount((short*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationSubsectionsPtr __fastcall get_Subsections(void)
  {
    Kompasltapi7_tlb::ISpecificationSubsectionsPtr PVal;
    OLECHECK(this->get_Subsections((Kompasltapi7_tlb::ISpecificationSubsectionsPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_UseAdditionalBlocks(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UseAdditionalBlocks((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall get_AdditionalBlocks(void)
  {
    Kompasltapi7_tlb::IAdditionalBlockTuningsPtr PVal;
    OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockTuningsPtr*)&PVal));
    return PVal;
  }


  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        SubsectionOn = {read = get_SubsectionOn, write = set_SubsectionOn};
  __property   TOLEBOOL        AttachGeometry = {read = get_AttachGeometry, write = set_AttachGeometry};
  __property   TOLEBOOL        PutPosition = {read = get_PutPosition, write = set_PutPosition};
  __property   TOLEBOOL        SortObjects = {read = get_SortObjects, write = set_SortObjects};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   short           ReserveStringCount = {read = get_ReserveStringCount, write = set_ReserveStringCount};
  __property   Kompasltapi7_tlb::ISpecificationSubsectionsPtr Subsections = {read = get_Subsections};
  __property   TOLEBOOL        UseAdditionalBlocks = {read = get_UseAdditionalBlocks, write = set_UseAdditionalBlocks};
  __property   Kompasltapi7_tlb::IAdditionalBlockTuningsPtr AdditionalBlocks = {read = get_AdditionalBlocks};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationSubsections
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {56532CB4-BD3F-442C-AFA4-0E6BEB677E61}
// *********************************************************************//
interface ISpecificationSubsections  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationSubsectionPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationSubsectionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall Add(BSTR Name/*[in]*/, 
                                                               short Number/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationSubsectionPtr Result;
    OLECHECK(this->Add(Name, Number, (Kompasltapi7_tlb::ISpecificationSubsectionPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationSubsection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7F0E5F63-815C-46E5-B99E-C24244566C00}
// *********************************************************************//
interface ISpecificationSubsection  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Number(short* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE Change(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  short __fastcall get_Number(void)
  {
    short PVal;
    OLECHECK(this->get_Number((short*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Change(BSTR Name/*[in]*/, short Number/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Change(Name, Number, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   short           Number = {read = get_Number};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAdditionalBlockTunings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8910CC92-AC76-4837-AB7A-5FD3C7B74728}
// *********************************************************************//
interface IAdditionalBlockTunings  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]     ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IAdditionalBlockTuningPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAdditionalBlockTuningPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAdditionalBlockTuningPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockTuningPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAdditionalBlockTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CD5B016-9CE9-4E0A-8902-196D11360536}
// *********************************************************************//
interface IAdditionalBlockTuning  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [2]   ,       .
  virtual HRESULT STDMETHODCALLTYPE get_DocumentName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]   ,       .
  virtual HRESULT STDMETHODCALLTYPE set_DocumentName(BSTR PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Use(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Use(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE set_FirstOnSheet(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_Sections(Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_DocumentName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_DocumentName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Use(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Use((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FirstOnSheet(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FirstOnSheet((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr __fastcall get_Sections(void)
  {
    Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr PVal;
    OLECHECK(this->get_Sections((Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr*)&PVal));
    return PVal;
  }


  __property   long            Number = {read = get_Number};
  __property   BSTR            DocumentName = {read = get_DocumentName, write = set_DocumentName};
  __property   TOLEBOOL        Use = {read = get_Use, write = set_Use};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr Sections = {read = get_Sections};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAdditionalBlockSectionTunings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {43EFA203-F956-43D6-B603-87807DDEFD0A}
// *********************************************************************//
interface IAdditionalBlockSectionTunings  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]     ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAdditionalBlockSectionTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E04B8464-C8D6-4BAC-99B5-AE79EBBDB205}
// *********************************************************************//
interface IAdditionalBlockSectionTuning  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Use(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_Use(TOLEBOOL PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Use(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Use((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        Use = {read = get_Use, write = set_Use};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetFormat
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9CDE694-4C33-4375-A6F6-AE94DC759510}
// *********************************************************************//
interface ISheetFormat  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Format(ksDocumentFormatEnum* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Format(ksDocumentFormatEnum PVal/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_FormatMultiplicity(long* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_FormatMultiplicity(long PVal/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_VerticalOrientation(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE set_VerticalOrientation(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_FormatWidth(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE set_FormatWidth(double PVal/*[in]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_FormatHeight(double* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_FormatHeight(double PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksDocumentFormatEnum __fastcall get_Format(void)
  {
    ksDocumentFormatEnum PVal;
    OLECHECK(this->get_Format((ksDocumentFormatEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_FormatMultiplicity(void)
  {
    long PVal;
    OLECHECK(this->get_FormatMultiplicity((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_VerticalOrientation(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_VerticalOrientation((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_FormatWidth(void)
  {
    double PVal;
    OLECHECK(this->get_FormatWidth((double*)&PVal));
    return PVal;
  }

  double __fastcall get_FormatHeight(void)
  {
    double PVal;
    OLECHECK(this->get_FormatHeight((double*)&PVal));
    return PVal;
  }


  __property   ksDocumentFormatEnum Format = {read = get_Format, write = set_Format};
  __property   long            FormatMultiplicity = {read = get_FormatMultiplicity, write = set_FormatMultiplicity};
  __property   TOLEBOOL        VerticalOrientation = {read = get_VerticalOrientation, write = set_VerticalOrientation};
  __property   double          FormatWidth = {read = get_FormatWidth, write = set_FormatWidth};
  __property   double          FormatHeight = {read = get_FormatHeight, write = set_FormatHeight};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationColumnStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {41529A95-51F0-44B0-9D55-5753BCEB23BC}
// *********************************************************************//
interface ISpecificationColumnStyles  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationColumnStylePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationColumnStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationColumnStylePtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnStylePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationColumnStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {16839CAA-3AFB-49A4-A19A-C61963967649}
// *********************************************************************//
interface ISpecificationColumnStyle  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_Edit(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE get_CalculateSum(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]      .
  virtual HRESULT STDMETHODCALLTYPE get_MultiplyToCount(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]      .
  virtual HRESULT STDMETHODCALLTYPE get_UseForSectionTitle(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]     .
  virtual HRESULT STDMETHODCALLTYPE get_TextDown(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]     .
  virtual HRESULT STDMETHODCALLTYPE get_StampLinkID(long* PVal/*[out,retval]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/) = 0;
  // [11]         - .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeLibraryName(BSTR* PVal/*[out,retval]*/) = 0;
  // [12]       - .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeKey1(long* PVal/*[out,retval]*/) = 0;
  // [13]       - .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeKey2(long* PVal/*[out,retval]*/) = 0;
  // [14]       - .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeKey3(long* PVal/*[out,retval]*/) = 0;
  // [15]       - .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeKey4(long* PVal/*[out,retval]*/) = 0;
  // [16]  .
  virtual HRESULT STDMETHODCALLTYPE get_MinValue(double* PVal/*[out,retval]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE get_MaxValue(double* PVal/*[out,retval]*/) = 0;
  // [18]   .
  virtual HRESULT STDMETHODCALLTYPE get_UseIn3D(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  ksSpecificationColumnTypeEnum __fastcall get_ColumnType(void)
  {
    ksSpecificationColumnTypeEnum PVal;
    OLECHECK(this->get_ColumnType((ksSpecificationColumnTypeEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Edit(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Edit((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CalculateSum(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CalculateSum((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_MultiplyToCount(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_MultiplyToCount((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_UseForSectionTitle(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UseForSectionTitle((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_TextDown(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_TextDown((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_StampLinkID(void)
  {
    long PVal;
    OLECHECK(this->get_StampLinkID((long*)&PVal));
    return PVal;
  }

  ksValueTypeEnum __fastcall get_ValueType(void)
  {
    ksValueTypeEnum PVal;
    OLECHECK(this->get_ValueType((ksValueTypeEnum*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_AttributeLibraryName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_AttributeLibraryName((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_AttributeKey1(void)
  {
    long PVal;
    OLECHECK(this->get_AttributeKey1((long*)&PVal));
    return PVal;
  }

  long __fastcall get_AttributeKey2(void)
  {
    long PVal;
    OLECHECK(this->get_AttributeKey2((long*)&PVal));
    return PVal;
  }

  long __fastcall get_AttributeKey3(void)
  {
    long PVal;
    OLECHECK(this->get_AttributeKey3((long*)&PVal));
    return PVal;
  }

  long __fastcall get_AttributeKey4(void)
  {
    long PVal;
    OLECHECK(this->get_AttributeKey4((long*)&PVal));
    return PVal;
  }

  double __fastcall get_MinValue(void)
  {
    double PVal;
    OLECHECK(this->get_MinValue((double*)&PVal));
    return PVal;
  }

  double __fastcall get_MaxValue(void)
  {
    double PVal;
    OLECHECK(this->get_MaxValue((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_UseIn3D(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UseIn3D((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   ksSpecificationColumnTypeEnum ColumnType = {read = get_ColumnType};
  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        Edit = {read = get_Edit};
  __property   TOLEBOOL        CalculateSum = {read = get_CalculateSum};
  __property   TOLEBOOL        MultiplyToCount = {read = get_MultiplyToCount};
  __property   TOLEBOOL        UseForSectionTitle = {read = get_UseForSectionTitle};
  __property   TOLEBOOL        TextDown = {read = get_TextDown};
  __property   long            StampLinkID = {read = get_StampLinkID};
  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   BSTR            AttributeLibraryName = {read = get_AttributeLibraryName};
  __property   long            AttributeKey1 = {read = get_AttributeKey1};
  __property   long            AttributeKey2 = {read = get_AttributeKey2};
  __property   long            AttributeKey3 = {read = get_AttributeKey3};
  __property   long            AttributeKey4 = {read = get_AttributeKey4};
  __property   double          MinValue = {read = get_MinValue};
  __property   double          MaxValue = {read = get_MaxValue};
  __property   TOLEBOOL        UseIn3D = {read = get_UseIn3D};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationSectionStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {24AE8484-F4F4-4059-AFC7-9492A64C88E8}
// *********************************************************************//
interface ISpecificationSectionStyles  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationSectionStylePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationSectionStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationSectionStylePtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationSectionStylePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationSectionStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4B61FC7F-4826-4B58-8CCB-7D459AD0BE7B}
// *********************************************************************//
interface ISpecificationSectionStyle  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [3]       .
  virtual HRESULT STDMETHODCALLTYPE get_SortColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]      .
  virtual HRESULT STDMETHODCALLTYPE get_SortColumnNumber(long* PVal/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_FillDataFromStamp(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_SortType(ksSortTypeEnum* PVal/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  ksSpecificationColumnTypeEnum __fastcall get_SortColumnType(void)
  {
    ksSpecificationColumnTypeEnum PVal;
    OLECHECK(this->get_SortColumnType((ksSpecificationColumnTypeEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_SortColumnNumber(void)
  {
    long PVal;
    OLECHECK(this->get_SortColumnNumber((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FillDataFromStamp(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FillDataFromStamp((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksSortTypeEnum __fastcall get_SortType(void)
  {
    ksSortTypeEnum PVal;
    OLECHECK(this->get_SortType((ksSortTypeEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_Columns(void)
  {
    Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
    OLECHECK(this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_AdditionalColumns(void)
  {
    Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
    OLECHECK(this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall get_AdditionalBlocks(void)
  {
    Kompasltapi7_tlb::IAdditionalBlockStylesPtr PVal;
    OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockStylesPtr*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   long            Number = {read = get_Number};
  __property   ksSpecificationColumnTypeEnum SortColumnType = {read = get_SortColumnType};
  __property   long            SortColumnNumber = {read = get_SortColumnNumber};
  __property   TOLEBOOL        FillDataFromStamp = {read = get_FillDataFromStamp};
  __property   ksSortTypeEnum SortType = {read = get_SortType};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAdditionalBlockStylesPtr AdditionalBlocks = {read = get_AdditionalBlocks};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAdditionalBlockStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {90E2FBEC-A56F-423C-B89F-479673EDD895}
// *********************************************************************//
interface IAdditionalBlockStyles  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IAdditionalBlockStylePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAdditionalBlockStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAdditionalBlockStylePtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockStylePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAdditionalBlockStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2A43FA6-9BCE-4468-9662-811A6255E220}
// *********************************************************************//
interface IAdditionalBlockStyle  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   long            Number = {read = get_Number};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationBaseObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2B97D19-3A0B-4C9F-A6AC-DEFFAFE0D1C2}
// *********************************************************************//
interface ISpecificationBaseObjects  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,   ,      .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/) = 0;
  // [1]      .
  virtual HRESULT STDMETHODCALLTYPE Add(long SectionNumb/*[in]*/, double AttrNumb/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]         SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH   VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                                   TOLEBOOL Equal/*[in]*/, 
                                                                   long SectionNumb/*[in]*/, 
                                                                   double AttrNumb/*[in]*/, 
                                                                   TVariant* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall Add(long SectionNumb/*[in]*/, 
                                                               double AttrNumb/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
    OLECHECK(this->Add(SectionNumb, AttrNumb, (Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result));
    return Result;
  }

  TVariant __fastcall GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                     TOLEBOOL Equal/*[in]*/, 
                                                     long SectionNumb/*[in]*/, 
                                                     double AttrNumb/*[in]*/)
  {
    TVariant PVal;
    OLECHECK(this->GetSpecificationObjectsForGeom(PGeom, Equal, SectionNumb, AttrNumb, (TVariant*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {72EB4E8E-7952-4B36-852B-4816B7B5AFEE}
// *********************************************************************//
interface ISpecificationObject  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [100]  .
  virtual HRESULT STDMETHODCALLTYPE get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/) = 0;
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_Section(long* PVal/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_Subsection(long* PVal/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE set_Subsection(long PVal/*[in]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalSection(long* PVal/*[out,retval]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE set_AdditionalSection(long PVal/*[in]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalBlock(long* PVal/*[out,retval]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE set_AdditionalBlock(long PVal/*[in]*/) = 0;
  // [105]   .
  virtual HRESULT STDMETHODCALLTYPE get_NestedSection(long* PVal/*[out,retval]*/) = 0;
  // [105]   .
  virtual HRESULT STDMETHODCALLTYPE set_NestedSection(long PVal/*[in]*/) = 0;
  // [106]    .
  virtual HRESULT STDMETHODCALLTYPE get_NestedBlock(long* PVal/*[out,retval]*/) = 0;
  // [106]    .
  virtual HRESULT STDMETHODCALLTYPE set_NestedBlock(long PVal/*[in]*/) = 0;
  // [107]  .
  virtual HRESULT STDMETHODCALLTYPE get_BlockNumberByIndex(long Val/*[in]*/, 
                                                           long* PVal/*[out,retval]*/) = 0;
  // [108]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_UniqueNumber(double* PVal/*[out,retval]*/) = 0;
  // [109]  .
  virtual HRESULT STDMETHODCALLTYPE get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/) = 0;
  // [110]       .
  virtual HRESULT STDMETHODCALLTYPE get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [110]       .
  virtual HRESULT STDMETHODCALLTYPE set_FirstOnSheet(TOLEBOOL PVal/*[in]*/) = 0;
  // [111]   .
  virtual HRESULT STDMETHODCALLTYPE get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [111]   .
  virtual HRESULT STDMETHODCALLTYPE set_IncrementPosition(TOLEBOOL PVal/*[in]*/) = 0;
  // [112] .
  virtual HRESULT STDMETHODCALLTYPE get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/) = 0;
  // [113]  .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/) = 0;
  // [114]  .
  virtual HRESULT STDMETHODCALLTYPE get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/) = 0;
  // [115]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [116]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [117]  .
  virtual HRESULT STDMETHODCALLTYPE Edit(TOLEBOOL* PRes/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksSpecificationObjectTypeEnum __fastcall get_ObjectType(void)
  {
    ksSpecificationObjectTypeEnum PVal;
    OLECHECK(this->get_ObjectType((ksSpecificationObjectTypeEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_Section(void)
  {
    long PVal;
    OLECHECK(this->get_Section((long*)&PVal));
    return PVal;
  }

  long __fastcall get_Subsection(void)
  {
    long PVal;
    OLECHECK(this->get_Subsection((long*)&PVal));
    return PVal;
  }

  long __fastcall get_AdditionalSection(void)
  {
    long PVal;
    OLECHECK(this->get_AdditionalSection((long*)&PVal));
    return PVal;
  }

  long __fastcall get_AdditionalBlock(void)
  {
    long PVal;
    OLECHECK(this->get_AdditionalBlock((long*)&PVal));
    return PVal;
  }

  long __fastcall get_NestedSection(void)
  {
    long PVal;
    OLECHECK(this->get_NestedSection((long*)&PVal));
    return PVal;
  }

  long __fastcall get_NestedBlock(void)
  {
    long PVal;
    OLECHECK(this->get_NestedBlock((long*)&PVal));
    return PVal;
  }

  long __fastcall get_BlockNumberByIndex(long Val/*[in]*/)
  {
    long PVal;
    OLECHECK(this->get_BlockNumberByIndex(Val, (long*)&PVal));
    return PVal;
  }

  double __fastcall get_UniqueNumber(void)
  {
    double PVal;
    OLECHECK(this->get_UniqueNumber((double*)&PVal));
    return PVal;
  }

  ksSpecificationObjectStateEnum __fastcall get_State(void)
  {
    ksSpecificationObjectStateEnum PVal;
    OLECHECK(this->get_State((ksSpecificationObjectStateEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FirstOnSheet(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FirstOnSheet((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_IncrementPosition(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_IncrementPosition((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_Columns(void)
  {
    Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
    OLECHECK(this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_AdditionalColumns(void)
  {
    Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
    OLECHECK(this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void)
  {
    Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
    OLECHECK(this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Edit(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Edit((TOLEBOOL*)&PRes));
    return PRes;
  }


  __property   ksSpecificationObjectTypeEnum ObjectType = {read = get_ObjectType};
  __property   long            Section = {read = get_Section};
  __property   long            Subsection = {read = get_Subsection, write = set_Subsection};
  __property   long            AdditionalSection = {read = get_AdditionalSection, write = set_AdditionalSection};
  __property   long            AdditionalBlock = {read = get_AdditionalBlock, write = set_AdditionalBlock};
  __property   long            NestedSection = {read = get_NestedSection, write = set_NestedSection};
  __property   long            NestedBlock = {read = get_NestedBlock, write = set_NestedBlock};
  __property   double          UniqueNumber = {read = get_UniqueNumber};
  __property   ksSpecificationObjectStateEnum State = {read = get_State};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   TOLEBOOL        IncrementPosition = {read = get_IncrementPosition, write = set_IncrementPosition};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationBaseObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {49994ED8-96BA-4D9D-B642-5F0F1E3FED16}
// *********************************************************************//
interface ISpecificationBaseObject  : public Kompasltapi7_tlb::ISpecificationObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Draw(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Draw(TOLEBOOL PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_DrawPosition(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_DrawPosition(TOLEBOOL PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Performance(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Performance(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/) = 0;
  // [5]      .
  virtual HRESULT STDMETHODCALLTYPE get_Documents(TVariant* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeNumber(double* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_AttributeNumber(double PVal/*[in]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                                     long BlockNumber/*[in]*/, 
                                                     double* PVal/*[out,retval]*/) = 0;
  // [8]          .
  virtual HRESULT STDMETHODCALLTYPE SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_Geometry(TVariant* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_Geometry(TVariant PVal) = 0;
  // [10]     .
  virtual HRESULT STDMETHODCALLTYPE IncludeGeometry(TVariantInParam PVal/*[in]*/, 
                                                    TOLEBOOL FillText/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]     .
  virtual HRESULT STDMETHODCALLTYPE ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                                  TOLEBOOL ClearLeaders/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Draw(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Draw((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DrawPosition(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DrawPosition((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Performance(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Performance((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall get_CommentObjects(void)
  {
    Kompasltapi7_tlb::ISpecificationCommentObjectsPtr Result;
    OLECHECK(this->get_CommentObjects((Kompasltapi7_tlb::ISpecificationCommentObjectsPtr*)&Result));
    return Result;
  }

  TVariant __fastcall get_Documents(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Documents((TVariant*)&PVal));
    return PVal;
  }

  double __fastcall get_AttributeNumber(void)
  {
    double PVal;
    OLECHECK(this->get_AttributeNumber((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SummaryCount(long ColumnTypeNumber/*[in]*/, long BlockNumber/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_SummaryCount(ColumnTypeNumber, BlockNumber, (double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetMaterial(Material, Density, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Geometry(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Geometry((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall IncludeGeometry(TVariantInParam PVal/*[in]*/, TOLEBOOL FillText/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->IncludeGeometry(PVal, FillText, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, TOLEBOOL ClearLeaders/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ClearGeometry(ClearGeometry, ClearLeaders, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Draw = {read = get_Draw, write = set_Draw};
  __property   TOLEBOOL        DrawPosition = {read = get_DrawPosition, write = set_DrawPosition};
  __property   TOLEBOOL        Performance = {read = get_Performance, write = set_Performance};
  __property   Kompasltapi7_tlb::ISpecificationCommentObjectsPtr CommentObjects = {read = get_CommentObjects};
  __property   double          AttributeNumber = {read = get_AttributeNumber, write = set_AttributeNumber};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationColumns
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9F44BF03-DE25-4DDE-ADA0-92384199C100}
// *********************************************************************//
interface ISpecificationColumns  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/) = 0;
  // [1]    ,   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                               long ColumnNumber/*[in]*/, long BlockNumber/*[in]*/, 
                                               Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationColumnPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                                                  long ColumnNumber/*[in]*/, 
                                                                  long BlockNumber/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationColumnPtr Result;
    OLECHECK(this->get_Column(ColumnType, ColumnNumber, BlockNumber, (Kompasltapi7_tlb::ISpecificationColumnPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationColumn
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3ECFB777-2645-42B5-A6ED-111688433B26}
// *********************************************************************//
interface ISpecificationColumn  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnTypeNumber(long* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_BlockNumber(long* PVal/*[out,retval]*/) = 0;
  // [4]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnItems(Kompasltapi7_tlb::ISpecificationColumnItemsPtr* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeNumber(double* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE set_AttributeNumber(double PVal/*[in]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksSpecificationColumnTypeEnum __fastcall get_ColumnType(void)
  {
    ksSpecificationColumnTypeEnum PVal;
    OLECHECK(this->get_ColumnType((ksSpecificationColumnTypeEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_ColumnTypeNumber(void)
  {
    long PVal;
    OLECHECK(this->get_ColumnTypeNumber((long*)&PVal));
    return PVal;
  }

  long __fastcall get_BlockNumber(void)
  {
    long PVal;
    OLECHECK(this->get_BlockNumber((long*)&PVal));
    return PVal;
  }

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  ksValueTypeEnum __fastcall get_ValueType(void)
  {
    ksValueTypeEnum PVal;
    OLECHECK(this->get_ValueType((ksValueTypeEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecificationColumnItemsPtr __fastcall get_ColumnItems(void)
  {
    Kompasltapi7_tlb::ISpecificationColumnItemsPtr PVal;
    OLECHECK(this->get_ColumnItems((Kompasltapi7_tlb::ISpecificationColumnItemsPtr*)&PVal));
    return PVal;
  }

  double __fastcall get_AttributeNumber(void)
  {
    double PVal;
    OLECHECK(this->get_AttributeNumber((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   ksSpecificationColumnTypeEnum ColumnType = {read = get_ColumnType};
  __property   long            ColumnTypeNumber = {read = get_ColumnTypeNumber};
  __property   long            BlockNumber = {read = get_BlockNumber};
  __property   long            Number = {read = get_Number};
  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   Kompasltapi7_tlb::ISpecificationColumnItemsPtr ColumnItems = {read = get_ColumnItems};
  __property   double          AttributeNumber = {read = get_AttributeNumber, write = set_AttributeNumber};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationColumnItems
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F4BAB79A-8A35-44D5-BE44-C566E444F342}
// *********************************************************************//
interface ISpecificationColumnItems  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]     ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationColumnItemPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationColumnItemPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationColumnItemPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnItemPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationColumnItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2BABDD01-EACA-4137-9749-25B8C5E230EE}
// *********************************************************************//
interface ISpecificationColumnItem  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/) = 0;
  // [2]  : 0 -  , >0   .
  virtual HRESULT STDMETHODCALLTYPE get_Key(short* PVal/*[out,retval]*/) = 0;
  // [2]  : 0 -  , >0   .
  virtual HRESULT STDMETHODCALLTYPE set_Key(short PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Value(TVariant* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Value(TVariantInParam PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksValueTypeEnum __fastcall get_ValueType(void)
  {
    ksValueTypeEnum PVal;
    OLECHECK(this->get_ValueType((ksValueTypeEnum*)&PVal));
    return PVal;
  }

  short __fastcall get_Key(void)
  {
    short PVal;
    OLECHECK(this->get_Key((short*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Value(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Value((TVariant*)&PVal));
    return PVal;
  }


  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   short           Key = {read = get_Key, write = set_Key};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {99B840FC-0150-4DAD-BC0E-AD481BAAB8C2}
// *********************************************************************//
interface IText  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [2001] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [2001] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [2002]  SAFEARRAY  .
  virtual HRESULT STDMETHODCALLTYPE get_TextLines(TVariant* Result/*[out,retval]*/) = 0;
  // [2003]   .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Result/*[out,retval]*/) = 0;
  // [2004]     .
  virtual HRESULT STDMETHODCALLTYPE get_TextLine(long Index/*[in]*/, 
                                                 Kompasltapi7_tlb::ITextLinePtr* Result/*[out,retval]*/) = 0;
  // [2005]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/) = 0;
  // [2006]       .
  virtual HRESULT STDMETHODCALLTYPE AddBefore(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/) = 0;
  // [2007]    .
  virtual HRESULT STDMETHODCALLTYPE get_Str(BSTR* PVal/*[out,retval]*/) = 0;
  // [2007]    .
  virtual HRESULT STDMETHODCALLTYPE set_Str(BSTR PVal/*[in]*/) = 0;
  // [2008] .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [2009]   c  .
  virtual HRESULT STDMETHODCALLTYPE AddTextLine(ksTextLineType Type/*[in]*/, 
                                                BSTR FileName/*[in]*/, 
                                                Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/) = 0;
  // [2010]   c       .
  virtual HRESULT STDMETHODCALLTYPE AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                                      long Index/*[in]*/, BSTR FileName/*[in]*/, 
                                                      Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/) = 0;
  // [2011]  .
  virtual HRESULT STDMETHODCALLTYPE Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, 
                                            TOLEBOOL Case/*[in,def,opt]*/, 
                                            TOLEBOOL WordOnly/*[in,def,opt]*/, 
                                            TOLEBOOL ReplaceAll/*[in,def,opt]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2012]  .
  virtual HRESULT STDMETHODCALLTYPE Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/, 
                                           TOLEBOOL* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  TVariant __fastcall get_TextLines(void)
  {
    TVariant Result;
    OLECHECK(this->get_TextLines((TVariant*)&Result));
    return Result;
  }

  long __fastcall get_Count(void)
  {
    long Result;
    OLECHECK(this->get_Count((long*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_TextLine(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ITextLinePtr Result;
    OLECHECK(this->get_TextLine(Index, (Kompasltapi7_tlb::ITextLinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ITextLinePtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::ITextLinePtr*)&Value));
    return Value;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall AddBefore(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ITextLinePtr Value;
    OLECHECK(this->AddBefore(Index, (Kompasltapi7_tlb::ITextLinePtr*)&Value));
    return Value;
  }

  BSTR __fastcall get_Str(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Str((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Value;
    OLECHECK(this->Clear((TOLEBOOL*)&Value));
    return Value;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall AddTextLine(ksTextLineType Type/*[in]*/, 
                                                        BSTR FileName/*[in]*/)
  {
    Kompasltapi7_tlb::ITextLinePtr Value;
    OLECHECK(this->AddTextLine(Type, FileName, (Kompasltapi7_tlb::ITextLinePtr*)&Value));
    return Value;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                                              long Index/*[in]*/, 
                                                              BSTR FileName/*[in]*/)
  {
    Kompasltapi7_tlb::ITextLinePtr Value;
    OLECHECK(this->AddTextLineBefore(Type, Index, FileName, (Kompasltapi7_tlb::ITextLinePtr*)&Value));
    return Value;
  }

  TOLEBOOL __fastcall Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, 
                              TOLEBOOL Case/*[in,def,opt]*/, TOLEBOOL WordOnly/*[in,def,opt]*/, 
                              TOLEBOOL ReplaceAll/*[in,def,opt]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Replace(SrcText, NewText, Case, WordOnly, ReplaceAll, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/)
  {
    TOLEBOOL Value;
    OLECHECK(this->Assign(Other, (TOLEBOOL*)&Value));
    return Value;
  }


  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Count = {read = get_Count};
  __property   BSTR            Str = {read = get_Str, write = set_Str};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITextLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AAB72FE2-DEA3-4FB6-B0DD-B926249EF67C}
// *********************************************************************//
interface ITextLine  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [1] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [2]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE get_TextItems(TVariant* Result/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Result/*[out,retval]*/) = 0;
  // [4]      .
  virtual HRESULT STDMETHODCALLTYPE get_TextItem(long Index/*[in]*/, 
                                                 Kompasltapi7_tlb::ITextItemPtr* Result/*[out,retval]*/) = 0;
  // [5]       .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/) = 0;
  // [6]         .
  virtual HRESULT STDMETHODCALLTYPE AddBefore(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_Str(BSTR* PVal/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE set_Str(BSTR PVal/*[in]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_Step(double* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_Step(double PVal/*[in]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE get_Align(ksAlignEnum* PVal/*[out,retval]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE set_Align(ksAlignEnum PVal/*[in]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE get_IndentedLine(double* PVal/*[out,retval]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE set_IndentedLine(double PVal/*[in]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE get_StepBeforeParagraph(double* PVal/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE set_StepBeforeParagraph(double PVal/*[in]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE get_StepAfterParagraph(double* PVal/*[out,retval]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE set_StepAfterParagraph(double PVal/*[in]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE get_LeftEdge(double* PVal/*[out,retval]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE set_LeftEdge(double PVal/*[in]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE get_RightEdge(double* PVal/*[out,retval]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE set_RightEdge(double PVal/*[in]*/) = 0;
  // [16]   .
  virtual HRESULT STDMETHODCALLTYPE get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE get_Level(long* Result/*[out,retval]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE set_Level(long Result/*[in]*/) = 0;
  // [18]   .
  virtual HRESULT STDMETHODCALLTYPE get_Numbering(ksTextNumberingEnum* Result/*[out,retval]*/) = 0;
  // [18]   .
  virtual HRESULT STDMETHODCALLTYPE set_Numbering(ksTextNumberingEnum Result/*[in]*/) = 0;
  // [19]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [20]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextLineType(ksTextLineType* Result/*[out,retval]*/) = 0;
  // [21]    .
  virtual HRESULT STDMETHODCALLTYPE get_TextLineData(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;
  // [22]       ( Ctrl+Enter ).
  virtual HRESULT STDMETHODCALLTYPE get_NewPage(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [22]       ( Ctrl+Enter ).
  virtual HRESULT STDMETHODCALLTYPE set_NewPage(TOLEBOOL Result/*[in]*/) = 0;
  // [23]  .
  virtual HRESULT STDMETHODCALLTYPE Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/, 
                                           TOLEBOOL* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  TVariant __fastcall get_TextItems(void)
  {
    TVariant Result;
    OLECHECK(this->get_TextItems((TVariant*)&Result));
    return Result;
  }

  long __fastcall get_Count(void)
  {
    long Result;
    OLECHECK(this->get_Count((long*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextItemPtr __fastcall get_TextItem(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ITextItemPtr Result;
    OLECHECK(this->get_TextItem(Index, (Kompasltapi7_tlb::ITextItemPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextItemPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ITextItemPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::ITextItemPtr*)&Value));
    return Value;
  }

  Kompasltapi7_tlb::ITextItemPtr __fastcall AddBefore(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ITextItemPtr Value;
    OLECHECK(this->AddBefore(Index, (Kompasltapi7_tlb::ITextItemPtr*)&Value));
    return Value;
  }

  BSTR __fastcall get_Str(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Str((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Value;
    OLECHECK(this->Clear((TOLEBOOL*)&Value));
    return Value;
  }

  double __fastcall get_Step(void)
  {
    double PVal;
    OLECHECK(this->get_Step((double*)&PVal));
    return PVal;
  }

  ksAlignEnum __fastcall get_Align(void)
  {
    ksAlignEnum PVal;
    OLECHECK(this->get_Align((ksAlignEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_IndentedLine(void)
  {
    double PVal;
    OLECHECK(this->get_IndentedLine((double*)&PVal));
    return PVal;
  }

  double __fastcall get_StepBeforeParagraph(void)
  {
    double PVal;
    OLECHECK(this->get_StepBeforeParagraph((double*)&PVal));
    return PVal;
  }

  double __fastcall get_StepAfterParagraph(void)
  {
    double PVal;
    OLECHECK(this->get_StepAfterParagraph((double*)&PVal));
    return PVal;
  }

  double __fastcall get_LeftEdge(void)
  {
    double PVal;
    OLECHECK(this->get_LeftEdge((double*)&PVal));
    return PVal;
  }

  double __fastcall get_RightEdge(void)
  {
    double PVal;
    OLECHECK(this->get_RightEdge((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITabulatorsPtr __fastcall get_Tabulators(void)
  {
    Kompasltapi7_tlb::ITabulatorsPtr PVal;
    OLECHECK(this->get_Tabulators((Kompasltapi7_tlb::ITabulatorsPtr*)&PVal));
    return PVal;
  }

  long __fastcall get_Level(void)
  {
    long Result;
    OLECHECK(this->get_Level((long*)&Result));
    return Result;
  }

  ksTextNumberingEnum __fastcall get_Numbering(void)
  {
    ksTextNumberingEnum Result;
    OLECHECK(this->get_Numbering((ksTextNumberingEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL Value;
    OLECHECK(this->Delete((TOLEBOOL*)&Value));
    return Value;
  }

  ksTextLineType __fastcall get_TextLineType(void)
  {
    ksTextLineType Result;
    OLECHECK(this->get_TextLineType((ksTextLineType*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_TextLineData(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->get_TextLineData((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_NewPage(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_NewPage((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/)
  {
    TOLEBOOL Value;
    OLECHECK(this->Assign(Other, (TOLEBOOL*)&Value));
    return Value;
  }


  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Count = {read = get_Count};
  __property   BSTR            Str = {read = get_Str, write = set_Str};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   double          IndentedLine = {read = get_IndentedLine, write = set_IndentedLine};
  __property   double          StepBeforeParagraph = {read = get_StepBeforeParagraph, write = set_StepBeforeParagraph};
  __property   double          StepAfterParagraph = {read = get_StepAfterParagraph, write = set_StepAfterParagraph};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   Kompasltapi7_tlb::ITabulatorsPtr Tabulators = {read = get_Tabulators};
  __property   long            Level = {read = get_Level, write = set_Level};
  __property   ksTextNumberingEnum Numbering = {read = get_Numbering, write = set_Numbering};
  __property   ksTextLineType TextLineType = {read = get_TextLineType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr TextLineData = {read = get_TextLineData};
  __property   TOLEBOOL        NewPage = {read = get_NewPage, write = set_NewPage};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITextItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1DE74AFB-5026-4B85-861F-F0CFDBD443E6}
// *********************************************************************//
interface ITextItem  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [2001]   .
  virtual HRESULT STDMETHODCALLTYPE get_ItemType(ksTextItemEnum* PVal/*[out,retval]*/) = 0;
  // [2001]   .
  virtual HRESULT STDMETHODCALLTYPE set_ItemType(ksTextItemEnum PVal/*[in]*/) = 0;
  // [2002]    .
  virtual HRESULT STDMETHODCALLTYPE get_Str(BSTR* Result/*[out,retval]*/) = 0;
  // [2002]    .
  virtual HRESULT STDMETHODCALLTYPE set_Str(BSTR Result/*[in]*/) = 0;
  // [2003]    .
  virtual HRESULT STDMETHODCALLTYPE get_SymbolFontName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2003]    .
  virtual HRESULT STDMETHODCALLTYPE set_SymbolFontName(BSTR PVal/*[in]*/) = 0;
  // [2004]  ,    .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* Result/*[out,retval]*/) = 0;
  // [2004]  ,    .
  virtual HRESULT STDMETHODCALLTYPE set_Number(long Result/*[in]*/) = 0;
  // [2005]     , ,   .
  virtual HRESULT STDMETHODCALLTYPE get_SizeFactor(ksTextSizeEnum* PVal/*[out,retval]*/) = 0;
  // [2005]     , ,   .
  virtual HRESULT STDMETHODCALLTYPE set_SizeFactor(ksTextSizeEnum PVal/*[in]*/) = 0;
  // [2006]   .
  virtual HRESULT STDMETHODCALLTYPE get_NewLine(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2006]   .
  virtual HRESULT STDMETHODCALLTYPE set_NewLine(TOLEBOOL Result/*[in]*/) = 0;
  // [2007]   .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [2008]   .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksTextItemEnum __fastcall get_ItemType(void)
  {
    ksTextItemEnum PVal;
    OLECHECK(this->get_ItemType((ksTextItemEnum*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Str(void)
  {
    BSTR Result = 0;
    OLECHECK(this->get_Str((BSTR*)&Result));
    return Result;
  }

  BSTR __fastcall get_SymbolFontName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_SymbolFontName((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_Number(void)
  {
    long Result;
    OLECHECK(this->get_Number((long*)&Result));
    return Result;
  }

  ksTextSizeEnum __fastcall get_SizeFactor(void)
  {
    ksTextSizeEnum PVal;
    OLECHECK(this->get_SizeFactor((ksTextSizeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_NewLine(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_NewLine((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL Value;
    OLECHECK(this->Delete((TOLEBOOL*)&Value));
    return Value;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }


  __property   ksTextItemEnum ItemType = {read = get_ItemType, write = set_ItemType};
  __property   BSTR            Str = {read = get_Str, write = set_Str};
  __property   BSTR            SymbolFontName = {read = get_SymbolFontName, write = set_SymbolFontName};
  __property   long            Number = {read = get_Number, write = set_Number};
  __property   ksTextSizeEnum SizeFactor = {read = get_SizeFactor, write = set_SizeFactor};
  __property   TOLEBOOL        NewLine = {read = get_NewLine, write = set_NewLine};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAttachedDocuments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {81FAB1C5-F566-4D06-8D3D-17FF01D3566F}
// *********************************************************************//
interface IAttachedDocuments  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/) = 0;
  // [1]         .
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/, 
                                        Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAttachedDocumentPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAttachedDocumentPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/)
  {
    Kompasltapi7_tlb::IAttachedDocumentPtr Result;
    OLECHECK(this->Add(Name, Transmit, (Kompasltapi7_tlb::IAttachedDocumentPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAttachedDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {333E9E11-D161-49AE-9791-8BEDB58B4C78}
// *********************************************************************//
interface IAttachedDocument  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE get_Transmit(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE set_Transmit(TOLEBOOL PVal/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Transmit(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Transmit((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Comment((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   TOLEBOOL        Transmit = {read = get_Transmit, write = set_Transmit};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationCommentObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B8BD0FC7-AB2B-4E7A-8EC2-82060D7D29A7}
// *********************************************************************//
interface ISpecificationCommentObjects  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,   ,      .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/) = 0;
  // [1]      .
  virtual HRESULT STDMETHODCALLTYPE Add(long SectionNamb/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]         (  ).
  virtual HRESULT STDMETHODCALLTYPE Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]         (  ).
  virtual HRESULT STDMETHODCALLTYPE Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationCommentObjectPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationCommentObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall Add(long SectionNamb/*[in]*/)
  {
    Kompasltapi7_tlb::ISpecificationCommentObjectPtr Result;
    OLECHECK(this->Add(SectionNamb, (Kompasltapi7_tlb::ISpecificationCommentObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Attach(PVal, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Detach(PVal, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationCommentObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3B6B80CA-2145-4184-B786-0C571DF5ACD7}
// *********************************************************************//
interface ISpecificationCommentObject  : public Kompasltapi7_tlb::ISpecificationObject
{
public:
  // [1]    ,     .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_BlockNumber(long* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_BlockNumber(long PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result));
    return Result;
  }

  long __fastcall get_BlockNumber(void)
  {
    long PVal;
    OLECHECK(this->get_BlockNumber((long*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISpecificationBaseObjectPtr BaseObject = {read = get_BaseObject};
  __property   long            BlockNumber = {read = get_BlockNumber, write = set_BlockNumber};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayoutSheets
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7AB54196-0B76-4B01-B769-7F47637173C4}
// *********************************************************************//
interface ILayoutSheets  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/) = 0;
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_ItemByNumber(long Number/*[in]*/, 
                                                     Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILayoutSheetPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ILayoutSheetPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall get_ItemByNumber(long Number/*[in]*/)
  {
    Kompasltapi7_tlb::ILayoutSheetPtr Result;
    OLECHECK(this->get_ItemByNumber(Number, (Kompasltapi7_tlb::ILayoutSheetPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ILayoutSheetPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ILayoutSheetPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayoutSheet
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D87B5A80-CF52-4510-ADD9-D1344FFFFC07}
// *********************************************************************//
interface ILayoutSheet  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE get_LayoutLibraryFileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE set_LayoutLibraryFileName(BSTR PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_LayoutStyleNumber(double* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_LayoutStyleNumber(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_Stamp(Kompasltapi7_tlb::IStampPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISheetFormatPtr __fastcall get_Format(void)
  {
    Kompasltapi7_tlb::ISheetFormatPtr PVal;
    OLECHECK(this->get_Format((Kompasltapi7_tlb::ISheetFormatPtr*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LayoutLibraryFileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LayoutLibraryFileName((BSTR*)&PVal));
    return PVal;
  }

  double __fastcall get_LayoutStyleNumber(void)
  {
    double PVal;
    OLECHECK(this->get_LayoutStyleNumber((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IStampPtr __fastcall get_Stamp(void)
  {
    Kompasltapi7_tlb::IStampPtr PVal;
    OLECHECK(this->get_Stamp((Kompasltapi7_tlb::IStampPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISheetFormatPtr Format = {read = get_Format};
  __property   BSTR            LayoutLibraryFileName = {read = get_LayoutLibraryFileName, write = set_LayoutLibraryFileName};
  __property   double          LayoutStyleNumber = {read = get_LayoutStyleNumber, write = set_LayoutStyleNumber};
  __property   Kompasltapi7_tlb::IStampPtr Stamp = {read = get_Stamp};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IStamp
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {250CE350-7C21-47FD-8FF2-C44A9FF177DF}
// *********************************************************************//
interface IStamp  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(long Id/*[in]*/, 
                                             Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE Clear(long Id/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [4]       .
  virtual HRESULT STDMETHODCALLTYPE GetNextColumnId(long Id/*[in]*/, long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(long Id/*[in]*/)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text(Id, (Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Clear(long Id/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Clear(Id, (TOLEBOOL*)&PRes));
    return PRes;
  }

  long __fastcall GetNextColumnId(long Id/*[in]*/)
  {
    long PVal;
    OLECHECK(this->GetNextColumnId(Id, (long*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IUserDataStoragesMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {77A6D4CA-6418-4DEE-B59C-400BFD052375}
// *********************************************************************//
interface IUserDataStoragesMng  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,        
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/) = 0;
  // [1]          
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                        Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/) = 0;
  // [2]    ,        .
  virtual HRESULT STDMETHODCALLTYPE Delete(TVariantInParam Index/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]     .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IUserDataStoragesPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IUserDataStoragesPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
  {
    Kompasltapi7_tlb::IUserDataStoragesPtr Result;
    OLECHECK(this->Add(Object, (Kompasltapi7_tlb::IUserDataStoragesPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Delete(TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Clear((TOLEBOOL*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IUserDataStorages
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9DBFB4EB-BE9F-46EF-88FF-BB603A9E786B}
// *********************************************************************//
interface IUserDataStorages  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,      
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/) = 0;
  // [1]         
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR StorageName/*[in]*/, 
                                        Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/) = 0;
  // [2]        
  virtual HRESULT STDMETHODCALLTYPE Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IUserDataStoragePtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IUserDataStoragePtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IUserDataStoragePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IUserDataStoragePtr __fastcall Add(BSTR StorageName/*[in]*/)
  {
    Kompasltapi7_tlb::IUserDataStoragePtr Result;
    OLECHECK(this->Add(StorageName, (Kompasltapi7_tlb::IUserDataStoragePtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete(Password, Index, (TOLEBOOL*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IUserDataStorage
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DD2AF5C4-D5B9-420D-B658-F935F80A8586}
// *********************************************************************//
interface IUserDataStorage  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR Pass/*[in]*/, BSTR* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR Pass/*[in]*/, BSTR PVal/*[in]*/) = 0;
  // [2]       .
  virtual HRESULT STDMETHODCALLTYPE SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Version(BSTR Pass/*[in]*/, long* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Version(BSTR Pass/*[in]*/, long PVal/*[in]*/) = 0;
  // [4]            
  virtual HRESULT STDMETHODCALLTYPE GetObject(TVariantInParam Index/*[in]*/, 
                                              TVariant* Object/*[out]*/, long* Numb/*[out]*/, 
                                              BSTR* Comment/*[out,retval]*/) = 0;
  // [5]            
  virtual HRESULT STDMETHODCALLTYPE SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                              TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/, 
                                              long* PVal/*[out,retval]*/) = 0;
  // [6]        
  virtual HRESULT STDMETHODCALLTYPE AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                              BSTR Comment/*[in]*/, long* PVal/*[out,retval]*/) = 0;
  // [7]        .
  virtual HRESULT STDMETHODCALLTYPE Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE Clear(BSTR Pass/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(BSTR Pass/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name(Pass, (BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPassword(OldPass, NewPass, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_Version(BSTR Pass/*[in]*/)
  {
    long PVal;
    OLECHECK(this->get_Version(Pass, (long*)&PVal));
    return PVal;
  }

  BSTR __fastcall GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                            long* Numb/*[out]*/)
  {
    BSTR Comment = 0;
    OLECHECK(this->GetObject(Index, Object, Numb, (BSTR*)&Comment));
    return Comment;
  }

  long __fastcall SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                            TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/)
  {
    long PVal;
    OLECHECK(this->SetObject(Pass, Index, Object, Comment, (long*)&PVal));
    return PVal;
  }

  long __fastcall AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/)
  {
    long PVal;
    OLECHECK(this->AddObject(Pass, Object, Comment, (long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete(Pass, Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Clear(BSTR Pass/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear(Pass, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProcessParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CB5FDBC8-4DAE-4C4B-87D5-6FD1F2705C38}
// *********************************************************************//
interface IProcessParam  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  
  virtual HRESULT STDMETHODCALLTYPE set_Caption(BSTR PVal/*[in]*/) = 0;
  // [1]  
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]     
  virtual HRESULT STDMETHODCALLTYPE get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/) = 0;
  // [3]  
  virtual HRESULT STDMETHODCALLTYPE set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/) = 0;
  // [3]  
  virtual HRESULT STDMETHODCALLTYPE get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/) = 0;
  // [4]          .
  virtual HRESULT STDMETHODCALLTYPE set_AutoReduce(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4]          .
  virtual HRESULT STDMETHODCALLTYPE get_AutoReduce(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5] C       .
  virtual HRESULT STDMETHODCALLTYPE set_DefaultControlFix(DefaultFixTypeEnum PVal/*[in]*/) = 0;
  // [5] C       .
  virtual HRESULT STDMETHODCALLTYPE get_DefaultControlFix(DefaultFixTypeEnum* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Caption(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Caption((BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPropertyTabsPtr __fastcall get_PropertyTabs(void)
  {
    Kompasltapi7_tlb::IPropertyTabsPtr Tabs;
    OLECHECK(this->get_PropertyTabs((Kompasltapi7_tlb::IPropertyTabsPtr*)&Tabs));
    return Tabs;
  }

  SpecPropertyToolBarEnum __fastcall get_SpecToolbar(void)
  {
    SpecPropertyToolBarEnum PVal;
    OLECHECK(this->get_SpecToolbar((SpecPropertyToolBarEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoReduce(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoReduce((TOLEBOOL*)&PVal));
    return PVal;
  }

  DefaultFixTypeEnum __fastcall get_DefaultControlFix(void)
  {
    DefaultFixTypeEnum PVal;
    OLECHECK(this->get_DefaultControlFix((DefaultFixTypeEnum*)&PVal));
    return PVal;
  }


  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   Kompasltapi7_tlb::IPropertyTabsPtr PropertyTabs = {read = get_PropertyTabs};
  __property   SpecPropertyToolBarEnum SpecToolbar = {read = get_SpecToolbar, write = set_SpecToolbar};
  __property   TOLEBOOL        AutoReduce = {read = get_AutoReduce, write = set_AutoReduce};
  __property   DefaultFixTypeEnum DefaultControlFix = {read = get_DefaultControlFix, write = set_DefaultControlFix};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyTabs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5BA6324E-E555-490F-A0E2-68D3C6C88D92}
// *********************************************************************//
interface IPropertyTabs  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,      .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IPropertyTabPtr* Result/*[out,retval]*/) = 0;
  // [2]     (     ).
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Caption/*[in]*/, 
                                        Kompasltapi7_tlb::IPropertyTabPtr* PTab/*[out,retval]*/) = 0;
  // [3]    ,      .
  virtual HRESULT STDMETHODCALLTYPE Delete(TVariantInParam Index/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]      .
  virtual HRESULT STDMETHODCALLTYPE get_Active(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_SystemTab(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPropertyTabPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IPropertyTabPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPropertyTabPtr __fastcall Add(BSTR Caption/*[in]*/)
  {
    Kompasltapi7_tlb::IPropertyTabPtr PTab;
    OLECHECK(this->Add(Caption, (Kompasltapi7_tlb::IPropertyTabPtr*)&PTab));
    return PTab;
  }

  TOLEBOOL __fastcall Delete(TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_Active(void)
  {
    Kompasltapi7_tlb::IPropertyTabPtr PDoc;
    OLECHECK(this->get_Active((Kompasltapi7_tlb::IPropertyTabPtr*)&PDoc));
    return PDoc;
  }

  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_SystemTab(void)
  {
    Kompasltapi7_tlb::IPropertyTabPtr PDoc;
    OLECHECK(this->get_SystemTab((Kompasltapi7_tlb::IPropertyTabPtr*)&PDoc));
    return PDoc;
  }


  __property   Kompasltapi7_tlb::IPropertyTabPtr Active = {read = get_Active};
  __property   Kompasltapi7_tlb::IPropertyTabPtr SystemTab = {read = get_SystemTab};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyTab
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {45DE8E5B-BC2B-4584-8BA7-D3014D3A2397}
// *********************************************************************//
interface IPropertyTab  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE set_Caption(BSTR PVal/*[in,def,opt]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE set_Active(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_Active(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_PropertyControls(Kompasltapi7_tlb::IPropertyControlsPtr* PControls/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE set_ResModule(TVariantInParam HInstance/*[in]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_ResModule(TVariant* HInstance/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_Image(TVariantInParam Bmp/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_Image(TVariant* Bmp/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Caption(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Caption((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Active(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPropertyControlsPtr __fastcall get_PropertyControls(void)
  {
    Kompasltapi7_tlb::IPropertyControlsPtr PControls;
    OLECHECK(this->get_PropertyControls((Kompasltapi7_tlb::IPropertyControlsPtr*)&PControls));
    return PControls;
  }

  TVariant __fastcall get_ResModule(void)
  {
    TVariant HInstance;
    OLECHECK(this->get_ResModule((TVariant*)&HInstance));
    return HInstance;
  }

  TVariant __fastcall get_Image(void)
  {
    TVariant Bmp;
    OLECHECK(this->get_Image((TVariant*)&Bmp));
    return Bmp;
  }


  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   Kompasltapi7_tlb::IPropertyControlsPtr PropertyControls = {read = get_PropertyControls};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyControls
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {548241BA-FDA8-4633-981E-94552BE38D6B}
// *********************************************************************//
interface IPropertyControls  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IPropertyControlPtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(ControlTypeEnum Type/*[in]*/, 
                                        Kompasltapi7_tlb::IPropertyControlPtr* PControl/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TVariantInParam Index/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPropertyControlPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPropertyControlPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IPropertyControlPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPropertyControlPtr __fastcall Add(ControlTypeEnum Type/*[in]*/)
  {
    Kompasltapi7_tlb::IPropertyControlPtr PControl;
    OLECHECK(this->Add(Type, (Kompasltapi7_tlb::IPropertyControlPtr*)&PControl));
    return PControl;
  }

  TOLEBOOL __fastcall Delete(TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyControl
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E35F8FF8-03C6-460C-A2F1-294A3A29A029}
// *********************************************************************//
interface IPropertyControl  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in,def,opt]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Id(long PVal/*[in,def,opt]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Id(long* PVal/*[out,retval]*/) = 0;
  // [5]   (/).
  virtual HRESULT STDMETHODCALLTYPE set_Enable(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5]   (/).
  virtual HRESULT STDMETHODCALLTYPE get_Enable(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_Value(TVariantInParam PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_Value(TVariant* PVal/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE set_Hint(BSTR PVal/*[in,def,opt]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_Hint(BSTR* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_Tips(BSTR PVal/*[in,def,opt]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_Tips(BSTR* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  ControlTypeEnum __fastcall get_ControlType(void)
  {
    ControlTypeEnum PVal;
    OLECHECK(this->get_ControlType((ControlTypeEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_Id(void)
  {
    long PVal;
    OLECHECK(this->get_Id((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Enable(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Enable((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Value(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Value((TVariant*)&PVal));
    return PVal;
  }

  PropertyControlNameVisibility __fastcall get_NameVisibility(void)
  {
    PropertyControlNameVisibility PVal;
    OLECHECK(this->get_NameVisibility((PropertyControlNameVisibility*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Hint(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Hint((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Tips(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Tips((BSTR*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {34196EC3-58B2-436C-A353-427703740874}
// *********************************************************************//
interface IPropertyManager  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_Caption(BSTR PVal/*[in,def,opt]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]    (, , , , ).
  virtual HRESULT STDMETHODCALLTYPE set_Layout(PropertyManagerLayout PVal/*[in]*/) = 0;
  // [3]    (, , , , ).
  virtual HRESULT STDMETHODCALLTYPE get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE SetGabaritRect(long Left/*[in]*/, long Top/*[in]*/, 
                                                   long Right/*[in]*/, long Bottom/*[in]*/) = 0;
  // [6]     .
  virtual HRESULT STDMETHODCALLTYPE GetGabaritRect(long* Left/*[out]*/, long* Top/*[out]*/, 
                                                   long* Right/*[out]*/, long* Bottom/*[out]*/) = 0;
  // [7]        .
  virtual HRESULT STDMETHODCALLTYPE ShowTabs(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]        .
  virtual HRESULT STDMETHODCALLTYPE UpdateTabs(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]        .
  virtual HRESULT STDMETHODCALLTYPE HideTabs(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10]  
  virtual HRESULT STDMETHODCALLTYPE set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/) = 0;
  // [10]  
  virtual HRESULT STDMETHODCALLTYPE get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/) = 0;
  // [11]  (    ).
  virtual HRESULT STDMETHODCALLTYPE RepeatCommand(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE set_AutoHideMode(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_AutoHideMode(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Caption(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Caption((BSTR*)&PVal));
    return PVal;
  }

  PropertyManagerLayout __fastcall get_Layout(void)
  {
    PropertyManagerLayout PVal;
    OLECHECK(this->get_Layout((PropertyManagerLayout*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPropertyTabsPtr __fastcall get_PropertyTabs(void)
  {
    Kompasltapi7_tlb::IPropertyTabsPtr Tabs;
    OLECHECK(this->get_PropertyTabs((Kompasltapi7_tlb::IPropertyTabsPtr*)&Tabs));
    return Tabs;
  }

  TOLEBOOL __fastcall ShowTabs(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->ShowTabs((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall UpdateTabs(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->UpdateTabs((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall HideTabs(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->HideTabs((TOLEBOOL*)&PVal));
    return PVal;
  }

  SpecPropertyToolBarEnum __fastcall get_SpecToolbar(void)
  {
    SpecPropertyToolBarEnum PVal;
    OLECHECK(this->get_SpecToolbar((SpecPropertyToolBarEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall RepeatCommand(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->RepeatCommand((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoHideMode(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoHideMode((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   PropertyManagerLayout Layout = {read = get_Layout, write = set_Layout};
  __property   Kompasltapi7_tlb::IPropertyTabsPtr PropertyTabs = {read = get_PropertyTabs};
  __property   SpecPropertyToolBarEnum SpecToolbar = {read = get_SpecToolbar, write = set_SpecToolbar};
  __property   TOLEBOOL        AutoHideMode = {read = get_AutoHideMode, write = set_AutoHideMode};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILibraryManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {53CDC510-99EA-4736-8542-194F4D8FB32B}
// *********************************************************************//
interface ILibraryManager  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_ProceduresLibraries(Kompasltapi7_tlb::IProceduresLibrariesPtr* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_FragmentsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_ModelsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]    (, , , , ).
  virtual HRESULT STDMETHODCALLTYPE get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/) = 0;
  // [6]      .
  virtual HRESULT STDMETHODCALLTYPE get_ActiveFolder(BSTR* PVal/*[out,retval]*/) = 0;
  // [6]      .
  virtual HRESULT STDMETHODCALLTYPE set_ActiveFolder(BSTR PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_ActiveFolderComment(TVariant* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_ActiveFolderComment(TVariantInParam PVal/*[in]*/) = 0;
  // [8]      .
  virtual HRESULT STDMETHODCALLTYPE AddFolder(BSTR PathFolder/*[in]*/) = 0;
  // [9]     .
  virtual HRESULT STDMETHODCALLTYPE RemoveFolder(BSTR PathFolder/*[in]*/) = 0;
  // [10]   ,   SystemControlStart.
  virtual HRESULT STDMETHODCALLTYPE get_SystemControlStartLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE get_CurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]   SystemControlStart.
  virtual HRESULT STDMETHODCALLTYPE get_SystemControlStartResult(ksSystemControlStartEnum* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IProceduresLibrariesPtr __fastcall get_ProceduresLibraries(void)
  {
    Kompasltapi7_tlb::IProceduresLibrariesPtr Result;
    OLECHECK(this->get_ProceduresLibraries((Kompasltapi7_tlb::IProceduresLibrariesPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall get_FragmentsLibraries(void)
  {
    Kompasltapi7_tlb::IInsertsLibrariesPtr Result;
    OLECHECK(this->get_FragmentsLibraries((Kompasltapi7_tlb::IInsertsLibrariesPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall get_ModelsLibraries(void)
  {
    Kompasltapi7_tlb::IInsertsLibrariesPtr Result;
    OLECHECK(this->get_ModelsLibraries((Kompasltapi7_tlb::IInsertsLibrariesPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  PropertyManagerLayout __fastcall get_Layout(void)
  {
    PropertyManagerLayout PVal;
    OLECHECK(this->get_Layout((PropertyManagerLayout*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ActiveFolder(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ActiveFolder((BSTR*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ActiveFolderComment(void)
  {
    TVariant PVal;
    OLECHECK(this->get_ActiveFolderComment((TVariant*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_SystemControlStartLibrary(void)
  {
    Kompasltapi7_tlb::IProceduresLibraryPtr PVal;
    OLECHECK(this->get_SystemControlStartLibrary((Kompasltapi7_tlb::IProceduresLibraryPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_CurrentLibrary(void)
  {
    Kompasltapi7_tlb::IProceduresLibraryPtr PVal;
    OLECHECK(this->get_CurrentLibrary((Kompasltapi7_tlb::IProceduresLibraryPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCurrentLibrary(PVal, (TOLEBOOL*)&Result));
    return Result;
  }

  ksSystemControlStartEnum __fastcall get_SystemControlStartResult(void)
  {
    ksSystemControlStartEnum PVal;
    OLECHECK(this->get_SystemControlStartResult((ksSystemControlStartEnum*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IProceduresLibrariesPtr ProceduresLibraries = {read = get_ProceduresLibraries};
  __property   Kompasltapi7_tlb::IInsertsLibrariesPtr FragmentsLibraries = {read = get_FragmentsLibraries};
  __property   Kompasltapi7_tlb::IInsertsLibrariesPtr ModelsLibraries = {read = get_ModelsLibraries};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   PropertyManagerLayout Layout = {read = get_Layout};
  __property   BSTR            ActiveFolder = {read = get_ActiveFolder, write = set_ActiveFolder};
  __property   Kompasltapi7_tlb::IProceduresLibraryPtr SystemControlStartLibrary = {read = get_SystemControlStartLibrary};
  __property   Kompasltapi7_tlb::IProceduresLibraryPtr CurrentLibrary = {read = get_CurrentLibrary};
  __property   ksSystemControlStartEnum SystemControlStartResult = {read = get_SystemControlStartResult};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProceduresLibraries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {80F95B5B-DB8A-46B7-8C22-605A0AECD597}
// *********************************************************************//
interface IProceduresLibraries  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]   ,      
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IProceduresLibraryPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IProceduresLibraryPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IProceduresLibraryPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D6E9AE1-7DDF-4354-B8D0-E12023B186FA}
// *********************************************************************//
interface ILibrary  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [2001]     .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryManagerFolder(BSTR* PVal/*[out,retval]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE get_Attach(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE set_Attach(TOLEBOOL PVal/*[in]*/) = 0;
  // [2003]  .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryType(ksLibraryTypeEnum* PVal/*[out,retval]*/) = 0;
  // [2004]   .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2005]   .
  virtual HRESULT STDMETHODCALLTYPE get_PathName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2006]    .
  virtual HRESULT STDMETHODCALLTYPE get_Enable(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2007]  .
  virtual HRESULT STDMETHODCALLTYPE Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                            TOLEBOOL Post/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_LibraryManagerFolder(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LibraryManagerFolder((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Attach(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Attach((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksLibraryTypeEnum __fastcall get_LibraryType(void)
  {
    ksLibraryTypeEnum PVal;
    OLECHECK(this->get_LibraryType((ksLibraryTypeEnum*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_PathName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_PathName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Enable(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Enable((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                              TOLEBOOL Post/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Execute(Command, External, Post, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            LibraryManagerFolder = {read = get_LibraryManagerFolder};
  __property   TOLEBOOL        Attach = {read = get_Attach, write = set_Attach};
  __property   ksLibraryTypeEnum LibraryType = {read = get_LibraryType};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   TOLEBOOL        Enable = {read = get_Enable};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProceduresLibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1AECE59E-DE4C-4FB9-B62B-7967573AD3B1}
// *********************************************************************//
interface IProceduresLibrary  : public Kompasltapi7_tlb::ILibrary
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Style(ksLibraryStyleEnum* PVal/*[out,retval]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_Style(ksLibraryStyleEnum PVal/*[in]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_Procedures(Kompasltapi7_tlb::IProceduresPtr* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_CurrentCommand(long* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE SystemControlStop(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]      .
  virtual HRESULT STDMETHODCALLTYPE SystemControlStart(BSTR menuCommand/*[in]*/, 
                                                       ksSystemControlStartEnum* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_UniqueId(long* PVal/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_Executable(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]   AddIn-.
  virtual HRESULT STDMETHODCALLTYPE get_AddIns(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_ExternalInterface(LPDISPATCH* PVal/*[out,retval]*/) = 0;
  // [10]     LIBRARYNAME  LIBRARYID.
  virtual HRESULT STDMETHODCALLTYPE get_LibraryName(BSTR* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksLibraryStyleEnum __fastcall get_Style(void)
  {
    ksLibraryStyleEnum PVal;
    OLECHECK(this->get_Style((ksLibraryStyleEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IProceduresPtr __fastcall get_Procedures(void)
  {
    Kompasltapi7_tlb::IProceduresPtr PVal;
    OLECHECK(this->get_Procedures((Kompasltapi7_tlb::IProceduresPtr*)&PVal));
    return PVal;
  }

  long __fastcall get_CurrentCommand(void)
  {
    long PVal;
    OLECHECK(this->get_CurrentCommand((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SystemControlStop(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SystemControlStop((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksSystemControlStartEnum __fastcall SystemControlStart(BSTR menuCommand/*[in]*/)
  {
    ksSystemControlStartEnum PVal;
    OLECHECK(this->SystemControlStart(menuCommand, (ksSystemControlStartEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_UniqueId(void)
  {
    long PVal;
    OLECHECK(this->get_UniqueId((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Executable(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Executable((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AddIns(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AddIns((TOLEBOOL*)&PVal));
    return PVal;
  }

  LPDISPATCH __fastcall get_ExternalInterface(void)
  {
    LPDISPATCH PVal;
    OLECHECK(this->get_ExternalInterface((LPDISPATCH*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LibraryName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LibraryName((BSTR*)&PVal));
    return PVal;
  }


  __property   ksLibraryStyleEnum Style = {read = get_Style, write = set_Style};
  __property   Kompasltapi7_tlb::IProceduresPtr Procedures = {read = get_Procedures};
  __property   long            CurrentCommand = {read = get_CurrentCommand};
  __property   long            UniqueId = {read = get_UniqueId};
  __property   TOLEBOOL        Executable = {read = get_Executable};
  __property   TOLEBOOL        AddIns = {read = get_AddIns};
  __property   LPDISPATCH      ExternalInterface = {read = get_ExternalInterface};
  __property   BSTR            LibraryName = {read = get_LibraryName};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProcedures
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1A77F076-2295-40F9-B1AA-2838C4CA0887}
// *********************************************************************//
interface IProcedures  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,      
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/) = 0;
  // [1]  ,    .
  virtual HRESULT STDMETHODCALLTYPE get_ItemByID(long Id/*[in]*/, 
                                                 Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IProcedurePtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IProcedurePtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IProcedurePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IProcedurePtr __fastcall get_ItemByID(long Id/*[in]*/)
  {
    Kompasltapi7_tlb::IProcedurePtr Result;
    OLECHECK(this->get_ItemByID(Id, (Kompasltapi7_tlb::IProcedurePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProcedure
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7BF9DF08-D14D-4DA9-ABC2-FB458E7122D0}
// *********************************************************************//
interface IProcedure  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryFolder(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]      .
  virtual HRESULT STDMETHODCALLTYPE get_Id(long* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LibraryFolder(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LibraryFolder((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_Id(void)
  {
    long PVal;
    OLECHECK(this->get_Id((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Execute(External, Post, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            LibraryFolder = {read = get_LibraryFolder};
  __property   long            Id = {read = get_Id};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertsLibraries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6E82D68-69D5-40C0-9A85-275B22219135}
// *********************************************************************//
interface IInsertsLibraries  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,      
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IInsertsLibraryPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IInsertsLibraryPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IInsertsLibraryPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IInsertsLibraryPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertsLibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {885CAD68-B42B-45CF-8620-E0138558EFE3}
// *********************************************************************//
interface IInsertsLibrary  : public Kompasltapi7_tlb::ILibrary
{
public:
  // [1]      .
  virtual HRESULT STDMETHODCALLTYPE get_ActiveFolder(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                                    TOLEBOOL HaveLibName, 
                                                    TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  () .
  virtual HRESULT STDMETHODCALLTYPE get_Inserts(Kompasltapi7_tlb::IInsertsPtr* PVal/*[out,retval]*/) = 0;
  // [4]      .
  virtual HRESULT STDMETHODCALLTYPE AddFolder(BSTR PathFolder/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE RemoveFolder(BSTR PathFolder/*[in]*/, 
                                                 TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_ActiveFolder(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ActiveFolder((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                      TOLEBOOL HaveLibName)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetActiveFolder(PathFolder, LastIsFile, HaveLibName, (TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IInsertsPtr __fastcall get_Inserts(void)
  {
    Kompasltapi7_tlb::IInsertsPtr PVal;
    OLECHECK(this->get_Inserts((Kompasltapi7_tlb::IInsertsPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddFolder(BSTR PathFolder/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->AddFolder(PathFolder, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall RemoveFolder(BSTR PathFolder/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->RemoveFolder(PathFolder, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            ActiveFolder = {read = get_ActiveFolder};
  __property   Kompasltapi7_tlb::IInsertsPtr Inserts = {read = get_Inserts};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInserts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FCBF6340-119D-4736-BB95-F1EAB4BEF1B8}
// *********************************************************************//
interface IInserts  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,      
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/) = 0;
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR Name/*[in]*/, 
                                        DocumentTypeEnum DocType, 
                                        Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IInsertPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IInsertPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IInsertPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IInsertPtr __fastcall Add(BSTR Name/*[in]*/, 
                                              DocumentTypeEnum DocType)
  {
    Kompasltapi7_tlb::IInsertPtr Result;
    OLECHECK(this->Add(Name, DocType, (Kompasltapi7_tlb::IInsertPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsert
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D6A6D305-6B5C-4392-B61D-D669C092EEF2}
// *********************************************************************//
interface IInsert  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(TVariant* PVal/*[out,retval]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(TVariantInParam PVal/*[in]*/) = 0;
  // [3]     .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryFolder(BSTR* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_PathName(BSTR* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE Edit(Kompasltapi7_tlb::IKompasDocumentPtr* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Comment(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Comment((TVariant*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LibraryFolder(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LibraryFolder((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_PathName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_PathName((BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Edit(void)
  {
    Kompasltapi7_tlb::IKompasDocumentPtr PVal;
    OLECHECK(this->Edit((Kompasltapi7_tlb::IKompasDocumentPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            LibraryFolder = {read = get_LibraryFolder};
  __property   BSTR            PathName = {read = get_PathName};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasError
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0A8B4CD1-7158-4CE6-96E0-885376F5DE1B}
// *********************************************************************//
interface IKompasError  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Code(long* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Description(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]   3D.
  virtual HRESULT STDMETHODCALLTYPE get_Error3D(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE Report(void) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE Clear(void) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Code(void)
  {
    long PVal;
    OLECHECK(this->get_Code((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Description(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Description((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Error3D(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Error3D((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   long            Code = {read = get_Code};
  __property   BSTR            Description = {read = get_Description};
  __property   TOLEBOOL        Error3D = {read = get_Error3D};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IConverter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {642D03AB-4798-48A5-B075-3CD9AFA18554}
// *********************************************************************//
interface IConverter  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE ConverterParameters(long Command/*[in]*/, 
                                                        LPUNKNOWN* PVal/*[out,retval]*/) = 0;
  // [2]         '- (*.frw)|*.frw|'
  virtual HRESULT STDMETHODCALLTYPE GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, 
                                              long* Command/*[out]*/, BSTR* Result/*[out,retval]*/) = 0;
  // [3]   
  virtual HRESULT STDMETHODCALLTYPE Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, 
                                            long Command/*[in]*/, TOLEBOOL ShowParam/*[in]*/, 
                                            long* Result/*[out,retval]*/) = 0;
  // [4]     
  virtual HRESULT STDMETHODCALLTYPE VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, 
                                                           long Command/*[in]*/, 
                                                           TOLEBOOL* Val/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  LPUNKNOWN __fastcall ConverterParameters(long Command/*[in]*/)
  {
    LPUNKNOWN PVal;
    OLECHECK(this->ConverterParameters(Command, (LPUNKNOWN*)&PVal));
    return PVal;
  }

  BSTR __fastcall GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, long* Command/*[out]*/)
  {
    BSTR Result = 0;
    OLECHECK(this->GetFilter(DocType, SaveAs, Command, (BSTR*)&Result));
    return Result;
  }

  long __fastcall Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, long Command/*[in]*/, 
                          TOLEBOOL ShowParam/*[in]*/)
  {
    long Result;
    OLECHECK(this->Convert(InputFile, Outfile, Command, ShowParam, (long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, long Command/*[in]*/)
  {
    TOLEBOOL Val;
    OLECHECK(this->VisualEditConvertParam(ParentHwnd, Command, (TOLEBOOL*)&Val));
    return Val;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICheckSum
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2AA9F713-2328-4E8F-B996-9DFDABC67DC9}
// *********************************************************************//
interface ICheckSum  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   value  . com = TRUE   
  virtual HRESULT STDMETHODCALLTYPE Add(TVariantInParam Value/*[in]*/, TOLEBOOL Com/*[in]*/) = 0;
  // [2]      SAFEARRAY' BYTE' - VT_ARRAY | VT_UI1
  virtual HRESULT STDMETHODCALLTYPE get_Result(TVariant* Value/*[out,retval]*/) = 0;
  // [3]      .
  virtual HRESULT STDMETHODCALLTYPE get_StrResult(BSTR* StrVal/*[out,retval]*/) = 0;
  // [4]          . com = TRUE   
  virtual HRESULT STDMETHODCALLTYPE AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/, 
                                                 TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [5]        Reference'  . com = TRUE   
  virtual HRESULT STDMETHODCALLTYPE AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, 
                                                 TOLEBOOL Com/*[in]*/, TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [6]   
  virtual HRESULT STDMETHODCALLTYPE Clear(void) = 0;
  // [7]   (   ).
  virtual HRESULT STDMETHODCALLTYPE get_Version(long* PVal/*[out,retval]*/) = 0;
  // [7]   (   ).
  virtual HRESULT STDMETHODCALLTYPE set_Version(long PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Result(void)
  {
    TVariant Value;
    OLECHECK(this->get_Result((TVariant*)&Value));
    return Value;
  }

  BSTR __fastcall get_StrResult(void)
  {
    BSTR StrVal = 0;
    OLECHECK(this->get_StrResult((BSTR*)&StrVal));
    return StrVal;
  }

  TOLEBOOL __fastcall AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->AddInterface(Object, Com, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, 
                                   TOLEBOOL Com/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->AddReference(Object, Doc, Com, (TOLEBOOL*)&Res));
    return Res;
  }

  long __fastcall get_Version(void)
  {
    long PVal;
    OLECHECK(this->get_Version((long*)&PVal));
    return PVal;
  }


  __property   BSTR            StrResult = {read = get_StrResult};
  __property   long            Version = {read = get_Version, write = set_Version};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProgressBarIndicator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BE125ABA-EAB2-4A22-99D7-108C84B6DCC5}
// *********************************************************************//
interface IProgressBarIndicator  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [8001]  .
  virtual HRESULT STDMETHODCALLTYPE Start(long MinVal/*[in]*/, long MaxVal/*[in]*/, 
                                          BSTR TextVal/*[in]*/, TOLEBOOL ResetVal/*[in]*/) = 0;
  // [8002]   .
  virtual HRESULT STDMETHODCALLTYPE SetProgress(long CurrentVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                                TOLEBOOL ResetVal/*[in]*/) = 0;
  // [8003]       .
  virtual HRESULT STDMETHODCALLTYPE SetText(BSTR TextVal/*[in]*/) = 0;
  // [8004]  .
  virtual HRESULT STDMETHODCALLTYPE Stop(BSTR TextVal/*[in]*/, TOLEBOOL ResetVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISystemSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FFB66332-17FF-47EB-AC43-32084F8F6077}
// *********************************************************************//
interface ISystemSettings  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1] :: .
  virtual HRESULT STDMETHODCALLTYPE set_FilesAutoSaveSwitchOn(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [1] :: .
  virtual HRESULT STDMETHODCALLTYPE get_FilesAutoSaveSwitchOn(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2] : :  .
  virtual HRESULT STDMETHODCALLTYPE set_FilesBackupPrevCopySwitchOn(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [2] : :  .
  virtual HRESULT STDMETHODCALLTYPE get_FilesBackupPrevCopySwitchOn(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  : :      .
  virtual HRESULT STDMETHODCALLTYPE set_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3]  : :      .
  virtual HRESULT STDMETHODCALLTYPE get_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  : :       .
  virtual HRESULT STDMETHODCALLTYPE set_ModelLocalCSSetActive(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4]  : :       .
  virtual HRESULT STDMETHODCALLTYPE get_ModelLocalCSSetActive(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]  :  : .
  virtual HRESULT STDMETHODCALLTYPE set_ModelSmoothMotion(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5]  :  : .
  virtual HRESULT STDMETHODCALLTYPE get_ModelSmoothMotion(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]      .
  virtual HRESULT STDMETHODCALLTYPE get_ReportStyleListSettings(Kompasltapi7_tlb::ILibArraySettingsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_FilesAutoSaveSwitchOn(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FilesAutoSaveSwitchOn((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FilesBackupPrevCopySwitchOn(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FilesBackupPrevCopySwitchOn((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ModelLocalCSCreateInAbsoluteCS(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ModelLocalCSCreateInAbsoluteCS((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ModelLocalCSSetActive(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ModelLocalCSSetActive((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ModelSmoothMotion(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ModelSmoothMotion((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILibArraySettingsPtr __fastcall get_ReportStyleListSettings(void)
  {
    Kompasltapi7_tlb::ILibArraySettingsPtr PVal;
    OLECHECK(this->get_ReportStyleListSettings((Kompasltapi7_tlb::ILibArraySettingsPtr*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        FilesAutoSaveSwitchOn = {read = get_FilesAutoSaveSwitchOn, write = set_FilesAutoSaveSwitchOn};
  __property   TOLEBOOL        FilesBackupPrevCopySwitchOn = {read = get_FilesBackupPrevCopySwitchOn, write = set_FilesBackupPrevCopySwitchOn};
  __property   TOLEBOOL        ModelLocalCSCreateInAbsoluteCS = {read = get_ModelLocalCSCreateInAbsoluteCS, write = set_ModelLocalCSCreateInAbsoluteCS};
  __property   TOLEBOOL        ModelLocalCSSetActive = {read = get_ModelLocalCSSetActive, write = set_ModelLocalCSSetActive};
  __property   TOLEBOOL        ModelSmoothMotion = {read = get_ModelSmoothMotion, write = set_ModelSmoothMotion};
  __property   Kompasltapi7_tlb::ILibArraySettingsPtr ReportStyleListSettings = {read = get_ReportStyleListSettings};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILibArraySettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {76D9033D-5F87-41CC-A3E8-55EFEE94B677}
// *********************************************************************//
interface ILibArraySettings  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryCount(long* Count/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                               BSTR* Result/*[out,retval]*/) = 0;
  // [3]     .
  virtual HRESULT STDMETHODCALLTYPE SetLibraryUse(TVariantInParam Index/*[in]*/, 
                                                  TOLEBOOL Use/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]       .
  virtual HRESULT STDMETHODCALLTYPE GetLibrarys(TVariant* FileNames/*[out]*/, 
                                                TVariant* Uses/*[out]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]     
  virtual HRESULT STDMETHODCALLTYPE RemoveLibrary(TVariantInParam Index/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_LibraryCount(void)
  {
    long Count;
    OLECHECK(this->get_LibraryCount((long*)&Count));
    return Count;
  }

  BSTR __fastcall GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/)
  {
    BSTR Result = 0;
    OLECHECK(this->GetLibrary(Index, Use, (BSTR*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetLibraryUse(Index, Use, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetLibrarys(FileNames, Uses, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddLibrary(FileName, Use, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall RemoveLibrary(TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->RemoveLibrary(Index, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            LibraryCount = {read = get_LibraryCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMath2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0409EC8F-88F7-4242-81E7-965ABEAE932C}
// *********************************************************************//
interface IMath2D  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE Line(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                         Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE LineSeg(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                            double Y2/*[in]*/, 
                                            Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE Arc(double Xc/*[in]*/, double Yc/*[in]*/, double Radius/*[in]*/, 
                                        double Angle1/*[in]*/, double Angle2/*[in]*/, 
                                        TOLEBOOL Direction/*[in]*/, 
                                        Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE Circle(double Xc/*[in]*/, double Yc/*[in]*/, 
                                           double Radius/*[in]*/, 
                                           Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE PolyLine(TVariantInParam Points/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                             Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE Ellipse(double Xc/*[in]*/, double Yc/*[in]*/, double A/*[in]*/, 
                                            double B/*[in]*/, double Angle/*[in]*/, 
                                            Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE EllipseArc(double Xc/*[in]*/, double Yc/*[in]*/, 
                                               double A/*[in]*/, double B/*[in]*/, 
                                               double Angle/*[in]*/, double Angle1/*[in]*/, 
                                               double Angle2/*[in]*/, TOLEBOOL Direction/*[in]*/, 
                                               Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [8]    Bezer.
  virtual HRESULT STDMETHODCALLTYPE Bezier(TOLEBOOL Closed/*[in]*/, TOLEBOOL AllPoints/*[in]*/, 
                                           TVariantInParam Points/*[in]*/, 
                                           Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [9]   Nurbs-.
  virtual HRESULT STDMETHODCALLTYPE Nurbs(TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                          TVariantInParam Points/*[in]*/, 
                                          TVariantInParam Weights/*[in]*/, 
                                          TVariantInParam Knots/*[in]*/, 
                                          Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/) = 0;
  // [10]    .
  virtual HRESULT STDMETHODCALLTYPE Symmetry(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                             Kompasltapi7_tlb::ICurve2DPtr Curve/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]    .
  virtual HRESULT STDMETHODCALLTYPE Rotate(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                           double Xc/*[in]*/, double Yc/*[in]*/, 
                                           double Angle/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                              double Angle/*[in]*/, double Len/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ICurve2DPtr __fastcall Line(double X/*[in]*/, double Y/*[in]*/, 
                                                double Angle/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->Line(X, Y, Angle, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall LineSeg(double X1/*[in]*/, double Y1/*[in]*/, 
                                                   double X2/*[in]*/, double Y2/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->LineSeg(X1, Y1, X2, Y2, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall Arc(double Xc/*[in]*/, double Yc/*[in]*/, 
                                               double Radius/*[in]*/, double Angle1/*[in]*/, 
                                               double Angle2/*[in]*/, TOLEBOOL Direction/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->Arc(Xc, Yc, Radius, Angle1, Angle2, Direction, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall Circle(double Xc/*[in]*/, double Yc/*[in]*/, 
                                                  double Radius/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->Circle(Xc, Yc, Radius, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall PolyLine(TVariantInParam Points/*[in]*/, 
                                                    TOLEBOOL Closed/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->PolyLine(Points, Closed, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall Ellipse(double Xc/*[in]*/, double Yc/*[in]*/, 
                                                   double A/*[in]*/, double B/*[in]*/, 
                                                   double Angle/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->Ellipse(Xc, Yc, A, B, Angle, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall EllipseArc(double Xc/*[in]*/, double Yc/*[in]*/, 
                                                      double A/*[in]*/, double B/*[in]*/, 
                                                      double Angle/*[in]*/, double Angle1/*[in]*/, 
                                                      double Angle2/*[in]*/, 
                                                      TOLEBOOL Direction/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->EllipseArc(Xc, Yc, A, B, Angle, Angle1, Angle2, Direction, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall Bezier(TOLEBOOL Closed/*[in]*/, 
                                                  TOLEBOOL AllPoints/*[in]*/, 
                                                  TVariantInParam Points/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->Bezier(Closed, AllPoints, Points, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall Nurbs(TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                                 TVariantInParam Points/*[in]*/, 
                                                 TVariantInParam Weights/*[in]*/, 
                                                 TVariantInParam Knots/*[in]*/)
  {
    Kompasltapi7_tlb::ICurve2DPtr PRes;
    OLECHECK(this->Nurbs(Closed, Degree, Points, Weights, Knots, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Symmetry(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                               Kompasltapi7_tlb::ICurve2DPtr Curve/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Symmetry(X, Y, Curve, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Rotate(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Xc/*[in]*/, 
                             double Yc/*[in]*/, double Angle/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Rotate(X, Y, Xc, Yc, Angle, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Angle/*[in]*/, 
                                double Len/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->MovePoint(X, Y, Angle, Len, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICurve2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {65C82884-C41B-47A1-8C07-E8820D6718EA}
// *********************************************************************//
interface ICurve2D  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                            TVariant* Curve1Points/*[out]*/, 
                                            TVariant* Curve2Points/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]        .
  virtual HRESULT STDMETHODCALLTYPE TangentLinePoint(double X/*[in]*/, double Y/*[in]*/, 
                                                     TVariant* Result/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                                     double Radius/*[in]*/, 
                                                     TVariant* Result/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE PointProjection(double X/*[in]*/, double Y/*[in]*/, 
                                                    double* Kx/*[out]*/, double* Ky/*[out]*/, 
                                                    double* T/*[out]*/, double* Angle/*[out]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]       .
  virtual HRESULT STDMETHODCALLTYPE CalculatePolygonByStep(double Step/*[in]*/, 
                                                           TVariant* Result/*[out,retval]*/) = 0;
  // [8]      Lenght  .
  virtual HRESULT STDMETHODCALLTYPE MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                              double Lenght/*[in]*/, TOLEBOOL Direction/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* Result/*[out,retval]*/) = 0;
  // [10]        .
  virtual HRESULT STDMETHODCALLTYPE GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, 
                                                          double X2/*[in]*/, double Y2/*[in]*/, 
                                                          double* Result/*[out,retval]*/) = 0;
  // [11]          .
  virtual HRESULT STDMETHODCALLTYPE GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                       double* Result/*[out,retval]*/) = 0;
  // [12]      t.
  virtual HRESULT STDMETHODCALLTYPE PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE GetMetricLength(double T1/*[in]*/, double T2/*[in]*/, 
                                                    double* Result/*[out,retval]*/) = 0;
  // [15]  .
  virtual HRESULT STDMETHODCALLTYPE get_ParamMin(double* Result/*[out,retval]*/) = 0;
  // [16]  .
  virtual HRESULT STDMETHODCALLTYPE get_ParamMax(double* Result/*[out,retval]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE get_IsClosed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [18]    NURBS-.
  virtual HRESULT STDMETHODCALLTYPE GetNurbsParams(TOLEBOOL Closed/*[in]*/, 
                                                   TVariant* Points/*[out]*/, 
                                                   TVariant* Weights/*[out]*/, 
                                                   TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                                   double* TMax/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->Intersect(Curve2, (TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                              TVariant* Curve1Points/*[out]*/, TVariant* Curve2Points/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Tangent(Curve2, Curve1Points, Curve2Points, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall TangentLinePoint(double X/*[in]*/, double Y/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->TangentLinePoint(X, Y, (TVariant*)&Result));
    return Result;
  }

  TVariant __fastcall CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                       double Radius/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->CouplingCurvCurv(Curve2, Radius, (TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                      double* Ky/*[out]*/, double* T/*[out]*/, 
                                      double* Angle/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->PointProjection(X, Y, Kx, Ky, T, Angle, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall CalculatePolygonByStep(double Step/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->CalculatePolygonByStep(Step, (TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Lenght/*[in]*/, 
                                TOLEBOOL Direction/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->MovePoint(X, Y, Lenght, Direction, (TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_Length(void)
  {
    double Result;
    OLECHECK(this->get_Length((double*)&Result));
    return Result;
  }

  double __fastcall GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                          double Y2/*[in]*/)
  {
    double Result;
    OLECHECK(this->GetDistancePointPoint(X1, Y1, X2, Y2, (double*)&Result));
    return Result;
  }

  double __fastcall GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/)
  {
    double Result;
    OLECHECK(this->GetDistanceToPoint(X, Y, (double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->PointOn(T, X, Y, (TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall GetMetricLength(double T1/*[in]*/, double T2/*[in]*/)
  {
    double Result;
    OLECHECK(this->GetMetricLength(T1, T2, (double*)&Result));
    return Result;
  }

  double __fastcall get_ParamMin(void)
  {
    double Result;
    OLECHECK(this->get_ParamMin((double*)&Result));
    return Result;
  }

  double __fastcall get_ParamMax(void)
  {
    double Result;
    OLECHECK(this->get_ParamMax((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_IsClosed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsClosed((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                     TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                     double* TMin/*[out]*/, double* TMax/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetNurbsParams(Closed, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   double          Length = {read = get_Length};
  __property   double          ParamMin = {read = get_ParamMin};
  __property   double          ParamMax = {read = get_ParamMax};
  __property   TOLEBOOL        IsClosed = {read = get_IsClosed};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPrintJob
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D86880B-C004-475D-8221-B786FD5A228B}
// *********************************************************************//
interface IPrintJob  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]           .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE ShowPreviewWindow(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]      .
  virtual HRESULT STDMETHODCALLTYPE Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]       .
  virtual HRESULT STDMETHODCALLTYPE Save(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]       .
  virtual HRESULT STDMETHODCALLTYPE Execute(BSTR OutputFileName/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]    
  virtual HRESULT STDMETHODCALLTYPE AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                                              ksSheetsRangeEnum Range/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_SheetsCount(long* Count/*[out,retval]*/) = 0;
  // [8]  ,  .
  virtual HRESULT STDMETHODCALLTYPE get_Sheet(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::IPrintJob_SheetPtr* Sheet/*[out,retval]*/) = 0;
  // [9]    ,  .
  virtual HRESULT STDMETHODCALLTYPE RemoveSheets(TVariantInParam Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_PagesCount(long* Count/*[out,retval]*/) = 0;
  // [11]     .
  virtual HRESULT STDMETHODCALLTYPE GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]     -      
  virtual HRESULT STDMETHODCALLTYPE GetPagesMapGabarites(long* WPageCount/*[out]*/, 
                                                         long* HPageCount/*[out]*/, 
                                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]       
  virtual HRESULT STDMETHODCALLTYPE get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                                          TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]       
  virtual HRESULT STDMETHODCALLTYPE set_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                                          TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ShowPreviewWindow(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->ShowPreviewWindow((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Load(FileName, Errors, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Save(BSTR FileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Save(FileName, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Execute(BSTR OutputFileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Execute(OutputFileName, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                                ksSheetsRangeEnum Range/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddSheets(FileName, Sheets, Range, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_SheetsCount(void)
  {
    long Count;
    OLECHECK(this->get_SheetsCount((long*)&Count));
    return Count;
  }

  Kompasltapi7_tlb::IPrintJob_SheetPtr __fastcall get_Sheet(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPrintJob_SheetPtr Sheet;
    OLECHECK(this->get_Sheet(Index, (Kompasltapi7_tlb::IPrintJob_SheetPtr*)&Sheet));
    return Sheet;
  }

  TOLEBOOL __fastcall RemoveSheets(TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->RemoveSheets(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_PagesCount(void)
  {
    long Count;
    OLECHECK(this->get_PagesCount((long*)&Count));
    return Count;
  }

  TOLEBOOL __fastcall GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPageGabarites(Width, Height, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetPagesMapGabarites(long* WPageCount/*[out]*/, long* HPageCount/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPagesMapGabarites(WPageCount, HPageCount, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_PagePrintableFlag(WPage, HPage, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            SheetsCount = {read = get_SheetsCount};
  __property   long            PagesCount = {read = get_PagesCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPrintJob_Sheet
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0EC985BC-81FC-498E-BF15-03DDC870AA33}
// *********************************************************************//
interface IPrintJob_Sheet  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  - .
  virtual HRESULT STDMETHODCALLTYPE get_DocumentName(BSTR* DocumentName/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* Number/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_Orientation(ksAngleEnum* Value/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE set_Orientation(ksAngleEnum Value/*[in]*/) = 0;
  // [5]       .
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [5]       .
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [6]   Y    .
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [6]   Y    .
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_Scale(double PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_Scale(double* PVal/*[out,retval]*/) = 0;
  // [8]      .
  virtual HRESULT STDMETHODCALLTYPE get_ClipFlag(TOLEBOOL* Flag/*[out,retval]*/) = 0;
  // [8]      .
  virtual HRESULT STDMETHODCALLTYPE set_ClipFlag(TOLEBOOL Flag/*[in]*/) = 0;
  // [9]      .
  virtual HRESULT STDMETHODCALLTYPE GetClipFrameGabarites(double* Left/*[out]*/, 
                                                          double* Bottom/*[out]*/, 
                                                          double* Right/*[out]*/, 
                                                          double* Top/*[out]*/, 
                                                          TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]      .
  virtual HRESULT STDMETHODCALLTYPE SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                                          double Right/*[in]*/, double Top/*[in]*/, 
                                                          TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_DocumentName(void)
  {
    BSTR DocumentName = 0;
    OLECHECK(this->get_DocumentName((BSTR*)&DocumentName));
    return DocumentName;
  }

  long __fastcall get_Number(void)
  {
    long Number;
    OLECHECK(this->get_Number((long*)&Number));
    return Number;
  }

  TOLEBOOL __fastcall GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetGabarites(Width, Height, (TOLEBOOL*)&Result));
    return Result;
  }

  ksAngleEnum __fastcall get_Orientation(void)
  {
    ksAngleEnum Value;
    OLECHECK(this->get_Orientation((ksAngleEnum*)&Value));
    return Value;
  }

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Scale(void)
  {
    double PVal;
    OLECHECK(this->get_Scale((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ClipFlag(void)
  {
    TOLEBOOL Flag;
    OLECHECK(this->get_ClipFlag((TOLEBOOL*)&Flag));
    return Flag;
  }

  TOLEBOOL __fastcall GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                            double* Right/*[out]*/, double* Top/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetClipFrameGabarites(Left, Bottom, Right, Top, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                            double Right/*[in]*/, double Top/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetClipFrameGabarites(Left, Bottom, Right, Top, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   BSTR            DocumentName = {read = get_DocumentName};
  __property   long            Number = {read = get_Number};
  __property   ksAngleEnum Orientation = {read = get_Orientation, write = set_Orientation};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   TOLEBOOL        ClipFlag = {read = get_ClipFlag, write = set_ClipFlag};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasDocument2D
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {096E62B3-7184-4998-9925-74BB710D8D8E}
// *********************************************************************//
interface IKompasDocument2D  : public Kompasltapi7_tlb::IKompasDocument
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_ViewsAndLayersManager(Kompasltapi7_tlb::IViewsAndLayersManagerPtr* Result/*[out,retval]*/) = 0;
  // [2]       .
  virtual HRESULT STDMETHODCALLTYPE GetDrawingObjectNotifyResult(LPDISPATCH* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IViewsAndLayersManagerPtr __fastcall get_ViewsAndLayersManager(void)
  {
    Kompasltapi7_tlb::IViewsAndLayersManagerPtr Result;
    OLECHECK(this->get_ViewsAndLayersManager((Kompasltapi7_tlb::IViewsAndLayersManagerPtr*)&Result));
    return Result;
  }

  LPDISPATCH __fastcall GetDrawingObjectNotifyResult(void)
  {
    LPDISPATCH Result;
    OLECHECK(this->GetDrawingObjectNotifyResult((LPDISPATCH*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IViewsAndLayersManagerPtr ViewsAndLayersManager = {read = get_ViewsAndLayersManager};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IViewsAndLayersManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A4737593-578B-4187-8CAD-E1056EB5404B}
// *********************************************************************//
interface IViewsAndLayersManager  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Views(Kompasltapi7_tlb::IViewsPtr* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IViewsPtr __fastcall get_Views(void)
  {
    Kompasltapi7_tlb::IViewsPtr PVal;
    OLECHECK(this->get_Views((Kompasltapi7_tlb::IViewsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILayerGroupsPtr __fastcall get_LayerGroups(void)
  {
    Kompasltapi7_tlb::ILayerGroupsPtr PVal;
    OLECHECK(this->get_LayerGroups((Kompasltapi7_tlb::ILayerGroupsPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IViewsPtr Views = {read = get_Views};
  __property   Kompasltapi7_tlb::ILayerGroupsPtr LayerGroups = {read = get_LayerGroups};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3DD7F97B-59CB-4297-A1BA-04E5A7FFF448}
// *********************************************************************//
interface IDrawingObjects  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,      .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IViews
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CD1B5E6-C1A2-4910-8D0C-97080B14AA3D}
// *********************************************************************//
interface IViews  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   ,    .
  virtual HRESULT STDMETHODCALLTYPE get_View(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/) = 0;
  // [2]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_ViewByNumber(long Numb/*[in]*/, 
                                                     Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/) = 0;
  // [3]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(LtViewType ViewType/*[in]*/, 
                                        Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_ActiveView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/) = 0;
  // [5]      (   ).
  virtual HRESULT STDMETHODCALLTYPE AddStandartViews(BSTR FileName/*[in]*/, 
                                                     BSTR ProjectionName/*[in]*/, 
                                                     TVariantInParam ProjectionsTypes/*[in]*/, 
                                                     double X/*[in]*/, double Y/*[in]*/, 
                                                     double Scale/*[in]*/, double DX/*[in]*/, 
                                                     double DY/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IViewPtr __fastcall get_View(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IViewPtr Result;
    OLECHECK(this->get_View(Index, (Kompasltapi7_tlb::IViewPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IViewPtr __fastcall get_ViewByNumber(long Numb/*[in]*/)
  {
    Kompasltapi7_tlb::IViewPtr Result;
    OLECHECK(this->get_ViewByNumber(Numb, (Kompasltapi7_tlb::IViewPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IViewPtr __fastcall Add(LtViewType ViewType/*[in]*/)
  {
    Kompasltapi7_tlb::IViewPtr Result;
    OLECHECK(this->Add(ViewType, (Kompasltapi7_tlb::IViewPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IViewPtr __fastcall get_ActiveView(void)
  {
    Kompasltapi7_tlb::IViewPtr Result;
    OLECHECK(this->get_ActiveView((Kompasltapi7_tlb::IViewPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                       TVariantInParam ProjectionsTypes/*[in]*/, double X/*[in]*/, 
                                       double Y/*[in]*/, double Scale/*[in]*/, double DX/*[in]*/, 
                                       double DY/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddStandartViews(FileName, ProjectionName, ProjectionsTypes, X, Y, Scale, DX, DY, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IViewPtr ActiveView = {read = get_ActiveView};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {07EF021F-11C1-4015-8D87-4DC94A2A71B0}
// *********************************************************************//
interface IDrawingObject  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [3000]   .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/) = 0;
  // [3001]  ,    .   -   .
  virtual HRESULT STDMETHODCALLTYPE get_LayerNumber(long* PVal/*[out,retval]*/) = 0;
  // [3001]  ,    .   -   .
  virtual HRESULT STDMETHODCALLTYPE set_LayerNumber(long PVal/*[in]*/) = 0;
  // [3002]    .
  virtual HRESULT STDMETHODCALLTYPE get_Temp(TOLEBOOL* Type/*[out,retval]*/) = 0;
  // [3003]    .
  virtual HRESULT STDMETHODCALLTYPE get_Valid(TOLEBOOL* Type/*[out,retval]*/) = 0;
  // [3004]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3005]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3006]       .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/) = 0;
  // [3006]       .
  virtual HRESULT STDMETHODCALLTYPE set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void)
  {
    DrawingObjectTypeEnum Type;
    OLECHECK(this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type));
    return Type;
  }

  long __fastcall get_LayerNumber(void)
  {
    long PVal;
    OLECHECK(this->get_LayerNumber((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Temp(void)
  {
    TOLEBOOL Type;
    OLECHECK(this->get_Temp((TOLEBOOL*)&Type));
    return Type;
  }

  TOLEBOOL __fastcall get_Valid(void)
  {
    TOLEBOOL Type;
    OLECHECK(this->get_Valid((TOLEBOOL*)&Type));
    return Type;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete((TOLEBOOL*)&PRes));
    return PRes;
  }

  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void)
  {
    ksDrawingObjectParamTypeEnum PVal;
    OLECHECK(this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal));
    return PVal;
  }


  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {21A7BA87-1C8B-41B4-8247-CDD593546F37}
// *********************************************************************//
interface IView  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Number(long PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Number(long* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in,def,opt]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]   - .
  virtual HRESULT STDMETHODCALLTYPE set_Background(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3]   - .
  virtual HRESULT STDMETHODCALLTYPE get_Background(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]   - .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4]   - .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]   - .
  virtual HRESULT STDMETHODCALLTYPE set_Current(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]   - .
  virtual HRESULT STDMETHODCALLTYPE get_Current(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_Color(long PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_Color(long* PVal/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR PVal/*[in]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* PVal/*[out,retval]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE get_ObjectCount(long* PVal/*[out,retval]*/) = 0;
  // [9]    X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [9]    X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [10]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [10]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE set_Scale(double PVal/*[in]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_Scale(double* PVal/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE get_ViewType(LtViewType* PVal/*[out,retval]*/) = 0;
  // [14]  .
  virtual HRESULT STDMETHODCALLTYPE get_Layers(Kompasltapi7_tlb::ILayersPtr* PVal/*[out,retval]*/) = 0;
  // [15]       SAFEARRAY VT_DISPATCH
  virtual HRESULT STDMETHODCALLTYPE get_Variables(TVariant* Result/*[out,retval]*/) = 0;
  // [16]     ,     
  virtual HRESULT STDMETHODCALLTYPE get_Variable(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/) = 0;
  // [17]    .
  virtual HRESULT STDMETHODCALLTYPE get_VariablesCount(long* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Number(void)
  {
    long PVal;
    OLECHECK(this->get_Number((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Background(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Background((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Current(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Current((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Color(void)
  {
    long PVal;
    OLECHECK(this->get_Color((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Comment((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_ObjectCount(void)
  {
    long PVal;
    OLECHECK(this->get_ObjectCount((long*)&PVal));
    return PVal;
  }

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Scale(void)
  {
    double PVal;
    OLECHECK(this->get_Scale((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  LtViewType __fastcall get_ViewType(void)
  {
    LtViewType PVal;
    OLECHECK(this->get_ViewType((LtViewType*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILayersPtr __fastcall get_Layers(void)
  {
    Kompasltapi7_tlb::ILayersPtr PVal;
    OLECHECK(this->get_Layers((Kompasltapi7_tlb::ILayersPtr*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Variables(void)
  {
    TVariant Result;
    OLECHECK(this->get_Variables((TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IVariable7Ptr Result;
    OLECHECK(this->get_Variable(Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result));
    return Result;
  }

  long __fastcall get_VariablesCount(void)
  {
    long Result;
    OLECHECK(this->get_VariablesCount((long*)&Result));
    return Result;
  }


  __property   long            Number = {read = get_Number, write = set_Number};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Background = {read = get_Background, write = set_Background};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   long            ObjectCount = {read = get_ObjectCount};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   LtViewType ViewType = {read = get_ViewType};
  __property   Kompasltapi7_tlb::ILayersPtr Layers = {read = get_Layers};
  __property   long            VariablesCount = {read = get_VariablesCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6DC2898-D596-4418-A21A-D15AE07B9A40}
// *********************************************************************//
interface ILayers  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Layer(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/) = 0;
  // [2]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_LayerByNumber(long Number/*[in]*/, 
                                                      Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/) = 0;
  // [3]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILayerPtr __fastcall get_Layer(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILayerPtr Result;
    OLECHECK(this->get_Layer(Index, (Kompasltapi7_tlb::ILayerPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILayerPtr __fastcall get_LayerByNumber(long Number/*[in]*/)
  {
    Kompasltapi7_tlb::ILayerPtr Result;
    OLECHECK(this->get_LayerByNumber(Number, (Kompasltapi7_tlb::ILayerPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILayerPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ILayerPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ILayerPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Attach(PVal, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Detach(PVal, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9AD76C38-CC48-4901-AEE5-27B48F51563C}
// *********************************************************************//
interface ILayer  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]   - .
  virtual HRESULT STDMETHODCALLTYPE set_Background(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [2]   - .
  virtual HRESULT STDMETHODCALLTYPE get_Background(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]   -   .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3]   -   .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]   - .
  virtual HRESULT STDMETHODCALLTYPE set_Current(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]   - .
  virtual HRESULT STDMETHODCALLTYPE get_Current(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Color(long PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Color(long* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* PVal/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_ObjectCount(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Background(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Background((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Current(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Current((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Color(void)
  {
    long PVal;
    OLECHECK(this->get_Color((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Comment((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_ObjectCount(void)
  {
    long PVal;
    OLECHECK(this->get_ObjectCount((long*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Background = {read = get_Background, write = set_Background};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   long            ObjectCount = {read = get_ObjectCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IVariable7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BAB52D9-8EF6-43A6-A1B8-AF42D5961A94}
// *********************************************************************//
interface IVariable7  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_Note(BSTR PVal/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Note(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Value(double PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Value(double* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_External(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_External(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Information(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Information(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Expression(BSTR PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Expression(BSTR* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_ParameterNote(BSTR* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_DisplayName(BSTR* PVal/*[out,retval]*/) = 0;
  // [9]      .
  virtual HRESULT STDMETHODCALLTYPE get_LinkVariableName(BSTR* PVal/*[out,retval]*/) = 0;
  // [10] ,     .
  virtual HRESULT STDMETHODCALLTYPE get_LinkDocumentName(BSTR* PVal/*[out,retval]*/) = 0;
  // [11]    .
  virtual HRESULT STDMETHODCALLTYPE SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Note(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Note((BSTR*)&PVal));
    return PVal;
  }

  double __fastcall get_Value(void)
  {
    double PVal;
    OLECHECK(this->get_Value((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_External(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_External((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Information(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Information((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Expression(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Expression((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ParameterNote(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ParameterNote((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_DisplayName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_DisplayName((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LinkVariableName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LinkVariableName((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LinkDocumentName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LinkDocumentName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetLink(DocumentName, VariableName, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            Note = {read = get_Note, write = set_Note};
  __property   double          Value = {read = get_Value, write = set_Value};
  __property   TOLEBOOL        External = {read = get_External, write = set_External};
  __property   TOLEBOOL        Information = {read = get_Information, write = set_Information};
  __property   BSTR            Expression = {read = get_Expression, write = set_Expression};
  __property   BSTR            ParameterNote = {read = get_ParameterNote};
  __property   BSTR            DisplayName = {read = get_DisplayName};
  __property   BSTR            LinkVariableName = {read = get_LinkVariableName};
  __property   BSTR            LinkDocumentName = {read = get_LinkDocumentName};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayerGroups
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DBFF6D98-8F79-453E-9B8B-81E40A6D8027}
// *********************************************************************//
interface ILayerGroups  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]    ,    .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/) = 0;
  // [1]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, 
                                        TOLEBOOL Dinamic/*[in]*/, 
                                        Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILayerGroupPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILayerGroupPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ILayerGroupPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILayerGroupPtr __fastcall Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, 
                                                  TOLEBOOL Dinamic/*[in]*/)
  {
    Kompasltapi7_tlb::ILayerGroupPtr Result;
    OLECHECK(this->Add(Owner, Dinamic, (Kompasltapi7_tlb::ILayerGroupPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Attach(PGroup, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Detach(PGroup, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayerGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {265BBB5A-7B8A-4AA5-A0BB-FF64D23BE62B}
// *********************************************************************//
interface ILayerGroup  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   -  .
  virtual HRESULT STDMETHODCALLTYPE get_OwnerGroup(Kompasltapi7_tlb::ILayerGroupPtr* PVal/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Layers(Kompasltapi7_tlb::ILayersPtr* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in,def,opt]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_LayerFilterConditions(Kompasltapi7_tlb::ILayerFilterConditionsPtr* PVal/*[out,retval]*/) = 0;
  // [6]      ,   .
  virtual HRESULT STDMETHODCALLTYPE GetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                                   TOLEBOOL* Visible/*[out]*/, 
                                                   TOLEBOOL* Background/*[out]*/, 
                                                   TOLEBOOL* Curent/*[out]*/, long* Color/*[out]*/, 
                                                   TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [7]      ,   .
  virtual HRESULT STDMETHODCALLTYPE SetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                                   TOLEBOOL Visible/*[in]*/, 
                                                   TOLEBOOL Background/*[in]*/, 
                                                   TOLEBOOL Curent/*[in]*/, long Color/*[in]*/, 
                                                   TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [8]    (    ).
  virtual HRESULT STDMETHODCALLTYPE set_Current(TOLEBOOL PVal/*[in]*/) = 0;
  // [8]    (    ).
  virtual HRESULT STDMETHODCALLTYPE get_Current(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10]   - .
  virtual HRESULT STDMETHODCALLTYPE get_OwnerView(Kompasltapi7_tlb::IViewPtr* PVal/*[out,retval]*/) = 0;
  // [10]   - .
  virtual HRESULT STDMETHODCALLTYPE set_OwnerView(Kompasltapi7_tlb::IViewPtr PVal/*[in,def,opt]*/) = 0;
  // [11]    .
  virtual HRESULT STDMETHODCALLTYPE get_UniqueId(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILayerGroupPtr __fastcall get_OwnerGroup(void)
  {
    Kompasltapi7_tlb::ILayerGroupPtr PVal;
    OLECHECK(this->get_OwnerGroup((Kompasltapi7_tlb::ILayerGroupPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILayerGroupsPtr __fastcall get_LayerGroups(void)
  {
    Kompasltapi7_tlb::ILayerGroupsPtr Result;
    OLECHECK(this->get_LayerGroups((Kompasltapi7_tlb::ILayerGroupsPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILayersPtr __fastcall get_Layers(void)
  {
    Kompasltapi7_tlb::ILayersPtr Result;
    OLECHECK(this->get_Layers((Kompasltapi7_tlb::ILayersPtr*)&Result));
    return Result;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILayerFilterConditionsPtr __fastcall get_LayerFilterConditions(void)
  {
    Kompasltapi7_tlb::ILayerFilterConditionsPtr PVal;
    OLECHECK(this->get_LayerFilterConditions((Kompasltapi7_tlb::ILayerFilterConditionsPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL* Visible/*[out]*/, 
                                     TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                     long* Color/*[out]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->GetLayerStates(LayerIndex, Visible, Background, Curent, Color, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall SetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL Visible/*[in]*/, 
                                     TOLEBOOL Background/*[in]*/, TOLEBOOL Curent/*[in]*/, 
                                     long Color/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->SetLayerStates(LayerIndex, Visible, Background, Curent, Color, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall get_Current(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Current((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IViewPtr __fastcall get_OwnerView(void)
  {
    Kompasltapi7_tlb::IViewPtr PVal;
    OLECHECK(this->get_OwnerView((Kompasltapi7_tlb::IViewPtr*)&PVal));
    return PVal;
  }

  double __fastcall get_UniqueId(void)
  {
    double PVal;
    OLECHECK(this->get_UniqueId((double*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ILayerGroupPtr OwnerGroup = {read = get_OwnerGroup};
  __property   Kompasltapi7_tlb::ILayerGroupsPtr LayerGroups = {read = get_LayerGroups};
  __property   Kompasltapi7_tlb::ILayersPtr Layers = {read = get_Layers};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   Kompasltapi7_tlb::ILayerFilterConditionsPtr LayerFilterConditions = {read = get_LayerFilterConditions};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   Kompasltapi7_tlb::IViewPtr OwnerView = {read = get_OwnerView, write = set_OwnerView};
  __property   double          UniqueId = {read = get_UniqueId};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayerFilterConditions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BCA22E27-AB60-4BA6-87EE-92158AA6D366}
// *********************************************************************//
interface ILayerFilterConditions  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/) = 0;
  // [2]     (     ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILayerFilterConditionPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ILayerFilterConditionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ILayerFilterConditionPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ILayerFilterConditionPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILayerFilterCondition
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D743BC12-82A9-4E8F-85B2-7154A356ACC0}
// *********************************************************************//
interface ILayerFilterCondition  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE set_Number(BSTR PVal/*[in]*/) = 0;
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_Number(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]      - .
  virtual HRESULT STDMETHODCALLTYPE set_Background(FilterCondotionStateEnum PVal/*[in]*/) = 0;
  // [3]      - .
  virtual HRESULT STDMETHODCALLTYPE get_Background(FilterCondotionStateEnum* PVal/*[out,retval]*/) = 0;
  // [4]      -   .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(FilterCondotionStateEnum PVal/*[in]*/) = 0;
  // [4]      -   .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(FilterCondotionStateEnum* PVal/*[out,retval]*/) = 0;
  // [5]      -    .
  virtual HRESULT STDMETHODCALLTYPE set_HaveObjects(FilterCondotionStateEnum PVal/*[in]*/) = 0;
  // [5]      -    .
  virtual HRESULT STDMETHODCALLTYPE get_HaveObjects(FilterCondotionStateEnum* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_Color(long PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_Color(long* PVal/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR PVal/*[in]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Number(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Number((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  FilterCondotionStateEnum __fastcall get_Background(void)
  {
    FilterCondotionStateEnum PVal;
    OLECHECK(this->get_Background((FilterCondotionStateEnum*)&PVal));
    return PVal;
  }

  FilterCondotionStateEnum __fastcall get_Visible(void)
  {
    FilterCondotionStateEnum PVal;
    OLECHECK(this->get_Visible((FilterCondotionStateEnum*)&PVal));
    return PVal;
  }

  FilterCondotionStateEnum __fastcall get_HaveObjects(void)
  {
    FilterCondotionStateEnum PVal;
    OLECHECK(this->get_HaveObjects((FilterCondotionStateEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_Color(void)
  {
    long PVal;
    OLECHECK(this->get_Color((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Comment((BSTR*)&PVal));
    return PVal;
  }


  __property   BSTR            Number = {read = get_Number, write = set_Number};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   FilterCondotionStateEnum Background = {read = get_Background, write = set_Background};
  __property   FilterCondotionStateEnum Visible = {read = get_Visible, write = set_Visible};
  __property   FilterCondotionStateEnum HaveObjects = {read = get_HaveObjects, write = set_HaveObjects};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasDocument3D
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7B60E769-06C3-4FDC-9677-7B5EF5180308}
// *********************************************************************//
interface IKompasDocument3D  : public Kompasltapi7_tlb::IKompasDocument
{
public:
  // [5002]   ( ).
  virtual HRESULT STDMETHODCALLTYPE get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/) = 0;
  // [5003]  /   .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5003]  /   .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5004]  /   .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5004]  /   .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5005]  /  .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5005]  /  .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5006]  /   .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5006]  /   .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5007]  /  .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5007]  /  .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5008]  /  .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5008]  /  .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5009]  /   .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5009]  /   .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5010]  /   .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5010]  /   .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5011] .
  virtual HRESULT STDMETHODCALLTYPE set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5011] .
  virtual HRESULT STDMETHODCALLTYPE get_Perspective(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5012]   .
  virtual HRESULT STDMETHODCALLTYPE set_DrawMode(long PVal/*[in]*/) = 0;
  // [5012]   .
  virtual HRESULT STDMETHODCALLTYPE get_DrawMode(long* PVal/*[out,retval]*/) = 0;
  // [5013]    .
  virtual HRESULT STDMETHODCALLTYPE set_ShadedWireframe(TOLEBOOL PVal/*[in]*/) = 0;
  // [5013]    .
  virtual HRESULT STDMETHODCALLTYPE get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5014]      .
  virtual HRESULT STDMETHODCALLTYPE set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/) = 0;
  // [5014]      .
  virtual HRESULT STDMETHODCALLTYPE get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5015]  /  .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5015]  /  .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5016]  /   .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5016]  /   .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5017]  /    .
  virtual HRESULT STDMETHODCALLTYPE set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5017]  /    .
  virtual HRESULT STDMETHODCALLTYPE get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5018]      .
  virtual HRESULT STDMETHODCALLTYPE set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5018]      .
  virtual HRESULT STDMETHODCALLTYPE get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5019]   .
  virtual HRESULT STDMETHODCALLTYPE get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/) = 0;
  // [5020]   () .
  virtual HRESULT STDMETHODCALLTYPE get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/) = 0;
  // [5021]         libname.
  virtual HRESULT STDMETHODCALLTYPE CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                                 TVariantInParam Objects/*[in]*/, 
                                                 Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                                 Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/) = 0;
  // [5022]       SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                                     long Key3/*[in]*/, long Key4/*[in]*/, 
                                                     double Numb/*[in]*/, 
                                                     TVariantInParam Objects/*[in]*/, 
                                                     Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                                     TVariant* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPart7Ptr __fastcall get_TopPart(void)
  {
    Kompasltapi7_tlb::IPart7Ptr Result;
    OLECHECK(this->get_TopPart((Kompasltapi7_tlb::IPart7Ptr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_HideAllPlanes(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllPlanes((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllAxis(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllAxis((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllSketches(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllSketches((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllPlaces(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllPlaces((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllSurfaces(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllSurfaces((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllThreads(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllThreads((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllCurves(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllCurves((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllControlPoints(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllControlPoints((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Perspective(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Perspective((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_DrawMode(void)
  {
    long PVal;
    OLECHECK(this->get_DrawMode((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShadedWireframe(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShadedWireframe((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CreateObjectsInCurrentLocalCS(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CreateObjectsInCurrentLocalCS((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllDimensions(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllDimensions((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllDesignations(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllDesignations((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideAllAuxiliaryGeom(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideAllAuxiliaryGeom((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HideInComponentsMode(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HideInComponentsMode((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISelectionManagerPtr __fastcall get_SelectionManager(void)
  {
    Kompasltapi7_tlb::ISelectionManagerPtr PVal;
    OLECHECK(this->get_SelectionManager((Kompasltapi7_tlb::ISelectionManagerPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IChooseManagerPtr __fastcall get_ChooseManager(void)
  {
    Kompasltapi7_tlb::IChooseManagerPtr PVal;
    OLECHECK(this->get_ChooseManager((Kompasltapi7_tlb::IChooseManagerPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAttributePtr __fastcall CreateAttrEx(double AttrID/*[in]*/, 
                                                          BSTR Libname/*[in]*/, 
                                                          TVariantInParam Objects/*[in]*/, 
                                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
  {
    Kompasltapi7_tlb::IAttributePtr Result;
    OLECHECK(this->CreateAttrEx(AttrID, Libname, Objects, SourcePart, (Kompasltapi7_tlb::IAttributePtr*)&Result));
    return Result;
  }

  TVariant __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                       long Key4/*[in]*/, double Numb/*[in]*/, 
                                       TVariantInParam Objects/*[in]*/, 
                                       Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_AttributesEx(Key1, Key2, Key3, Key4, Numb, Objects, SourcePart, (TVariant*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IPart7Ptr TopPart = {read = get_TopPart};
  __property   TOLEBOOL        HideAllPlanes = {read = get_HideAllPlanes, write = set_HideAllPlanes};
  __property   TOLEBOOL        HideAllAxis = {read = get_HideAllAxis, write = set_HideAllAxis};
  __property   TOLEBOOL        HideAllSketches = {read = get_HideAllSketches, write = set_HideAllSketches};
  __property   TOLEBOOL        HideAllPlaces = {read = get_HideAllPlaces, write = set_HideAllPlaces};
  __property   TOLEBOOL        HideAllSurfaces = {read = get_HideAllSurfaces, write = set_HideAllSurfaces};
  __property   TOLEBOOL        HideAllThreads = {read = get_HideAllThreads, write = set_HideAllThreads};
  __property   TOLEBOOL        HideAllCurves = {read = get_HideAllCurves, write = set_HideAllCurves};
  __property   TOLEBOOL        HideAllControlPoints = {read = get_HideAllControlPoints, write = set_HideAllControlPoints};
  __property   TOLEBOOL        Perspective = {read = get_Perspective, write = set_Perspective};
  __property   long            DrawMode = {read = get_DrawMode, write = set_DrawMode};
  __property   TOLEBOOL        ShadedWireframe = {read = get_ShadedWireframe, write = set_ShadedWireframe};
  __property   TOLEBOOL        CreateObjectsInCurrentLocalCS = {read = get_CreateObjectsInCurrentLocalCS, write = set_CreateObjectsInCurrentLocalCS};
  __property   TOLEBOOL        HideAllDimensions = {read = get_HideAllDimensions, write = set_HideAllDimensions};
  __property   TOLEBOOL        HideAllDesignations = {read = get_HideAllDesignations, write = set_HideAllDesignations};
  __property   TOLEBOOL        HideAllAuxiliaryGeom = {read = get_HideAllAuxiliaryGeom, write = set_HideAllAuxiliaryGeom};
  __property   TOLEBOOL        HideInComponentsMode = {read = get_HideInComponentsMode, write = set_HideInComponentsMode};
  __property   Kompasltapi7_tlb::ISelectionManagerPtr SelectionManager = {read = get_SelectionManager};
  __property   Kompasltapi7_tlb::IChooseManagerPtr ChooseManager = {read = get_ChooseManager};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IModelObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E37256D4-9021-47AC-8FAF-3713FB2A50C3}
// *********************************************************************//
interface IModelObject  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [501]    .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [501]    .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [502]   .
  virtual HRESULT STDMETHODCALLTYPE set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [502]   .
  virtual HRESULT STDMETHODCALLTYPE get_Hidden(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [503]   .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [504]    .
  virtual HRESULT STDMETHODCALLTYPE get_Valid(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [505] ,  .
  virtual HRESULT STDMETHODCALLTYPE get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/) = 0;
  // [506]  3D   enum ksObj3dTypeEnum.
  virtual HRESULT STDMETHODCALLTYPE get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/) = 0;
  // [507]    .
  virtual HRESULT STDMETHODCALLTYPE get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Hidden(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Hidden((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->_Update((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Valid(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Valid((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void)
  {
    Kompasltapi7_tlb::IPart7Ptr Result;
    OLECHECK(this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result));
    return Result;
  }

  ksObj3dTypeEnum __fastcall get_ModelObjectType(void)
  {
    ksObj3dTypeEnum Type;
    OLECHECK(this->get_ModelObjectType((ksObj3dTypeEnum*)&Type));
    return Type;
  }

  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void)
  {
    Kompasltapi7_tlb::IFeature7Ptr PVal;
    OLECHECK(this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPart7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA4A5FDE-A08C-4F5A-8C04-98395BA44307}
// *********************************************************************//
interface IPart7  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Marking(BSTR* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Marking(BSTR PVal/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_FileName(BSTR PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_Standard(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Standard(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Fixed(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Fixed(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5] TRUE -   , FALSE - /.
  virtual HRESULT STDMETHODCALLTYPE get_Detail(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_Mass(double* PVal/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_Density(double* PVal/*[out,retval]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Material(BSTR* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE get_Parts(Kompasltapi7_tlb::IParts7Ptr* Result/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/) = 0;
  // [12]  SAFEARRAY .
  virtual HRESULT STDMETHODCALLTYPE get_PartsEx(TVariantInParam PartCollectionType/*[in]*/, 
                                                TVariant* Objects/*[out,retval]*/) = 0;
  // [13]   .
  virtual HRESULT STDMETHODCALLTYPE get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/, 
                                                      long* Count/*[out,retval]*/) = 0;
  // [14]    .
  virtual HRESULT STDMETHODCALLTYPE SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, 
                                                  double Y/*[in]*/, double Z/*[in]*/, 
                                                  TVariant* Result/*[out,retval]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE TransferObjects(TVariantInParam Objects/*[in]*/, 
                                                    Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                                    TOLEBOOL holdPosition/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [16] .
  virtual HRESULT STDMETHODCALLTYPE Load(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [17] .
  virtual HRESULT STDMETHODCALLTYPE Unload(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [18]   .
  virtual HRESULT STDMETHODCALLTYPE get_LoadState(ksLoadStateEnum* Type/*[out,retval]*/) = 0;
  // [19]   (   ).
  virtual HRESULT STDMETHODCALLTYPE get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/, 
                                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Marking(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Marking((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Standard(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Standard((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Fixed(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Fixed((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Detail(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Detail((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Mass(void)
  {
    double PVal;
    OLECHECK(this->get_Mass((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Density(void)
  {
    double PVal;
    OLECHECK(this->get_Density((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Material(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Material((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetMaterial(Name, Density, (TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IParts7Ptr __fastcall get_Parts(void)
  {
    Kompasltapi7_tlb::IParts7Ptr Result;
    OLECHECK(this->get_Parts((Kompasltapi7_tlb::IParts7Ptr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IVariableTablePtr __fastcall get_VariableTable(void)
  {
    Kompasltapi7_tlb::IVariableTablePtr Result;
    OLECHECK(this->get_VariableTable((Kompasltapi7_tlb::IVariableTablePtr*)&Result));
    return Result;
  }

  TVariant __fastcall get_PartsEx(TVariantInParam PartCollectionType/*[in]*/)
  {
    TVariant Objects;
    OLECHECK(this->get_PartsEx(PartCollectionType, (TVariant*)&Objects));
    return Objects;
  }

  long __fastcall get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/)
  {
    long Count;
    OLECHECK(this->get_InstanceCount(Part, (long*)&Count));
    return Count;
  }

  TVariant __fastcall SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, 
                                    double Y/*[in]*/, double Z/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->SelectByPoint(Objects, X, Y, Z, (TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall TransferObjects(TVariantInParam Objects/*[in]*/, 
                                      Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                      TOLEBOOL holdPosition/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->TransferObjects(Objects, Lcs, holdPosition, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Load(TOLEBOOL Full/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Load(Full, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Unload(TOLEBOOL Full/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Unload(Full, (TOLEBOOL*)&Result));
    return Result;
  }

  ksLoadStateEnum __fastcall get_LoadState(void)
  {
    ksLoadStateEnum Type;
    OLECHECK(this->get_LoadState((ksLoadStateEnum*)&Type));
    return Type;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_DefaultObject(Type, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }


  __property   BSTR            Marking = {read = get_Marking, write = set_Marking};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        Standard = {read = get_Standard, write = set_Standard};
  __property   TOLEBOOL        Fixed = {read = get_Fixed, write = set_Fixed};
  __property   TOLEBOOL        Detail = {read = get_Detail};
  __property   double          Mass = {read = get_Mass};
  __property   double          Density = {read = get_Density};
  __property   BSTR            Material = {read = get_Material};
  __property   Kompasltapi7_tlb::IParts7Ptr Parts = {read = get_Parts};
  __property   Kompasltapi7_tlb::IVariableTablePtr VariableTable = {read = get_VariableTable};
  __property   ksLoadStateEnum LoadState = {read = get_LoadState};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IFeature7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EF4343FA-985D-4FE9-AD5F-439BC8F92958}
// *********************************************************************//
interface IFeature7  : public IDispatch
{
public:
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2002] ,    .
  virtual HRESULT STDMETHODCALLTYPE get_UpdateStamp(long* PVal/*[out,retval]*/) = 0;
  // [2003] -.
  virtual HRESULT STDMETHODCALLTYPE get_OwnerFeature(Kompasltapi7_tlb::IFeature7Ptr* Result/*[out,retval]*/) = 0;
  // [2004]    .
  virtual HRESULT STDMETHODCALLTYPE get_Valid(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2005]   .
  virtual HRESULT STDMETHODCALLTYPE set_Excluded(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [2005]   .
  virtual HRESULT STDMETHODCALLTYPE get_Excluded(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2006]       (, , )   SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_ModelObjects(TVariantInParam ObjType/*[in]*/, 
                                                     TVariant* Result/*[out,retval]*/) = 0;
  // [2007]      enum ksObj3dTypeEnum: o3d_part(), o3d_entity(), o3d_mateConstraint().
  virtual HRESULT STDMETHODCALLTYPE get_FeatureType(ksObj3dTypeEnum* Type/*[out,retval]*/) = 0;
  // [2008]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2009]         SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_SubFeatures(ksTreeTypeEnum TreeType/*[in]*/, 
                                                    TOLEBOOL Through/*[in]*/, 
                                                    TOLEBOOL LibObject/*[in]*/, 
                                                    TVariant* Result/*[out,retval]*/) = 0;
  // [2010]   (SAFEARRAY)
  virtual HRESULT STDMETHODCALLTYPE get_ResultBodies(TVariant* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_UpdateStamp(void)
  {
    long PVal;
    OLECHECK(this->get_UpdateStamp((long*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_OwnerFeature(void)
  {
    Kompasltapi7_tlb::IFeature7Ptr Result;
    OLECHECK(this->get_OwnerFeature((Kompasltapi7_tlb::IFeature7Ptr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Valid(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Valid((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Excluded(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Excluded((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ModelObjects(TVariantInParam ObjType/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_ModelObjects(ObjType, (TVariant*)&Result));
    return Result;
  }

  ksObj3dTypeEnum __fastcall get_FeatureType(void)
  {
    ksObj3dTypeEnum Type;
    OLECHECK(this->get_FeatureType((ksObj3dTypeEnum*)&Type));
    return Type;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_SubFeatures(ksTreeTypeEnum TreeType/*[in]*/, 
                                      TOLEBOOL Through/*[in]*/, TOLEBOOL LibObject/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_SubFeatures(TreeType, Through, LibObject, (TVariant*)&Result));
    return Result;
  }

  TVariant __fastcall get_ResultBodies(void)
  {
    TVariant Result;
    OLECHECK(this->get_ResultBodies((TVariant*)&Result));
    return Result;
  }


  __property   BSTR            Name = {read = get_Name};
  __property   long            UpdateStamp = {read = get_UpdateStamp};
  __property   Kompasltapi7_tlb::IFeature7Ptr OwnerFeature = {read = get_OwnerFeature};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   TOLEBOOL        Excluded = {read = get_Excluded, write = set_Excluded};
  __property   ksObj3dTypeEnum FeatureType = {read = get_FeatureType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IModelObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {125CB096-639E-479F-98DE-F27FAB23838A}
// *********************************************************************//
interface IModelObjects  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IParts7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42F8FCEF-E56F-466C-8814-BEBAC0719AE6}
// *********************************************************************//
interface IParts7  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Part(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/) = 0;
  // [2]              .
  virtual HRESULT STDMETHODCALLTYPE AddFromFile(BSTR FileName/*[in]*/, 
                                                TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                                                TOLEBOOL Redraw/*[in,def,opt]*/, 
                                                Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/) = 0;
  // [3]           .
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR FileName/*[in]*/, 
                                        Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPart7Ptr Result;
    OLECHECK(this->get_Part(Index, (Kompasltapi7_tlb::IPart7Ptr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPart7Ptr __fastcall AddFromFile(BSTR FileName/*[in]*/, 
                                                     TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                                                     TOLEBOOL Redraw/*[in,def,opt]*/)
  {
    Kompasltapi7_tlb::IPart7Ptr Result;
    OLECHECK(this->AddFromFile(FileName, ExternalFile, Redraw, (Kompasltapi7_tlb::IPart7Ptr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPart7Ptr __fastcall Add(BSTR FileName/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/)
  {
    Kompasltapi7_tlb::IPart7Ptr Result;
    OLECHECK(this->Add(FileName, Plane, (Kompasltapi7_tlb::IPart7Ptr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IVariableTable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2B8B154E-ED76-4FF0-B3E4-FEE691D014A4}
// *********************************************************************//
interface IVariableTable  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [7001]      .
  virtual HRESULT STDMETHODCALLTYPE get_RowsCount(long* Val/*[out,retval]*/) = 0;
  // [7002]      .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnsCount(long* Val/*[out,retval]*/) = 0;
  // [7003]      .
  virtual HRESULT STDMETHODCALLTYPE get_VarName(long Column/*[in]*/, BSTR* Val/*[out,retval]*/) = 0;
  // [7003]      .
  virtual HRESULT STDMETHODCALLTYPE set_VarName(long Column/*[in]*/, BSTR Val/*[in]*/) = 0;
  // [7004]      .
  virtual HRESULT STDMETHODCALLTYPE get_VarNames(TVariant* Val/*[out,retval]*/) = 0;
  // [7004]      .
  virtual HRESULT STDMETHODCALLTYPE set_VarNames(TVariantInParam Val/*[in]*/) = 0;
  // [7005]   .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(long Val/*[in]*/, BSTR* BstrVal/*[out,retval]*/) = 0;
  // [7005]   .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(long Val/*[in]*/, BSTR BstrVal/*[in]*/) = 0;
  // [7006]  .
  virtual HRESULT STDMETHODCALLTYPE get_TableRow(TVariantInParam Index/*[in]*/, 
                                                 TVariant* Val/*[out,retval]*/) = 0;
  // [7006]  .
  virtual HRESULT STDMETHODCALLTYPE set_TableRow(TVariantInParam Index/*[in]*/, 
                                                 TVariantInParam Val/*[in]*/) = 0;
  // [7007]     .
  virtual HRESULT STDMETHODCALLTYPE get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                             double* Val/*[out,retval]*/) = 0;
  // [7007]     .
  virtual HRESULT STDMETHODCALLTYPE set_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                             double Val/*[in]*/) = 0;
  // [7008]     .
  virtual HRESULT STDMETHODCALLTYPE ApplyVars(TVariantInParam Index/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7009]     .
  virtual HRESULT STDMETHODCALLTYPE get_VisualTable(OLE_HANDLE WinVal/*[in]*/, 
                                                    TOLEBOOL Select/*[in]*/, 
                                                    long* PVal/*[out,retval]*/) = 0;
  // [7010]     .
  virtual HRESULT STDMETHODCALLTYPE AddColumn(BSTR Val/*[in]*/, long* ColVal/*[out,retval]*/) = 0;
  // [7011]     .
  virtual HRESULT STDMETHODCALLTYPE DeleteColumn(TVariantInParam ColVal/*[in]*/, 
                                                 TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7012]     .
  virtual HRESULT STDMETHODCALLTYPE AddRow(BSTR Val/*[in]*/, long* RowVal/*[out,retval]*/) = 0;
  // [7013]     .
  virtual HRESULT STDMETHODCALLTYPE DeleteRow(TVariantInParam RowVal/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7014]    -     .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7015]      .
  virtual HRESULT STDMETHODCALLTYPE FindColumnIndex(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_RowsCount(void)
  {
    long Val;
    OLECHECK(this->get_RowsCount((long*)&Val));
    return Val;
  }

  long __fastcall get_ColumnsCount(void)
  {
    long Val;
    OLECHECK(this->get_ColumnsCount((long*)&Val));
    return Val;
  }

  BSTR __fastcall get_VarName(long Column/*[in]*/)
  {
    BSTR Val = 0;
    OLECHECK(this->get_VarName(Column, (BSTR*)&Val));
    return Val;
  }

  TVariant __fastcall get_VarNames(void)
  {
    TVariant Val;
    OLECHECK(this->get_VarNames((TVariant*)&Val));
    return Val;
  }

  BSTR __fastcall get_Comment(long Val/*[in]*/)
  {
    BSTR BstrVal = 0;
    OLECHECK(this->get_Comment(Val, (BSTR*)&BstrVal));
    return BstrVal;
  }

  TVariant __fastcall get_TableRow(TVariantInParam Index/*[in]*/)
  {
    TVariant Val;
    OLECHECK(this->get_TableRow(Index, (TVariant*)&Val));
    return Val;
  }

  double __fastcall get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/)
  {
    double Val;
    OLECHECK(this->get_Cell(RowIndexVal, ColIndex, (double*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall ApplyVars(TVariantInParam Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->ApplyVars(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/)
  {
    long PVal;
    OLECHECK(this->get_VisualTable(WinVal, Select, (long*)&PVal));
    return PVal;
  }

  long __fastcall AddColumn(BSTR Val/*[in]*/)
  {
    long ColVal;
    OLECHECK(this->AddColumn(Val, (long*)&ColVal));
    return ColVal;
  }

  TOLEBOOL __fastcall DeleteColumn(TVariantInParam ColVal/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->DeleteColumn(ColVal, (TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall AddRow(BSTR Val/*[in]*/)
  {
    long RowVal;
    OLECHECK(this->AddRow(Val, (long*)&RowVal));
    return RowVal;
  }

  TOLEBOOL __fastcall DeleteRow(TVariantInParam RowVal/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->DeleteRow(RowVal, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Clear((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall FindColumnIndex(BSTR Val/*[in]*/)
  {
    long PVal;
    OLECHECK(this->FindColumnIndex(Val, (long*)&PVal));
    return PVal;
  }


  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D71AEDBE-01D4-4C7D-96DC-94981F2A1C37}
// *********************************************************************//
interface IPoint3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [1]  X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [2]  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [2]  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [3]  Z.
  virtual HRESULT STDMETHODCALLTYPE set_Z(double PVal/*[in]*/) = 0;
  // [3]  Z.
  virtual HRESULT STDMETHODCALLTYPE get_Z(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/) = 0;
  // [8]    
  virtual HRESULT STDMETHODCALLTYPE get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Z(void)
  {
    double PVal;
    OLECHECK(this->get_Z((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetAssociationObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_AssociationObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  ksAnnotationSymbolEnum __fastcall get_Symbol(void)
  {
    ksAnnotationSymbolEnum PVal;
    OLECHECK(this->get_Symbol((ksAnnotationSymbolEnum*)&PVal));
    return PVal;
  }

  ksPoint3DTypeEnum __fastcall get_ParameterType(void)
  {
    ksPoint3DTypeEnum PVal;
    OLECHECK(this->get_ParameterType((ksPoint3DTypeEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parameters(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->get_Parameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Z = {read = get_Z, write = set_Z};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationObject = {read = get_AssociationObject};
  __property   ksAnnotationSymbolEnum Symbol = {read = get_Symbol, write = set_Symbol};
  __property   ksPoint3DTypeEnum ParameterType = {read = get_ParameterType, write = set_ParameterType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parameters = {read = get_Parameters};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILocalCoordinateSystem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BA6395F5-3506-4483-8864-4EEC220AF316}
// *********************************************************************//
interface ILocalCoordinateSystem  : public Kompasltapi7_tlb::IPoint3D
{
public:
  // [3001]    .
  virtual HRESULT STDMETHODCALLTYPE SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                          double NewVal/*[in]*/, 
                                                          TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3002]    .
  virtual HRESULT STDMETHODCALLTYPE set_OrientationType(ksOrientationTypeEnum Result/*[in]*/) = 0;
  // [3002]    .
  virtual HRESULT STDMETHODCALLTYPE get_OrientationType(ksOrientationTypeEnum* Result/*[out,retval]*/) = 0;
  // [3003]    .
  virtual HRESULT STDMETHODCALLTYPE ReadFromFile(BSTR FileName/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3004]    .
  virtual HRESULT STDMETHODCALLTYPE WriteToFile(BSTR FileName/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3005]  
  virtual HRESULT STDMETHODCALLTYPE SetStartingOrientation(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3006]    .
  virtual HRESULT STDMETHODCALLTYPE GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                              double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3007]    
  virtual HRESULT STDMETHODCALLTYPE get_LocalCSParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;
  // [3008]   - .
  virtual HRESULT STDMETHODCALLTYPE set_Current(TOLEBOOL Result/*[in]*/) = 0;
  // [3008]   - .
  virtual HRESULT STDMETHODCALLTYPE get_Current(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3009]   (  ).
  virtual HRESULT STDMETHODCALLTYPE get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/, 
                                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [3010]      SAFEARRAY double (VT_ARRAY | VT_R8).
  virtual HRESULT STDMETHODCALLTYPE InitByMatrix3D(TVariantInParam mtr/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                            double NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetDisplacementByAxis(Axis, NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  ksOrientationTypeEnum __fastcall get_OrientationType(void)
  {
    ksOrientationTypeEnum Result;
    OLECHECK(this->get_OrientationType((ksOrientationTypeEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ReadFromFile(BSTR FileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ReadFromFile(FileName, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall WriteToFile(BSTR FileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->WriteToFile(FileName, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetStartingOrientation(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetStartingOrientation((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetVector(Axis, X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_LocalCSParameters(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->get_LocalCSParameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Current(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Current((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_DefaultObject(Val, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall InitByMatrix3D(TVariantInParam mtr/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->InitByMatrix3D(mtr, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksOrientationTypeEnum OrientationType = {read = get_OrientationType, write = set_OrientationType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr LocalCSParameters = {read = get_LocalCSParameters};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISelectionManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E6DF688C-5B23-436B-A027-A96BFD5484CC}
// *********************************************************************//
interface ISelectionManager  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE Select(TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE Unselect(TVariantInParam Objects/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE UnselectAll(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]       SAFEARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_SelectedObjects(TVariant* Objects/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall Select(TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Select(Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Unselect(TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Unselect(Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall UnselectAll(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->UnselectAll((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->IsSelected(Object, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_SelectedObjects(void)
  {
    TVariant Objects;
    OLECHECK(this->get_SelectedObjects((TVariant*)&Objects));
    return Objects;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IChooseManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E2D9EAA6-F88C-4ADB-AC32-854E32E9FEE1}
// *********************************************************************//
interface IChooseManager  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE Choose(TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE Unchoose(TVariantInParam Objects/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE UnchooseAll(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]        SAFEARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_ChoosenObjects(TVariant* Objects/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall Choose(TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Choose(Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Unchoose(TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Unchoose(Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall UnchooseAll(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->UnchooseAll((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->IsChoosen(Object, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_ChoosenObjects(void)
  {
    TVariant Objects;
    OLECHECK(this->get_ChoosenObjects((TVariant*)&Objects));
    return Objects;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAttribute
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {94F965B0-5ABB-4994-98C7-B08FA8515452}
// *********************************************************************//
interface IAttribute  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]       SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE set_Objects(TVariantInParam Result/*[in]*/) = 0;
  // [1]       SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Objects(TVariant* Result/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                                              TVariant* Value/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                             long ColumnNumb/*[in]*/, TVariantInParam Value/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [4]      .
  virtual HRESULT STDMETHODCALLTYPE get_Values(TVariant* Values/*[out,retval]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                                              TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [6]       SAFEARRAY' VT_ARRAY | VT_BOOL.
  virtual HRESULT STDMETHODCALLTYPE get_FlagVisible(TVariant* Values/*[out,retval]*/) = 0;
  // [7]       SAFEARRAY' VT_ARRAY | VT_BOOL.
  virtual HRESULT STDMETHODCALLTYPE SetFlagVisible(BSTR Password/*[in]*/, 
                                                   TVariantInParam Values/*[in]*/, 
                                                   TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnKey(TVariant* Values/*[out,retval]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/, 
                                                 TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [10]       .
  virtual HRESULT STDMETHODCALLTYPE SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]       .
  virtual HRESULT STDMETHODCALLTYPE AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]      .
  virtual HRESULT STDMETHODCALLTYPE DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]     .
  virtual HRESULT STDMETHODCALLTYPE GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                                long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                                double* Numb/*[out]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [14]     .
  virtual HRESULT STDMETHODCALLTYPE SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, 
                                                long Key2/*[in]*/, long Key3/*[in]*/, 
                                                long Key4/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeType(Kompasltapi7_tlb::IAttributeTypePtr* Result/*[out,retval]*/) = 0;
  // [16]      .
  virtual HRESULT STDMETHODCALLTYPE get_RowsCount(long* Val/*[out,retval]*/) = 0;
  // [17]      .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnsCount(long* Val/*[out,retval]*/) = 0;
  // [18]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [19]       .
  virtual HRESULT STDMETHODCALLTYPE ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                             TOLEBOOL ReadOnly/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [20]         SAFEARRAY' VT_ARRAY | VT_BOOL.
  virtual HRESULT STDMETHODCALLTYPE get_RecordFlagVisible(long ColumnNumb/*[in]*/, 
                                                          TVariant* Result/*[out,retval]*/) = 0;
  // [21]         SAFEARRAY' VT_ARRAY | VT_BOOL.
  virtual HRESULT STDMETHODCALLTYPE SetRecordFlagVisible(BSTR Password/*[in]*/, 
                                                         long ColumnNumb/*[in]*/, 
                                                         TVariantInParam Values/*[in]*/, 
                                                         TOLEBOOL* Res/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Objects(void)
  {
    TVariant Result;
    OLECHECK(this->get_Objects((TVariant*)&Result));
    return Result;
  }

  TVariant __fastcall get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/)
  {
    TVariant Value;
    OLECHECK(this->get_Value(RowNumb, ColumnNumb, (TVariant*)&Value));
    return Value;
  }

  TOLEBOOL __fastcall SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                               TVariantInParam Value/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetValue(Password, RowNumb, ColumnNumb, Value, (TOLEBOOL*)&Res));
    return Res;
  }

  TVariant __fastcall get_Values(void)
  {
    TVariant Values;
    OLECHECK(this->get_Values((TVariant*)&Values));
    return Values;
  }

  TOLEBOOL __fastcall SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetValues(Password, Values, (TOLEBOOL*)&Res));
    return Res;
  }

  TVariant __fastcall get_FlagVisible(void)
  {
    TVariant Values;
    OLECHECK(this->get_FlagVisible((TVariant*)&Values));
    return Values;
  }

  TOLEBOOL __fastcall SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetFlagVisible(Password, Values, (TOLEBOOL*)&Res));
    return Res;
  }

  TVariant __fastcall get_ColumnKey(void)
  {
    TVariant Values;
    OLECHECK(this->get_ColumnKey((TVariant*)&Values));
    return Values;
  }

  TOLEBOOL __fastcall SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetColumnKey(Password, Keys, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPassword(OldPassword, NewPassword, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddRow(Password, RowNumb, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteRow(Password, RowNumb, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                  long* Key4/*[out]*/, double* Numb/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetKeysInfo(Key1, Key2, Key3, Key4, Numb, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                  long Key3/*[in]*/, long Key4/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetKeysInfo(Password, Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAttributeTypePtr __fastcall get_AttributeType(void)
  {
    Kompasltapi7_tlb::IAttributeTypePtr Result;
    OLECHECK(this->get_AttributeType((Kompasltapi7_tlb::IAttributeTypePtr*)&Result));
    return Result;
  }

  long __fastcall get_RowsCount(void)
  {
    long Val;
    OLECHECK(this->get_RowsCount((long*)&Val));
    return Val;
  }

  long __fastcall get_ColumnsCount(void)
  {
    long Val;
    OLECHECK(this->get_ColumnsCount((long*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete(Password, Objects, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                               TOLEBOOL ReadOnly/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->ViewEdit(Parent, Password, ReadOnly, (TOLEBOOL*)&Res));
    return Res;
  }

  TVariant __fastcall get_RecordFlagVisible(long ColumnNumb/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_RecordFlagVisible(ColumnNumb, (TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                           TVariantInParam Values/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetRecordFlagVisible(Password, ColumnNumb, Values, (TOLEBOOL*)&Res));
    return Res;
  }


  __property   Kompasltapi7_tlb::IAttributeTypePtr AttributeType = {read = get_AttributeType};
  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAttributeType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {414CF83E-4FA3-42AB-BC26-6C6BBF91BB0F}
// *********************************************************************//
interface IAttributeType  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   
  virtual HRESULT STDMETHODCALLTYPE set_TypeName(BSTR PVal/*[in]*/) = 0;
  // [1]   
  virtual HRESULT STDMETHODCALLTYPE get_TypeName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]  
  virtual HRESULT STDMETHODCALLTYPE set_AttrType(ksAttributeTypeEnum PVal/*[in]*/) = 0;
  // [2]  
  virtual HRESULT STDMETHODCALLTYPE get_AttrType(ksAttributeTypeEnum* PVal/*[out,retval]*/) = 0;
  // [3]     .
  virtual HRESULT STDMETHODCALLTYPE GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                                long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, 
                                                long Key3/*[in]*/, long Key4/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]   
  virtual HRESULT STDMETHODCALLTYPE get_UniqueNumb(double* PVal/*[out,retval]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnInfo(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE AddColumn(long Index/*[in]*/, 
                                              ksValueTypeEnum Type, BSTR Name, 
                                              Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [11]        .
  virtual HRESULT STDMETHODCALLTYPE ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                             TOLEBOOL ReadOnly/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE set_RowsCount(long Count/*[in]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE get_RowsCount(long* Count/*[out,retval]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_TypeName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_TypeName((BSTR*)&PVal));
    return PVal;
  }

  ksAttributeTypeEnum __fastcall get_AttrType(void)
  {
    ksAttributeTypeEnum PVal;
    OLECHECK(this->get_AttrType((ksAttributeTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                  long* Key4/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetKeysInfo(Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                  long Key4/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetKeysInfo(Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_UniqueNumb(void)
  {
    double PVal;
    OLECHECK(this->get_UniqueNumb((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPassword(OldPassword, NewPassword, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IColumnInfoPtr __fastcall get_ColumnInfo(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IColumnInfoPtr Result;
    OLECHECK(this->get_ColumnInfo(Index, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IColumnInfoPtr __fastcall AddColumn(long Index/*[in]*/, 
                                                        ksValueTypeEnum Type, 
                                                        BSTR Name)
  {
    Kompasltapi7_tlb::IColumnInfoPtr Result;
    OLECHECK(this->AddColumn(Index, Type, Name, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall _Update(BSTR Password/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update(Password, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Delete(BSTR Password/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete(Password, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                               TOLEBOOL ReadOnly/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->ViewEdit(Parent, Password, ReadOnly, (TOLEBOOL*)&Res));
    return Res;
  }

  long __fastcall get_RowsCount(void)
  {
    long Count;
    OLECHECK(this->get_RowsCount((long*)&Count));
    return Count;
  }

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }


  __property   BSTR            TypeName = {read = get_TypeName, write = set_TypeName};
  __property   ksAttributeTypeEnum AttrType = {read = get_AttrType, write = set_AttrType};
  __property   double          UniqueNumb = {read = get_UniqueNumb};
  __property   long            RowsCount = {read = get_RowsCount, write = set_RowsCount};
  __property   BSTR            FileName = {read = get_FileName};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IColumnInfo
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3FDE0F44-4459-49F3-A012-E64F9BFA454D}
// *********************************************************************//
interface IColumnInfo  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  
  virtual HRESULT STDMETHODCALLTYPE set_Caption(BSTR PVal/*[in]*/) = 0;
  // [1]  
  virtual HRESULT STDMETHODCALLTYPE get_Caption(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]   
  virtual HRESULT STDMETHODCALLTYPE set_ColType(ksValueTypeEnum PVal/*[in]*/) = 0;
  // [2]   
  virtual HRESULT STDMETHODCALLTYPE get_ColType(ksValueTypeEnum* PVal/*[out,retval]*/) = 0;
  // [3]  
  virtual HRESULT STDMETHODCALLTYPE set_Key(long PVal/*[in]*/) = 0;
  // [3]  
  virtual HRESULT STDMETHODCALLTYPE get_Key(long* PVal/*[out,retval]*/) = 0;
  // [4]   
  virtual HRESULT STDMETHODCALLTYPE set_DefValue(TVariantInParam PVal/*[in]*/) = 0;
  // [4]   
  virtual HRESULT STDMETHODCALLTYPE get_DefValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [5]   
  virtual HRESULT STDMETHODCALLTYPE set_ListValue(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]   
  virtual HRESULT STDMETHODCALLTYPE get_ListValue(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]      
  virtual HRESULT STDMETHODCALLTYPE set_SortListValue(TOLEBOOL PVal/*[in]*/) = 0;
  // [6]      
  virtual HRESULT STDMETHODCALLTYPE get_SortListValue(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]  
  virtual HRESULT STDMETHODCALLTYPE set_Range(TVariantInParam PVal/*[in]*/) = 0;
  // [7]  
  virtual HRESULT STDMETHODCALLTYPE get_Range(TVariant* PVal/*[out,retval]*/) = 0;
  // [8]     .
  virtual HRESULT STDMETHODCALLTYPE get_RecordColumnInfo(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE AddRecordColumn(long Index/*[in]*/, 
                                                    ksValueTypeEnum Type/*[in]*/, 
                                                    BSTR Name/*[in]*/, 
                                                    Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PRes/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Caption(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Caption((BSTR*)&PVal));
    return PVal;
  }

  ksValueTypeEnum __fastcall get_ColType(void)
  {
    ksValueTypeEnum PVal;
    OLECHECK(this->get_ColType((ksValueTypeEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_Key(void)
  {
    long PVal;
    OLECHECK(this->get_Key((long*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_DefValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_DefValue((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ListValue(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ListValue((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SortListValue(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SortListValue((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Range(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Range((TVariant*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IColumnInfoPtr __fastcall get_RecordColumnInfo(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IColumnInfoPtr Result;
    OLECHECK(this->get_RecordColumnInfo(Index, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IColumnInfoPtr __fastcall AddRecordColumn(long Index/*[in]*/, 
                                                              ksValueTypeEnum Type/*[in]*/, 
                                                              BSTR Name/*[in]*/)
  {
    Kompasltapi7_tlb::IColumnInfoPtr Result;
    OLECHECK(this->AddRecordColumn(Index, Type, Name, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete((TOLEBOOL*)&PRes));
    return PRes;
  }


  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   ksValueTypeEnum ColType = {read = get_ColType, write = set_ColType};
  __property   long            Key = {read = get_Key, write = set_Key};
  __property   TOLEBOOL        ListValue = {read = get_ListValue, write = set_ListValue};
  __property   TOLEBOOL        SortListValue = {read = get_SortListValue, write = set_SortListValue};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingObject1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {649F0EB2-EBC0-449B-8B61-DC3CF1953BF9}
// *********************************************************************//
interface IDrawingObject1  : public IDispatch
{
public:
  // [6001]  SAFEARRAY    .
  virtual HRESULT STDMETHODCALLTYPE get_Constraints(TVariant* Result/*[out,retval]*/) = 0;
  // [6002]    
  virtual HRESULT STDMETHODCALLTYPE NewConstraint(Kompasltapi7_tlb::IParametriticConstraintPtr* Result/*[out,retval]*/) = 0;
  // [6003]      .
  virtual HRESULT STDMETHODCALLTYPE Associate(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6004]   .
  virtual HRESULT STDMETHODCALLTYPE DeleteConstraints(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6005] (TRUE)/    
  virtual HRESULT STDMETHODCALLTYPE get_TransparentBackground(TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [6005] (TRUE)/    
  virtual HRESULT STDMETHODCALLTYPE set_TransparentBackground(TOLEBOOL Value/*[in]*/) = 0;
  // [6006] (TRUE)/        
  virtual HRESULT STDMETHODCALLTYPE get_AutoTransparentBackground(TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [6006] (TRUE)/        
  virtual HRESULT STDMETHODCALLTYPE set_AutoTransparentBackground(TOLEBOOL Value/*[in]*/) = 0;
  // [6007]   .
  virtual HRESULT STDMETHODCALLTYPE get_IsGeometryObject(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6008]   .
  virtual HRESULT STDMETHODCALLTYPE get_IsAnnotativeObject(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6009] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE get_IsCurve(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Constraints(void)
  {
    TVariant Result;
    OLECHECK(this->get_Constraints((TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IParametriticConstraintPtr __fastcall NewConstraint(void)
  {
    Kompasltapi7_tlb::IParametriticConstraintPtr Result;
    OLECHECK(this->NewConstraint((Kompasltapi7_tlb::IParametriticConstraintPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Associate(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Associate((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteConstraints(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteConstraints((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_TransparentBackground(void)
  {
    TOLEBOOL Value;
    OLECHECK(this->get_TransparentBackground((TOLEBOOL*)&Value));
    return Value;
  }

  TOLEBOOL __fastcall get_AutoTransparentBackground(void)
  {
    TOLEBOOL Value;
    OLECHECK(this->get_AutoTransparentBackground((TOLEBOOL*)&Value));
    return Value;
  }

  TOLEBOOL __fastcall get_IsGeometryObject(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsGeometryObject((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_IsAnnotativeObject(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsAnnotativeObject((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_IsCurve(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsCurve((TOLEBOOL*)&Result));
    return Result;
  }


  __property   TOLEBOOL        TransparentBackground = {read = get_TransparentBackground, write = set_TransparentBackground};
  __property   TOLEBOOL        AutoTransparentBackground = {read = get_AutoTransparentBackground, write = set_AutoTransparentBackground};
  __property   TOLEBOOL        IsGeometryObject = {read = get_IsGeometryObject};
  __property   TOLEBOOL        IsAnnotativeObject = {read = get_IsAnnotativeObject};
  __property   TOLEBOOL        IsCurve = {read = get_IsCurve};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IParametriticConstraint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {131069F4-A4E2-4DB4-A559-85EACCC74CE4}
// *********************************************************************//
interface IParametriticConstraint  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_ConstraintType(ksConstraintTypeEnum PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_ConstraintType(ksConstraintTypeEnum* PVal/*[out,retval]*/) = 0;
  // [2]     (  0,     0-).
  virtual HRESULT STDMETHODCALLTYPE set_Index(long PVal/*[in]*/) = 0;
  // [2]     (  0,     0-).
  virtual HRESULT STDMETHODCALLTYPE get_Index(long* PVal/*[out,retval]*/) = 0;
  // [3]     SAFEARRAY    .
  virtual HRESULT STDMETHODCALLTYPE set_Partner(TVariantInParam PVal/*[in]*/) = 0;
  // [3]     SAFEARRAY    .
  virtual HRESULT STDMETHODCALLTYPE get_Partner(TVariant* PVal/*[out,retval]*/) = 0;
  // [4]      (  0,     0-).
  virtual HRESULT STDMETHODCALLTYPE set_PartnerIndex(long PVal/*[in]*/) = 0;
  // [4]      (  0,     0-).
  virtual HRESULT STDMETHODCALLTYPE get_PartnerIndex(long* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Value(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Value(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Expression(BSTR PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Expression(BSTR* PVal/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR PVal/*[in]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* PVal/*[out,retval]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE set_Variable(BSTR PVal/*[in]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Variable(BSTR* PVal/*[out,retval]*/) = 0;
  // [9] .
  virtual HRESULT STDMETHODCALLTYPE set_Degrees(long PVal/*[in]*/) = 0;
  // [9] .
  virtual HRESULT STDMETHODCALLTYPE get_Degrees(long* PVal/*[out,retval]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE set_Minutes(long PVal/*[in]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE get_Minutes(long* PVal/*[out,retval]*/) = 0;
  // [11] .
  virtual HRESULT STDMETHODCALLTYPE set_Seconds(double PVal/*[in]*/) = 0;
  // [11] .
  virtual HRESULT STDMETHODCALLTYPE get_Seconds(double* PVal/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE Create(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [14] TRUE -  .
  virtual HRESULT STDMETHODCALLTYPE get_Valid(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [15]     ksSymmetryTwoPoints.
  virtual HRESULT STDMETHODCALLTYPE get_Axis(Kompasltapi7_tlb::IDrawingObjectPtr* PVal/*[out,retval]*/) = 0;
  // [15]     ksSymmetryTwoPoints.
  virtual HRESULT STDMETHODCALLTYPE set_Axis(Kompasltapi7_tlb::IDrawingObjectPtr PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksConstraintTypeEnum __fastcall get_ConstraintType(void)
  {
    ksConstraintTypeEnum PVal;
    OLECHECK(this->get_ConstraintType((ksConstraintTypeEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_Index(void)
  {
    long PVal;
    OLECHECK(this->get_Index((long*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Partner(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Partner((TVariant*)&PVal));
    return PVal;
  }

  long __fastcall get_PartnerIndex(void)
  {
    long PVal;
    OLECHECK(this->get_PartnerIndex((long*)&PVal));
    return PVal;
  }

  double __fastcall get_Value(void)
  {
    double PVal;
    OLECHECK(this->get_Value((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Expression(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Expression((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Comment((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Variable(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Variable((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_Degrees(void)
  {
    long PVal;
    OLECHECK(this->get_Degrees((long*)&PVal));
    return PVal;
  }

  long __fastcall get_Minutes(void)
  {
    long PVal;
    OLECHECK(this->get_Minutes((long*)&PVal));
    return PVal;
  }

  double __fastcall get_Seconds(void)
  {
    double PVal;
    OLECHECK(this->get_Seconds((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Delete((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Create(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Create((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Valid(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Valid((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Axis(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr PVal;
    OLECHECK(this->get_Axis((Kompasltapi7_tlb::IDrawingObjectPtr*)&PVal));
    return PVal;
  }


  __property   ksConstraintTypeEnum ConstraintType = {read = get_ConstraintType, write = set_ConstraintType};
  __property   long            Index = {read = get_Index, write = set_Index};
  __property   long            PartnerIndex = {read = get_PartnerIndex, write = set_PartnerIndex};
  __property   double          Value = {read = get_Value, write = set_Value};
  __property   BSTR            Expression = {read = get_Expression, write = set_Expression};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            Variable = {read = get_Variable, write = set_Variable};
  __property   long            Degrees = {read = get_Degrees, write = set_Degrees};
  __property   long            Minutes = {read = get_Minutes, write = set_Minutes};
  __property   double          Seconds = {read = get_Seconds, write = set_Seconds};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr Axis = {read = get_Axis, write = set_Axis};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasDocument1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {58890FE8-E671-4561-994A-600DD29032E4}
// *********************************************************************//
interface IKompasDocument1  : public IDispatch
{
public:
  // [10001]    .
  virtual HRESULT STDMETHODCALLTYPE Delete(TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10002]       SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Attributes(long Key1/*[in]*/, long Key2/*[in]*/, 
                                                   long Key3/*[in]*/, long Key4/*[in]*/, 
                                                   double Numb/*[in]*/, 
                                                   TVariantInParam Objects/*[in]*/, 
                                                   TVariant* Result/*[out,retval]*/) = 0;
  // [10003]       SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_ObjectsByAttr(long Key1/*[in]*/, long Key2/*[in]*/, 
                                                      long Key3/*[in]*/, long Key4/*[in]*/, 
                                                      double Numb/*[in]*/, 
                                                      TVariantInParam ObjectType/*[in]*/, 
                                                      TVariant* Result/*[out,retval]*/) = 0;
  // [10004]         libname.
  virtual HRESULT STDMETHODCALLTYPE CreateAttr(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                               TVariantInParam Objects/*[in]*/, 
                                               Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/) = 0;
  // [10005]      .
  virtual HRESULT STDMETHODCALLTYPE ViewEditAttr(OLE_HANDLE HWnd/*[in]*/, 
                                                 TVariantInParam Objects/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10006]   .
  virtual HRESULT STDMETHODCALLTYPE GetInterface(KompasAPIObjectTypeEnum Type/*[in]*/, 
                                                 Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;
  // [10007]       SAFEARRAY' BSTR  - (VT_ARRAY | VT_BSTR).
  virtual HRESULT STDMETHODCALLTYPE get_ExternalFilesNames(TOLEBOOL allFiles/*[in]*/, 
                                                           TVariant* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall Delete(TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Delete(Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_Attributes(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                     long Key4/*[in]*/, double Numb/*[in]*/, 
                                     TVariantInParam Objects/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_Attributes(Key1, Key2, Key3, Key4, Numb, Objects, (TVariant*)&Result));
    return Result;
  }

  TVariant __fastcall get_ObjectsByAttr(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                        long Key4/*[in]*/, double Numb/*[in]*/, 
                                        TVariantInParam ObjectType/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_ObjectsByAttr(Key1, Key2, Key3, Key4, Numb, ObjectType, (TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAttributePtr __fastcall CreateAttr(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                                        TVariantInParam Objects/*[in]*/)
  {
    Kompasltapi7_tlb::IAttributePtr Result;
    OLECHECK(this->CreateAttr(AttrID, Libname, Objects, (Kompasltapi7_tlb::IAttributePtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ViewEditAttr(OLE_HANDLE HWnd/*[in]*/, TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ViewEditAttr(HWnd, Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall GetInterface(KompasAPIObjectTypeEnum Type/*[in]*/)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->GetInterface(Type, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }

  TVariant __fastcall get_ExternalFilesNames(TOLEBOOL allFiles/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_ExternalFilesNames(allFiles, (TVariant*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasDocument2D1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FB57F1C4-44FE-4C73-9B15-87241E8735B5}
// *********************************************************************//
interface IKompasDocument2D1  : public IDispatch
{
public:
  // [11001]  .
  virtual HRESULT STDMETHODCALLTYPE get_EditMacroObject(Kompasltapi7_tlb::IMacroObjectPtr* PVal/*[out,retval]*/) = 0;
  // [11002]  .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingGroups(Kompasltapi7_tlb::IDrawingGroupsPtr* PVal/*[out,retval]*/) = 0;
  // [11003]   .
  virtual HRESULT STDMETHODCALLTYPE get_NamedGroups(Kompasltapi7_tlb::IDrawingGroupsPtr* PVal/*[out,retval]*/) = 0;
  // [11004]  .
  virtual HRESULT STDMETHODCALLTYPE get_CurrentGroup(Kompasltapi7_tlb::IDrawingGroupPtr* PVal/*[out,retval]*/) = 0;
  // [11005]   .
  virtual HRESULT STDMETHODCALLTYPE get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/) = 0;
  // [11006]   () .
  virtual HRESULT STDMETHODCALLTYPE get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/) = 0;
  // [11007]  .
  virtual HRESULT STDMETHODCALLTYPE CopyObjects(TVariantInParam Objects/*[in]*/, 
                                                Kompasltapi7_tlb::ICopyObjectParamPtr params/*[in]*/, 
                                                TVariant* Result/*[out,retval]*/) = 0;
  // [11008]       SAFEARRAY VT_DISPATCH
  virtual HRESULT STDMETHODCALLTYPE get_Variables(TOLEBOOL ExternalOnly/*[in]*/, 
                                                  TVariant* Result/*[out,retval]*/) = 0;
  // [11009]     ,     
  virtual HRESULT STDMETHODCALLTYPE get_Variable(TOLEBOOL External/*[in]*/, 
                                                 TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/) = 0;
  // [11010]    .
  virtual HRESULT STDMETHODCALLTYPE get_VariablesCount(TOLEBOOL External/*[in]*/, 
                                                       long* Result/*[out,retval]*/) = 0;
  // [11011]     .
  virtual HRESULT STDMETHODCALLTYPE UpdateVariables(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11012]  .
  virtual HRESULT STDMETHODCALLTYPE get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/) = 0;
  // [11013]        
  virtual HRESULT STDMETHODCALLTYPE IsVariableNameValid(BSTR Name, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11014]  (      ).
  virtual HRESULT STDMETHODCALLTYPE AddVariable(BSTR Name/*[in]*/, double Value/*[in]*/, 
                                                BSTR Note/*[in]*/, 
                                                Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/) = 0;
  // [11015]  .
  virtual HRESULT STDMETHODCALLTYPE RebuildDocument(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IMacroObjectPtr __fastcall get_EditMacroObject(void)
  {
    Kompasltapi7_tlb::IMacroObjectPtr PVal;
    OLECHECK(this->get_EditMacroObject((Kompasltapi7_tlb::IMacroObjectPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingGroupsPtr __fastcall get_DrawingGroups(void)
  {
    Kompasltapi7_tlb::IDrawingGroupsPtr PVal;
    OLECHECK(this->get_DrawingGroups((Kompasltapi7_tlb::IDrawingGroupsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingGroupsPtr __fastcall get_NamedGroups(void)
  {
    Kompasltapi7_tlb::IDrawingGroupsPtr PVal;
    OLECHECK(this->get_NamedGroups((Kompasltapi7_tlb::IDrawingGroupsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall get_CurrentGroup(void)
  {
    Kompasltapi7_tlb::IDrawingGroupPtr PVal;
    OLECHECK(this->get_CurrentGroup((Kompasltapi7_tlb::IDrawingGroupPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISelectionManagerPtr __fastcall get_SelectionManager(void)
  {
    Kompasltapi7_tlb::ISelectionManagerPtr PVal;
    OLECHECK(this->get_SelectionManager((Kompasltapi7_tlb::ISelectionManagerPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IChooseManagerPtr __fastcall get_ChooseManager(void)
  {
    Kompasltapi7_tlb::IChooseManagerPtr PVal;
    OLECHECK(this->get_ChooseManager((Kompasltapi7_tlb::IChooseManagerPtr*)&PVal));
    return PVal;
  }

  TVariant __fastcall CopyObjects(TVariantInParam Objects/*[in]*/, 
                                  Kompasltapi7_tlb::ICopyObjectParamPtr params/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->CopyObjects(Objects, params, (TVariant*)&Result));
    return Result;
  }

  TVariant __fastcall get_Variables(TOLEBOOL ExternalOnly/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_Variables(ExternalOnly, (TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TOLEBOOL External/*[in]*/, 
                                                          TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IVariable7Ptr Result;
    OLECHECK(this->get_Variable(External, Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result));
    return Result;
  }

  long __fastcall get_VariablesCount(TOLEBOOL External/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_VariablesCount(External, (long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall UpdateVariables(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->UpdateVariables((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IVariableTablePtr __fastcall get_VariableTable(void)
  {
    Kompasltapi7_tlb::IVariableTablePtr Result;
    OLECHECK(this->get_VariableTable((Kompasltapi7_tlb::IVariableTablePtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall IsVariableNameValid(BSTR Name)
  {
    TOLEBOOL Result;
    OLECHECK(this->IsVariableNameValid(Name, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IVariable7Ptr __fastcall AddVariable(BSTR Name/*[in]*/, double Value/*[in]*/, 
                                                         BSTR Note/*[in]*/)
  {
    Kompasltapi7_tlb::IVariable7Ptr Result;
    OLECHECK(this->AddVariable(Name, Value, Note, (Kompasltapi7_tlb::IVariable7Ptr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall RebuildDocument(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->RebuildDocument((TOLEBOOL*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IMacroObjectPtr EditMacroObject = {read = get_EditMacroObject};
  __property   Kompasltapi7_tlb::IDrawingGroupsPtr DrawingGroups = {read = get_DrawingGroups};
  __property   Kompasltapi7_tlb::IDrawingGroupsPtr NamedGroups = {read = get_NamedGroups};
  __property   Kompasltapi7_tlb::IDrawingGroupPtr CurrentGroup = {read = get_CurrentGroup};
  __property   Kompasltapi7_tlb::ISelectionManagerPtr SelectionManager = {read = get_SelectionManager};
  __property   Kompasltapi7_tlb::IChooseManagerPtr ChooseManager = {read = get_ChooseManager};
  __property   Kompasltapi7_tlb::IVariableTablePtr VariableTable = {read = get_VariableTable};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMacroObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B21C70C9-53EC-4BB7-A9DB-BCE852CA6716}
// *********************************************************************//
interface IMacroObject  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]   ,     .
  virtual HRESULT STDMETHODCALLTYPE set_LibraryFileName(BSTR PVal/*[in,def,opt]*/) = 0;
  // [1]   ,     .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryFileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]  ,     .
  virtual HRESULT STDMETHODCALLTYPE set_LibraryName(BSTR PVal/*[in,def,opt]*/) = 0;
  // [2]  ,     .
  virtual HRESULT STDMETHODCALLTYPE get_LibraryName(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Command(long PVal/*[in,def,opt]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Command(long* PVal/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE set_DoubleClickEditable(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_DoubleClickEditable(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]      .
  virtual HRESULT STDMETHODCALLTYPE set_HotPointsEditable(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5]      .
  virtual HRESULT STDMETHODCALLTYPE get_HotPointsEditable(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_ExternalEditable(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_ExternalEditable(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7] SAFEARRAY    .
  virtual HRESULT STDMETHODCALLTYPE set_UserParams(TVariantInParam PVal/*[in]*/) = 0;
  // [7] SAFEARRAY    .
  virtual HRESULT STDMETHODCALLTYPE get_UserParams(TVariant* PVal/*[out,retval]*/) = 0;
  // [8]  , , ,   SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE AddObjects(TVariantInParam Objects/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]       CK .
  virtual HRESULT STDMETHODCALLTYPE GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Angle/*[out]*/, 
                                                 TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]       - CK .
  virtual HRESULT STDMETHODCALLTYPE SetPlacement(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Angle/*[in]*/, 
                                                 TOLEBOOL* MirrorSymmetry/*[in]*/, 
                                                 TOLEBOOL Relative/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_LibraryFileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LibraryFileName((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_LibraryName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_LibraryName((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_Command(void)
  {
    long PVal;
    OLECHECK(this->get_Command((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DoubleClickEditable(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DoubleClickEditable((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_HotPointsEditable(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_HotPointsEditable((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ExternalEditable(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ExternalEditable((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_UserParams(void)
  {
    TVariant PVal;
    OLECHECK(this->get_UserParams((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddObjects(TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddObjects(Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[in]*/, TOLEBOOL Relative/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPlacement(X, Y, Angle, MirrorSymmetry, Relative, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   BSTR            LibraryFileName = {read = get_LibraryFileName, write = set_LibraryFileName};
  __property   BSTR            LibraryName = {read = get_LibraryName, write = set_LibraryName};
  __property   long            Command = {read = get_Command, write = set_Command};
  __property   TOLEBOOL        DoubleClickEditable = {read = get_DoubleClickEditable, write = set_DoubleClickEditable};
  __property   TOLEBOOL        HotPointsEditable = {read = get_HotPointsEditable, write = set_HotPointsEditable};
  __property   TOLEBOOL        ExternalEditable = {read = get_ExternalEditable, write = set_ExternalEditable};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingGroups
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0ED06421-907C-4EF0-89F7-AEFC81BEF1DF}
// *********************************************************************//
interface IDrawingGroups  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/, 
                                        Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDrawingGroupPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IDrawingGroupPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/)
  {
    Kompasltapi7_tlb::IDrawingGroupPtr Result;
    OLECHECK(this->Add(Temp, Name, (Kompasltapi7_tlb::IDrawingGroupPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2C96ACB2-4877-45D9-B62D-78BBAD704458}
// *********************************************************************//
interface IDrawingGroup  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in,def,opt]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]    SAFEARRAY|VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Objects(TVariantInParam Type/*[in]*/, 
                                                TVariant* Objects/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE AddObjects(TVariantInParam Objects/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE DetachObjects(TVariantInParam Objects/*[in]*/, 
                                                  TOLEBOOL DeleteTmp/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL DeleteTmp/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]     .
  virtual HRESULT STDMETHODCALLTYPE Store(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_ObjectsCount(long* Result/*[out,retval]*/) = 0;
  // [8]     .
  virtual HRESULT STDMETHODCALLTYPE ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9] .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]     .
  virtual HRESULT STDMETHODCALLTYPE AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                              double XMin/*[in]*/, double YMin/*[in]*/, 
                                              double XMax/*[in]*/, double YMax/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]      .
  virtual HRESULT STDMETHODCALLTYPE ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                                 double XBase/*[in]*/, double YBase/*[in]*/, 
                                                 double Scale/*[in]*/, double Angle/*[in]*/, 
                                                 TOLEBOOL ScaleProjLinesSize/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, 
                                                  double XBase/*[in]*/, double YBase/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]    .
  virtual HRESULT STDMETHODCALLTYPE WriteToClip(TOLEBOOL AttrCopy/*[in]*/, 
                                                TOLEBOOL SpcObjCopy/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [14]    .
  virtual HRESULT STDMETHODCALLTYPE ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, 
                                                 TOLEBOOL SpcObjCopy/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE Draw(OLE_HANDLE HWnd/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [16]  
  virtual HRESULT STDMETHODCALLTYPE Open(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [17]  
  virtual HRESULT STDMETHODCALLTYPE Close(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [18]  .
  virtual HRESULT STDMETHODCALLTYPE get_Current(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Objects(TVariantInParam Type/*[in]*/)
  {
    TVariant Objects;
    OLECHECK(this->get_Objects(Type, (TVariant*)&Objects));
    return Objects;
  }

  TOLEBOOL __fastcall AddObjects(TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddObjects(Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DetachObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteTmp/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DetachObjects(Objects, DeleteTmp, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(TOLEBOOL DeleteTmp/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear(DeleteTmp, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Store(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Store((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_ObjectsCount(void)
  {
    long Result;
    OLECHECK(this->get_ObjectsCount((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ExistObject(Object, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Delete((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                double YMax/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddRegion(RegionType, XMin, YMin, XMax, YMax, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                   double XBase/*[in]*/, double YBase/*[in]*/, double Scale/*[in]*/, 
                                   double Angle/*[in]*/, TOLEBOOL ScaleProjLinesSize/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ReadFragment(FileName, CurentLayer, XBase, YBase, Scale, Angle, 
                                ScaleProjLinesSize, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                    double YBase/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->WriteFragment(FileName, Comment, XBase, YBase, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->WriteToClip(AttrCopy, SpcObjCopy, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ReadFromClip(AttrCopy, SpcObjCopy, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Draw(OLE_HANDLE HWnd/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Draw(HWnd, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Open(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Open((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Close(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Close((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Current(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Current((TOLEBOOL*)&Result));
    return Result;
  }


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   long            ObjectsCount = {read = get_ObjectsCount};
  __property   TOLEBOOL        Current = {read = get_Current};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {58E1BACA-32D5-4EAB-87E9-D14816DAC29F}
// *********************************************************************//
interface ICopyObjectParam  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   ,  x.
  virtual HRESULT STDMETHODCALLTYPE set_XOld(double PVal/*[in]*/) = 0;
  // [1]   ,  x.
  virtual HRESULT STDMETHODCALLTYPE get_XOld(double* PVal/*[out,retval]*/) = 0;
  // [2]   ,  y.
  virtual HRESULT STDMETHODCALLTYPE set_YOld(double PVal/*[in]*/) = 0;
  // [2]   ,  y.
  virtual HRESULT STDMETHODCALLTYPE get_YOld(double* PVal/*[out,retval]*/) = 0;
  // [3]   ,  x.
  virtual HRESULT STDMETHODCALLTYPE set_XNew(double PVal/*[in]*/) = 0;
  // [3]   ,  x.
  virtual HRESULT STDMETHODCALLTYPE get_XNew(double* PVal/*[out,retval]*/) = 0;
  // [4]   ,  y.
  virtual HRESULT STDMETHODCALLTYPE set_YNew(double PVal/*[in]*/) = 0;
  // [4]   ,  y.
  virtual HRESULT STDMETHODCALLTYPE get_YNew(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Scale(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Scale(double* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_AttributeCopy(TOLEBOOL PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE set_DimensionLineScale(TOLEBOOL PVal/*[in]*/) = 0;
  // [8] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/) = 0;
  // [9] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_XOld(void)
  {
    double PVal;
    OLECHECK(this->get_XOld((double*)&PVal));
    return PVal;
  }

  double __fastcall get_YOld(void)
  {
    double PVal;
    OLECHECK(this->get_YOld((double*)&PVal));
    return PVal;
  }

  double __fastcall get_XNew(void)
  {
    double PVal;
    OLECHECK(this->get_XNew((double*)&PVal));
    return PVal;
  }

  double __fastcall get_YNew(void)
  {
    double PVal;
    OLECHECK(this->get_YNew((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Scale(void)
  {
    double PVal;
    OLECHECK(this->get_Scale((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AttributeCopy(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AttributeCopy((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DimensionLineScale(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DimensionLineScale((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SpecificationObjectCopy(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SpecificationObjectCopy((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          XOld = {read = get_XOld, write = set_XOld};
  __property   double          YOld = {read = get_YOld, write = set_YOld};
  __property   double          XNew = {read = get_XNew, write = set_XNew};
  __property   double          YNew = {read = get_YNew, write = set_YNew};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        AttributeCopy = {read = get_AttributeCopy, write = set_AttributeCopy};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   TOLEBOOL        SpecificationObjectCopy = {read = get_SpecificationObjectCopy, write = set_SpecificationObjectCopy};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C2214318-5C89-40F8-A25C-C87D08B490F4}
// *********************************************************************//
interface IDrawingDocument  : public Kompasltapi7_tlb::IKompasDocument2D
{
public:
  // [5001]   .
  virtual HRESULT STDMETHODCALLTYPE get_ChangeListDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/) = 0;
  // [5002]  .
  virtual HRESULT STDMETHODCALLTYPE get_SpecRough(Kompasltapi7_tlb::ISpecRoughPtr* PVal/*[out,retval]*/) = 0;
  // [5003]  .
  virtual HRESULT STDMETHODCALLTYPE get_TechnicalDemand(Kompasltapi7_tlb::ITechnicalDemandPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_ChangeListDescriptions(void)
  {
    Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
    OLECHECK(this->get_ChangeListDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISpecRoughPtr __fastcall get_SpecRough(void)
  {
    Kompasltapi7_tlb::ISpecRoughPtr PVal;
    OLECHECK(this->get_SpecRough((Kompasltapi7_tlb::ISpecRoughPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITechnicalDemandPtr __fastcall get_TechnicalDemand(void)
  {
    Kompasltapi7_tlb::ITechnicalDemandPtr PVal;
    OLECHECK(this->get_TechnicalDemand((Kompasltapi7_tlb::ITechnicalDemandPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr ChangeListDescriptions = {read = get_ChangeListDescriptions};
  __property   Kompasltapi7_tlb::ISpecRoughPtr SpecRough = {read = get_SpecRough};
  __property   Kompasltapi7_tlb::ITechnicalDemandPtr TechnicalDemand = {read = get_TechnicalDemand};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecRough
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D723AAC1-0315-4AED-99BF-88A7E55B6E6D}
// *********************************************************************//
interface ISpecRough  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]         .
  virtual HRESULT STDMETHODCALLTYPE get_X(double* Result/*[out,retval]*/) = 0;
  // [1]         .
  virtual HRESULT STDMETHODCALLTYPE set_X(double Result/*[in]*/) = 0;
  // [2]         Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* Result/*[out,retval]*/) = 0;
  // [2]         Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double Result/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoPlacement(TOLEBOOL PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_SignType(ksRoughSignEnum* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_SignType(ksRoughSignEnum Result/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(BSTR* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Text(BSTR PVal/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_Distance(double* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_Distance(double PVal/*[in]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_AddSign(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE set_AddSign(TOLEBOOL PRes/*[in]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [10]    .
  virtual HRESULT STDMETHODCALLTYPE get_IsCreated(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double Result;
    OLECHECK(this->get_X((double*)&Result));
    return Result;
  }

  double __fastcall get_Y(void)
  {
    double Result;
    OLECHECK(this->get_Y((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoPlacement(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoPlacement((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksRoughSignEnum __fastcall get_SignType(void)
  {
    ksRoughSignEnum Result;
    OLECHECK(this->get_SignType((ksRoughSignEnum*)&Result));
    return Result;
  }

  BSTR __fastcall get_Text(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Text((BSTR*)&PVal));
    return PVal;
  }

  double __fastcall get_Distance(void)
  {
    double PVal;
    OLECHECK(this->get_Distance((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AddSign(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->get_AddSign((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall get_IsCreated(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsCreated((TOLEBOOL*)&Result));
    return Result;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoPlacement = {read = get_AutoPlacement, write = set_AutoPlacement};
  __property   ksRoughSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   BSTR            Text = {read = get_Text, write = set_Text};
  __property   double          Distance = {read = get_Distance, write = set_Distance};
  __property   TOLEBOOL        AddSign = {read = get_AddSign, write = set_AddSign};
  __property   TOLEBOOL        IsCreated = {read = get_IsCreated};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITechnicalDemand
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18C80AE5-BF92-482A-9C56-3D1638F5E5F5}
// *********************************************************************//
interface ITechnicalDemand  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE get_BlocksGabarits(TVariant* PVal/*[out,retval]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE set_BlocksGabarits(TVariantInParam PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoPlacement(TOLEBOOL PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_IsCreated(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]      .
  virtual HRESULT STDMETHODCALLTYPE get_BlocksStartLineNumbers(TVariant* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_BlocksGabarits(void)
  {
    TVariant PVal;
    OLECHECK(this->get_BlocksGabarits((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoPlacement(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoPlacement((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall get_IsCreated(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsCreated((TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_BlocksStartLineNumbers(void)
  {
    TVariant Result;
    OLECHECK(this->get_BlocksStartLineNumbers((TVariant*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   TOLEBOOL        AutoPlacement = {read = get_AutoPlacement, write = set_AutoPlacement};
  __property   TOLEBOOL        IsCreated = {read = get_IsCreated};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IFragmentDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E19CE626-DF9C-48C4-A83D-3E3BC7F0DACA}
// *********************************************************************//
interface IFragmentDocument  : public Kompasltapi7_tlb::IKompasDocument2D
{
public:
  // [5001]   
  virtual HRESULT STDMETHODCALLTYPE get_IsSketch(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_IsSketch(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsSketch((TOLEBOOL*)&Result));
    return Result;
  }


  __property   TOLEBOOL        IsSketch = {read = get_IsSketch};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpecificationDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E3FA8FD0-6187-4625-89B7-3C815651944D}
// *********************************************************************//
interface ISpecificationDocument  : public Kompasltapi7_tlb::IKompasDocument
{
public:
  // [1]  .  .
  virtual HRESULT STDMETHODCALLTYPE get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void)
  {
    Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
    OLECHECK(this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITextDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {71A589EA-D32F-42C4-BBC4-A51611E85E90}
// *********************************************************************//
interface ITextDocument  : public Kompasltapi7_tlb::IKompasDocument
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPartDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0075EA2A-5498-4E28-BDF3-0288EB168054}
// *********************************************************************//
interface IPartDocument  : public Kompasltapi7_tlb::IKompasDocument3D
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAssemblyDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6B3F33A-3273-43EF-9B8A-7C0AF8FAA129}
// *********************************************************************//
interface IAssemblyDocument  : public Kompasltapi7_tlb::IKompasDocument3D
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDimensionText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E0197BA7-C3FB-44A3-9C13-49115A150ED2}
// *********************************************************************//
interface IDimensionText  : public IDispatch
{
public:
  // [5001]  .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [5001]  .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [5002]      0- 1- , 2-  3- R  4- M   >4 -    SignFont.
  virtual HRESULT STDMETHODCALLTYPE get_Sign(long* Result/*[out,retval]*/) = 0;
  // [5002]      0- 1- , 2-  3- R  4- M   >4 -    SignFont.
  virtual HRESULT STDMETHODCALLTYPE set_Sign(long Result/*[in]*/) = 0;
  // [5003]      .   'Symbol type A'.
  virtual HRESULT STDMETHODCALLTYPE get_SignFont(BSTR* Result/*[out,retval]*/) = 0;
  // [5003]      .   'Symbol type A'.
  virtual HRESULT STDMETHODCALLTYPE set_SignFont(BSTR Result/*[in]*/) = 0;
  // [5004]  .
  virtual HRESULT STDMETHODCALLTYPE get_NominalValue(double* Result/*[out,retval]*/) = 0;
  // [5004]  .
  virtual HRESULT STDMETHODCALLTYPE set_NominalValue(double Result/*[in]*/) = 0;
  // [5005]     .
  virtual HRESULT STDMETHODCALLTYPE get_AutoNominalValue(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5005]     .
  virtual HRESULT STDMETHODCALLTYPE set_AutoNominalValue(TOLEBOOL Result/*[in]*/) = 0;
  // [5006]  .
  virtual HRESULT STDMETHODCALLTYPE get_ToleranceOn(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5006]  .
  virtual HRESULT STDMETHODCALLTYPE set_ToleranceOn(TOLEBOOL Result/*[in]*/) = 0;
  // [5007]  .
  virtual HRESULT STDMETHODCALLTYPE get_DeviationOn(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5007]  .
  virtual HRESULT STDMETHODCALLTYPE set_DeviationOn(TOLEBOOL Result/*[in]*/) = 0;
  // [5008]  .
  virtual HRESULT STDMETHODCALLTYPE get_DeviationType(ksDimensionDeviationEnum* Result/*[out,retval]*/) = 0;
  // [5008]  .
  virtual HRESULT STDMETHODCALLTYPE set_DeviationType(ksDimensionDeviationEnum Result/*[in]*/) = 0;
  // [5009]   .
  virtual HRESULT STDMETHODCALLTYPE get_Rectangle(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5009]   .
  virtual HRESULT STDMETHODCALLTYPE set_Rectangle(TOLEBOOL Result/*[in]*/) = 0;
  // [5010] .
  virtual HRESULT STDMETHODCALLTYPE get_Underline(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5010] .
  virtual HRESULT STDMETHODCALLTYPE set_Underline(TOLEBOOL Result/*[in]*/) = 0;
  // [5011]   .
  virtual HRESULT STDMETHODCALLTYPE get_Brackets(ksDimensionTextBracketsEnum* Result/*[out,retval]*/) = 0;
  // [5011]   .
  virtual HRESULT STDMETHODCALLTYPE set_Brackets(ksDimensionTextBracketsEnum Result/*[in]*/) = 0;
  // [5012]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextAlign(ksDimensionTextAlignEnum* Result/*[out,retval]*/) = 0;
  // [5012]  .
  virtual HRESULT STDMETHODCALLTYPE set_TextAlign(ksDimensionTextAlignEnum Result/*[in]*/) = 0;
  // [5013]  .
  virtual HRESULT STDMETHODCALLTYPE get_Prefix(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [5014]   .
  virtual HRESULT STDMETHODCALLTYPE get_NominalText(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [5015] .
  virtual HRESULT STDMETHODCALLTYPE get_Tolerance(BSTR* PVal/*[out,retval]*/) = 0;
  // [5015] .
  virtual HRESULT STDMETHODCALLTYPE set_Tolerance(BSTR PVal/*[in]*/) = 0;
  // [5016]  .
  virtual HRESULT STDMETHODCALLTYPE get_HighDeviation(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [5017]  .
  virtual HRESULT STDMETHODCALLTYPE get_LowDeviation(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [5018]  .
  virtual HRESULT STDMETHODCALLTYPE get_Unit(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [5019]  .
  virtual HRESULT STDMETHODCALLTYPE get_Suffix(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [5020]    .
  virtual HRESULT STDMETHODCALLTYPE get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [5021]    .
  virtual HRESULT STDMETHODCALLTYPE get_TextFormat(ksDimTextFormatEnum* PVal/*[out,retval]*/) = 0;
  // [5021]    .
  virtual HRESULT STDMETHODCALLTYPE set_TextFormat(ksDimTextFormatEnum PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  long __fastcall get_Sign(void)
  {
    long Result;
    OLECHECK(this->get_Sign((long*)&Result));
    return Result;
  }

  BSTR __fastcall get_SignFont(void)
  {
    BSTR Result = 0;
    OLECHECK(this->get_SignFont((BSTR*)&Result));
    return Result;
  }

  double __fastcall get_NominalValue(void)
  {
    double Result;
    OLECHECK(this->get_NominalValue((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoNominalValue(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoNominalValue((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ToleranceOn(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ToleranceOn((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_DeviationOn(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_DeviationOn((TOLEBOOL*)&Result));
    return Result;
  }

  ksDimensionDeviationEnum __fastcall get_DeviationType(void)
  {
    ksDimensionDeviationEnum Result;
    OLECHECK(this->get_DeviationType((ksDimensionDeviationEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Rectangle(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Rectangle((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Underline(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Underline((TOLEBOOL*)&Result));
    return Result;
  }

  ksDimensionTextBracketsEnum __fastcall get_Brackets(void)
  {
    ksDimensionTextBracketsEnum Result;
    OLECHECK(this->get_Brackets((ksDimensionTextBracketsEnum*)&Result));
    return Result;
  }

  ksDimensionTextAlignEnum __fastcall get_TextAlign(void)
  {
    ksDimensionTextAlignEnum Result;
    OLECHECK(this->get_TextAlign((ksDimensionTextAlignEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_Prefix(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_Prefix((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_NominalText(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_NominalText((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Tolerance(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Tolerance((BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_HighDeviation(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_HighDeviation((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_LowDeviation(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_LowDeviation((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_Unit(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_Unit((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_Suffix(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_Suffix((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnder(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUnder((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  ksDimTextFormatEnum __fastcall get_TextFormat(void)
  {
    ksDimTextFormatEnum PVal;
    OLECHECK(this->get_TextFormat((ksDimTextFormatEnum*)&PVal));
    return PVal;
  }


  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Sign = {read = get_Sign, write = set_Sign};
  __property   BSTR            SignFont = {read = get_SignFont, write = set_SignFont};
  __property   double          NominalValue = {read = get_NominalValue, write = set_NominalValue};
  __property   TOLEBOOL        AutoNominalValue = {read = get_AutoNominalValue, write = set_AutoNominalValue};
  __property   TOLEBOOL        ToleranceOn = {read = get_ToleranceOn, write = set_ToleranceOn};
  __property   TOLEBOOL        DeviationOn = {read = get_DeviationOn, write = set_DeviationOn};
  __property   ksDimensionDeviationEnum DeviationType = {read = get_DeviationType, write = set_DeviationType};
  __property   TOLEBOOL        Rectangle = {read = get_Rectangle, write = set_Rectangle};
  __property   TOLEBOOL        Underline = {read = get_Underline, write = set_Underline};
  __property   ksDimensionTextBracketsEnum Brackets = {read = get_Brackets, write = set_Brackets};
  __property   ksDimensionTextAlignEnum TextAlign = {read = get_TextAlign, write = set_TextAlign};
  __property   Kompasltapi7_tlb::ITextLinePtr Prefix = {read = get_Prefix};
  __property   Kompasltapi7_tlb::ITextLinePtr NominalText = {read = get_NominalText};
  __property   BSTR            Tolerance = {read = get_Tolerance, write = set_Tolerance};
  __property   Kompasltapi7_tlb::ITextLinePtr HighDeviation = {read = get_HighDeviation};
  __property   Kompasltapi7_tlb::ITextLinePtr LowDeviation = {read = get_LowDeviation};
  __property   Kompasltapi7_tlb::ITextLinePtr Unit = {read = get_Unit};
  __property   Kompasltapi7_tlb::ITextLinePtr Suffix = {read = get_Suffix};
  __property   Kompasltapi7_tlb::ITextPtr TextUnder = {read = get_TextUnder};
  __property   ksDimTextFormatEnum TextFormat = {read = get_TextFormat, write = set_TextFormat};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDimensionParams
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {534518CC-6577-4273-887A-6B833FDE6ED7}
// *********************************************************************//
interface IDimensionParams  : public IDispatch
{
public:
  // [4001]     .
  virtual HRESULT STDMETHODCALLTYPE get_RemoteLine1(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4001]     .
  virtual HRESULT STDMETHODCALLTYPE set_RemoteLine1(TOLEBOOL PVal/*[in]*/) = 0;
  // [4002]     .
  virtual HRESULT STDMETHODCALLTYPE get_RemoteLine2(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4002]     .
  virtual HRESULT STDMETHODCALLTYPE set_RemoteLine2(TOLEBOOL PVal/*[in]*/) = 0;
  // [4003]      .
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType1(ksArrowEnum* PVal/*[out,retval]*/) = 0;
  // [4003]      .
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType1(ksArrowEnum PVal/*[in]*/) = 0;
  // [4004]      .
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType2(ksArrowEnum* PVal/*[out,retval]*/) = 0;
  // [4004]      .
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType2(ksArrowEnum PVal/*[in]*/) = 0;
  // [4005]  .
  virtual HRESULT STDMETHODCALLTYPE get_ArrowPos(ksDimensionArrowPosEnum* PVal/*[out,retval]*/) = 0;
  // [4005]  .
  virtual HRESULT STDMETHODCALLTYPE set_ArrowPos(ksDimensionArrowPosEnum PVal/*[in]*/) = 0;
  // [4006]      .
  virtual HRESULT STDMETHODCALLTYPE get_TextPos(long* PVal/*[out,retval]*/) = 0;
  // [4006]      .
  virtual HRESULT STDMETHODCALLTYPE set_TextPos(long PVal/*[in]*/) = 0;
  // [4007]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextType(ksDimensionTextTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4007]   .
  virtual HRESULT STDMETHODCALLTYPE set_TextType(ksDimensionTextTypeEnum PVal/*[in]*/) = 0;
  // [4008]    c  .
  virtual HRESULT STDMETHODCALLTYPE get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/) = 0;
  // [4008]    c  .
  virtual HRESULT STDMETHODCALLTYPE set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/) = 0;
  // [4009]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextBase(ksDimensionBaseEnum* PVal/*[out,retval]*/) = 0;
  // [4009]   .
  virtual HRESULT STDMETHODCALLTYPE set_TextBase(ksDimensionBaseEnum PVal/*[in]*/) = 0;
  // [4010]   .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/) = 0;
  // [4010]   .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/) = 0;
  // [4011]    .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfAngle(double* PVal/*[out,retval]*/) = 0;
  // [4011]    .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfAngle(double PVal/*[in]*/) = 0;
  // [4012]    .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfLength(double* PVal/*[out,retval]*/) = 0;
  // [4012]    .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfLength(double PVal/*[in]*/) = 0;
  // [4013]     .
  virtual HRESULT STDMETHODCALLTYPE get_Gap(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4013]     .
  virtual HRESULT STDMETHODCALLTYPE set_Gap(TOLEBOOL PVal/*[in]*/) = 0;
  // [4014]    .
  virtual HRESULT STDMETHODCALLTYPE get_GapValue(long* PVal/*[out,retval]*/) = 0;
  // [4014]    .
  virtual HRESULT STDMETHODCALLTYPE set_GapValue(long PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_RemoteLine1(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_RemoteLine1((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_RemoteLine2(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_RemoteLine2((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksArrowEnum __fastcall get_ArrowType1(void)
  {
    ksArrowEnum PVal;
    OLECHECK(this->get_ArrowType1((ksArrowEnum*)&PVal));
    return PVal;
  }

  ksArrowEnum __fastcall get_ArrowType2(void)
  {
    ksArrowEnum PVal;
    OLECHECK(this->get_ArrowType2((ksArrowEnum*)&PVal));
    return PVal;
  }

  ksDimensionArrowPosEnum __fastcall get_ArrowPos(void)
  {
    ksDimensionArrowPosEnum PVal;
    OLECHECK(this->get_ArrowPos((ksDimensionArrowPosEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_TextPos(void)
  {
    long PVal;
    OLECHECK(this->get_TextPos((long*)&PVal));
    return PVal;
  }

  ksDimensionTextTypeEnum __fastcall get_TextType(void)
  {
    ksDimensionTextTypeEnum PVal;
    OLECHECK(this->get_TextType((ksDimensionTextTypeEnum*)&PVal));
    return PVal;
  }

  ksDimensionTextPosEnum __fastcall get_TextOnLine(void)
  {
    ksDimensionTextPosEnum PVal;
    OLECHECK(this->get_TextOnLine((ksDimensionTextPosEnum*)&PVal));
    return PVal;
  }

  ksDimensionBaseEnum __fastcall get_TextBase(void)
  {
    ksDimensionBaseEnum PVal;
    OLECHECK(this->get_TextBase((ksDimensionBaseEnum*)&PVal));
    return PVal;
  }

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum PVal;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfAngle(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfAngle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfLength(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfLength((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Gap(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Gap((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_GapValue(void)
  {
    long PVal;
    OLECHECK(this->get_GapValue((long*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        RemoteLine1 = {read = get_RemoteLine1, write = set_RemoteLine1};
  __property   TOLEBOOL        RemoteLine2 = {read = get_RemoteLine2, write = set_RemoteLine2};
  __property   ksArrowEnum ArrowType1 = {read = get_ArrowType1, write = set_ArrowType1};
  __property   ksArrowEnum ArrowType2 = {read = get_ArrowType2, write = set_ArrowType2};
  __property   ksDimensionArrowPosEnum ArrowPos = {read = get_ArrowPos, write = set_ArrowPos};
  __property   long            TextPos = {read = get_TextPos, write = set_TextPos};
  __property   ksDimensionTextTypeEnum TextType = {read = get_TextType, write = set_TextType};
  __property   ksDimensionTextPosEnum TextOnLine = {read = get_TextOnLine, write = set_TextOnLine};
  __property   ksDimensionBaseEnum TextBase = {read = get_TextBase, write = set_TextBase};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfAngle = {read = get_ShelfAngle, write = set_ShelfAngle};
  __property   double          ShelfLength = {read = get_ShelfLength, write = set_ShelfLength};
  __property   TOLEBOOL        Gap = {read = get_Gap, write = set_Gap};
  __property   long            GapValue = {read = get_GapValue, write = set_GapValue};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILoadCombination
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E7F1FD16-B641-4264-859C-D47217DA8B04}
// *********************************************************************//
interface ILoadCombination  : public IDispatch
{
public:
  // [6001]   .
  virtual HRESULT STDMETHODCALLTYPE get_CompletelyLoaded(TOLEBOOL* Type/*[out,retval]*/) = 0;
  // [6002]      SAFEARRAY' BSTR  - (VT_ARRAY | VT_BSTR)
  virtual HRESULT STDMETHODCALLTYPE get_LoadCombinations(TVariant* Value/*[out,retval]*/) = 0;
  // [6003]    
  virtual HRESULT STDMETHODCALLTYPE get_CurrentIndex(long* Value/*[out,retval]*/) = 0;
  // [6004]  
  virtual HRESULT STDMETHODCALLTYPE Create(BSTR CombinationName/*[in]*/, long* Value/*[out,retval]*/) = 0;
  // [6005]  
  virtual HRESULT STDMETHODCALLTYPE Delete(TVariantInParam LoadCombinationIndex/*[in]*/, 
                                           TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [6006]  
  virtual HRESULT STDMETHODCALLTYPE Apply(TVariantInParam LoadCombinationIndex/*[in]*/, 
                                          TOLEBOOL* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_CompletelyLoaded(void)
  {
    TOLEBOOL Type;
    OLECHECK(this->get_CompletelyLoaded((TOLEBOOL*)&Type));
    return Type;
  }

  TVariant __fastcall get_LoadCombinations(void)
  {
    TVariant Value;
    OLECHECK(this->get_LoadCombinations((TVariant*)&Value));
    return Value;
  }

  long __fastcall get_CurrentIndex(void)
  {
    long Value;
    OLECHECK(this->get_CurrentIndex((long*)&Value));
    return Value;
  }

  long __fastcall Create(BSTR CombinationName/*[in]*/)
  {
    long Value;
    OLECHECK(this->Create(CombinationName, (long*)&Value));
    return Value;
  }

  TOLEBOOL __fastcall Delete(TVariantInParam LoadCombinationIndex/*[in]*/)
  {
    TOLEBOOL Value;
    OLECHECK(this->Delete(LoadCombinationIndex, (TOLEBOOL*)&Value));
    return Value;
  }

  TOLEBOOL __fastcall Apply(TVariantInParam LoadCombinationIndex/*[in]*/)
  {
    TOLEBOOL Value;
    OLECHECK(this->Apply(LoadCombinationIndex, (TOLEBOOL*)&Value));
    return Value;
  }


  __property   TOLEBOOL        CompletelyLoaded = {read = get_CompletelyLoaded};
  __property   long            CurrentIndex = {read = get_CurrentIndex};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IFrameTreesManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9019350-FF1D-4161-B41B-CD1B020ECF36}
// *********************************************************************//
interface IFrameTreesManager  : public IDispatch
{
public:
  // [1001]  .
  virtual HRESULT STDMETHODCALLTYPE AddTab(BSTR TabCaption/*[in]*/, BSTR OcxClassID/*[in]*/, 
                                           LPDISPATCH* PVal/*[out,retval]*/) = 0;
  // [1002]  .
  virtual HRESULT STDMETHODCALLTYPE RemoveTab(LPDISPATCH Ocx/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1003]  .
  virtual HRESULT STDMETHODCALLTYPE get_ActiveTab(LPDISPATCH* Ocx/*[out,retval]*/) = 0;
  // [1003]  .
  virtual HRESULT STDMETHODCALLTYPE set_ActiveTab(LPDISPATCH Ocx/*[in]*/) = 0;
  // [1004]   .
  virtual HRESULT STDMETHODCALLTYPE get_TabsVisible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1004]   .
  virtual HRESULT STDMETHODCALLTYPE set_TabsVisible(TOLEBOOL PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  LPDISPATCH __fastcall AddTab(BSTR TabCaption/*[in]*/, BSTR OcxClassID/*[in]*/)
  {
    LPDISPATCH PVal;
    OLECHECK(this->AddTab(TabCaption, OcxClassID, (LPDISPATCH*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall RemoveTab(LPDISPATCH Ocx/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->RemoveTab(Ocx, (TOLEBOOL*)&PVal));
    return PVal;
  }

  LPDISPATCH __fastcall get_ActiveTab(void)
  {
    LPDISPATCH Ocx;
    OLECHECK(this->get_ActiveTab((LPDISPATCH*)&Ocx));
    return Ocx;
  }

  TOLEBOOL __fastcall get_TabsVisible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_TabsVisible((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   LPDISPATCH      ActiveTab = {read = get_ActiveTab, write = set_ActiveTab};
  __property   TOLEBOOL        TabsVisible = {read = get_TabsVisible, write = set_TabsVisible};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAttrTypeMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5378690E-A57D-473F-84DC-CA508B34FAD7}
// *********************************************************************//
interface IAttrTypeMng  : public IDispatch
{
public:
  // [500]      libname.
  virtual HRESULT STDMETHODCALLTYPE CreateAttrType(TVariantInParam Libname/*[in]*/, 
                                                   Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/) = 0;
  // [501]      libname.
  virtual HRESULT STDMETHODCALLTYPE GetAttrType(double AttrID/*[in]*/, 
                                                TVariantInParam Libname/*[in]*/, 
                                                Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/) = 0;
  // [502]              .
  virtual HRESULT STDMETHODCALLTYPE ChoiceAttrTypes(OLE_HANDLE HWnd/*[in]*/, 
                                                    TVariantInParam Libname/*[in]*/, 
                                                    Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/) = 0;
  // [503]    ,     .
  virtual HRESULT STDMETHODCALLTYPE GetAttrTypes(TVariantInParam Libname/*[in]*/, 
                                                 TVariant* Res/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAttributeTypePtr __fastcall CreateAttrType(TVariantInParam Libname/*[in]*/)
  {
    Kompasltapi7_tlb::IAttributeTypePtr Res;
    OLECHECK(this->CreateAttrType(Libname, (Kompasltapi7_tlb::IAttributeTypePtr*)&Res));
    return Res;
  }

  Kompasltapi7_tlb::IAttributeTypePtr __fastcall GetAttrType(double AttrID/*[in]*/, 
                                                             TVariantInParam Libname/*[in]*/)
  {
    Kompasltapi7_tlb::IAttributeTypePtr Res;
    OLECHECK(this->GetAttrType(AttrID, Libname, (Kompasltapi7_tlb::IAttributeTypePtr*)&Res));
    return Res;
  }

  Kompasltapi7_tlb::IAttributeTypePtr __fastcall ChoiceAttrTypes(OLE_HANDLE HWnd/*[in]*/, 
                                                                 TVariantInParam Libname/*[in]*/)
  {
    Kompasltapi7_tlb::IAttributeTypePtr Res;
    OLECHECK(this->ChoiceAttrTypes(HWnd, Libname, (Kompasltapi7_tlb::IAttributeTypePtr*)&Res));
    return Res;
  }

  TVariant __fastcall GetAttrTypes(TVariantInParam Libname/*[in]*/)
  {
    TVariant Res;
    OLECHECK(this->GetAttrTypes(Libname, (TVariant*)&Res));
    return Res;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPrintJob_OutputParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CB083231-EE0D-4596-B04D-E6A020926557}
// *********************************************************************//
interface IPrintJob_OutputParameters  : public IDispatch
{
public:
  // [2001]   .
  virtual HRESULT STDMETHODCALLTYPE set_NumberOfCopies(long PVal/*[in]*/) = 0;
  // [2001]   .
  virtual HRESULT STDMETHODCALLTYPE get_NumberOfCopies(long* PVal/*[out,retval]*/) = 0;
  // [2002]   .
  virtual HRESULT STDMETHODCALLTYPE set_CollateCopies(TOLEBOOL PVal/*[in]*/) = 0;
  // [2002]   .
  virtual HRESULT STDMETHODCALLTYPE get_CollateCopies(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2003]   .
  virtual HRESULT STDMETHODCALLTYPE set_PlotToFile(TOLEBOOL PVal/*[in]*/) = 0;
  // [2003]   .
  virtual HRESULT STDMETHODCALLTYPE get_PlotToFile(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2004]   .
  virtual HRESULT STDMETHODCALLTYPE set_Color(ksOutputColorTypeEnum PVal/*[in]*/) = 0;
  // [2004]   .
  virtual HRESULT STDMETHODCALLTYPE get_Color(ksOutputColorTypeEnum* PVal/*[out,retval]*/) = 0;
  // [2005]   .
  virtual HRESULT STDMETHODCALLTYPE set_OnlyThinLines(TOLEBOOL PVal/*[in]*/) = 0;
  // [2005]   .
  virtual HRESULT STDMETHODCALLTYPE get_OnlyThinLines(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2006]    .
  virtual HRESULT STDMETHODCALLTYPE set_AlternativeFillingOutput(TOLEBOOL PVal/*[in]*/) = 0;
  // [2006]    .
  virtual HRESULT STDMETHODCALLTYPE get_AlternativeFillingOutput(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2007]    .
  virtual HRESULT STDMETHODCALLTYPE set_AccuracyModelOutput(long PVal/*[in]*/) = 0;
  // [2007]    .
  virtual HRESULT STDMETHODCALLTYPE get_AccuracyModelOutput(long* PVal/*[out,retval]*/) = 0;
  // [2008]      .
  virtual HRESULT STDMETHODCALLTYPE set_PageOutputOrder(long PVal/*[in]*/) = 0;
  // [2008]      .
  virtual HRESULT STDMETHODCALLTYPE get_PageOutputOrder(long* PVal/*[out,retval]*/) = 0;
  // [2009]     .
  virtual HRESULT STDMETHODCALLTYPE set_DefaultScale(double PVal/*[in]*/) = 0;
  // [2009]     .
  virtual HRESULT STDMETHODCALLTYPE get_DefaultScale(double* PVal/*[out,retval]*/) = 0;
  // [2010]      (TRUE - ).
  virtual HRESULT STDMETHODCALLTYPE set_AutoScale(TOLEBOOL PVal/*[in]*/) = 0;
  // [2010]      (TRUE - ).
  virtual HRESULT STDMETHODCALLTYPE get_AutoScale(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2011]     (TRUE - ).
  virtual HRESULT STDMETHODCALLTYPE set_UseCatchSpacing(TOLEBOOL PVal/*[in]*/) = 0;
  // [2011]     (TRUE - ).
  virtual HRESULT STDMETHODCALLTYPE get_UseCatchSpacing(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2012]         , .
  virtual HRESULT STDMETHODCALLTYPE set_CatchSpacing(long PVal/*[in]*/) = 0;
  // [2012]         , .
  virtual HRESULT STDMETHODCALLTYPE get_CatchSpacing(long* PVal/*[out,retval]*/) = 0;
  // [2013]     (TRUE - ).
  virtual HRESULT STDMETHODCALLTYPE set_UseHooking(TOLEBOOL PVal/*[in]*/) = 0;
  // [2013]     (TRUE - ).
  virtual HRESULT STDMETHODCALLTYPE get_UseHooking(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2014]      (1-50%).
  virtual HRESULT STDMETHODCALLTYPE set_Hooking(long PVal/*[in]*/) = 0;
  // [2014]      (1-50%).
  virtual HRESULT STDMETHODCALLTYPE get_Hooking(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_NumberOfCopies(void)
  {
    long PVal;
    OLECHECK(this->get_NumberOfCopies((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CollateCopies(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CollateCopies((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_PlotToFile(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_PlotToFile((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksOutputColorTypeEnum __fastcall get_Color(void)
  {
    ksOutputColorTypeEnum PVal;
    OLECHECK(this->get_Color((ksOutputColorTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_OnlyThinLines(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_OnlyThinLines((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AlternativeFillingOutput(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AlternativeFillingOutput((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_AccuracyModelOutput(void)
  {
    long PVal;
    OLECHECK(this->get_AccuracyModelOutput((long*)&PVal));
    return PVal;
  }

  long __fastcall get_PageOutputOrder(void)
  {
    long PVal;
    OLECHECK(this->get_PageOutputOrder((long*)&PVal));
    return PVal;
  }

  double __fastcall get_DefaultScale(void)
  {
    double PVal;
    OLECHECK(this->get_DefaultScale((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoScale(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoScale((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_UseCatchSpacing(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UseCatchSpacing((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_CatchSpacing(void)
  {
    long PVal;
    OLECHECK(this->get_CatchSpacing((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_UseHooking(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UseHooking((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Hooking(void)
  {
    long PVal;
    OLECHECK(this->get_Hooking((long*)&PVal));
    return PVal;
  }


  __property   long            NumberOfCopies = {read = get_NumberOfCopies, write = set_NumberOfCopies};
  __property   TOLEBOOL        CollateCopies = {read = get_CollateCopies, write = set_CollateCopies};
  __property   TOLEBOOL        PlotToFile = {read = get_PlotToFile, write = set_PlotToFile};
  __property   ksOutputColorTypeEnum Color = {read = get_Color, write = set_Color};
  __property   TOLEBOOL        OnlyThinLines = {read = get_OnlyThinLines, write = set_OnlyThinLines};
  __property   TOLEBOOL        AlternativeFillingOutput = {read = get_AlternativeFillingOutput, write = set_AlternativeFillingOutput};
  __property   long            AccuracyModelOutput = {read = get_AccuracyModelOutput, write = set_AccuracyModelOutput};
  __property   long            PageOutputOrder = {read = get_PageOutputOrder, write = set_PageOutputOrder};
  __property   double          DefaultScale = {read = get_DefaultScale, write = set_DefaultScale};
  __property   TOLEBOOL        AutoScale = {read = get_AutoScale, write = set_AutoScale};
  __property   TOLEBOOL        UseCatchSpacing = {read = get_UseCatchSpacing, write = set_UseCatchSpacing};
  __property   long            CatchSpacing = {read = get_CatchSpacing, write = set_CatchSpacing};
  __property   TOLEBOOL        UseHooking = {read = get_UseHooking, write = set_UseHooking};
  __property   long            Hooking = {read = get_Hooking, write = set_Hooking};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProperty
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C389F80D-228D-4FB1-B183-959AEA0B5906}
// *********************************************************************//
interface IProperty  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Id(double* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_DataType(ksPropertyTypeEnum PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_DataType(ksPropertyTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_MinValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_MaxValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [6]     .
  virtual HRESULT STDMETHODCALLTYPE SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                                  TVariantInParam MaxVal/*[in]*/, 
                                                  TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in]*/) = 0;
  // [8]     ( ksPropertyTypeDouble).
  virtual HRESULT STDMETHODCALLTYPE get_SignificantDigitsCount(long* Result/*[out,retval]*/) = 0;
  // [8]     ( ksPropertyTypeDouble).
  virtual HRESULT STDMETHODCALLTYPE set_SignificantDigitsCount(long Result/*[in]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE get_SourceName(BSTR* PVal/*[out,retval]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR PVal/*[in]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* PVal/*[out,retval]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE set_PropertyTypeId(BSTR PVal/*[in]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE get_PropertyTypeId(BSTR* PVal/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE set_UnitId(BSTR PVal/*[in]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE get_UnitId(BSTR* PVal/*[out,retval]*/) = 0;
  // [13]       .
  virtual HRESULT STDMETHODCALLTYPE ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [14]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [15]  .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [16]   .
  virtual HRESULT STDMETHODCALLTYPE get_UseListVal(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [16]   .
  virtual HRESULT STDMETHODCALLTYPE set_UseListVal(TOLEBOOL PVal/*[in]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE get_ListVal(TVariant* PVal/*[out,retval]*/) = 0;
  // [17]  .
  virtual HRESULT STDMETHODCALLTYPE set_ListVal(TVariantInParam PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  double __fastcall get_Id(void)
  {
    double PVal;
    OLECHECK(this->get_Id((double*)&PVal));
    return PVal;
  }

  ksPropertyTypeEnum __fastcall get_DataType(void)
  {
    ksPropertyTypeEnum PVal;
    OLECHECK(this->get_DataType((ksPropertyTypeEnum*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_MinValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MinValue((TVariant*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_MaxValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MaxValue((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_SignificantDigitsCount(void)
  {
    long Result;
    OLECHECK(this->get_SignificantDigitsCount((long*)&Result));
    return Result;
  }

  BSTR __fastcall get_SourceName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_SourceName((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Comment((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_PropertyTypeId(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_PropertyTypeId((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_UnitId(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_UnitId((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->ViewEdit(Parent, ReadOnly, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->_Update((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall get_UseListVal(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_UseListVal((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ListVal(void)
  {
    TVariant PVal;
    OLECHECK(this->get_ListVal((TVariant*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   double          Id = {read = get_Id};
  __property   ksPropertyTypeEnum DataType = {read = get_DataType, write = set_DataType};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            SignificantDigitsCount = {read = get_SignificantDigitsCount, write = set_SignificantDigitsCount};
  __property   BSTR            SourceName = {read = get_SourceName};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            PropertyTypeId = {read = get_PropertyTypeId, write = set_PropertyTypeId};
  __property   BSTR            UnitId = {read = get_UnitId, write = set_UnitId};
  __property   TOLEBOOL        UseListVal = {read = get_UseListVal, write = set_UseListVal};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FD515235-4DBA-4F81-8D5C-6FE87C834562}
// *********************************************************************//
interface IPropertyMng  : public IDispatch
{
public:
  // [1500]  .
  virtual HRESULT STDMETHODCALLTYPE get_PropertyCount(TVariantInParam Libname/*[in]*/, 
                                                      long* Count/*[out,retval]*/) = 0;
  // [1501]     libname.
  virtual HRESULT STDMETHODCALLTYPE GetProperty(TVariantInParam Libname/*[in]*/, 
                                                TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IPropertyPtr* Res/*[out,retval]*/) = 0;
  // [1502]   ,    .
  virtual HRESULT STDMETHODCALLTYPE GetProperties(TVariantInParam Libname/*[in]*/, 
                                                  TVariant* Res/*[out,retval]*/) = 0;
  // [1503]  .
  virtual HRESULT STDMETHODCALLTYPE AddProperty(TVariantInParam Libname/*[in]*/, 
                                                TVariantInParam Val/*[in]*/, 
                                                Kompasltapi7_tlb::IPropertyPtr* ColVal/*[out,retval]*/) = 0;
  // [1504]  .
  virtual HRESULT STDMETHODCALLTYPE RemoveProperty(TVariantInParam Libname/*[in]*/, 
                                                   TVariantInParam Val/*[in]*/, 
                                                   TOLEBOOL* ColVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_PropertyCount(TVariantInParam Libname/*[in]*/)
  {
    long Count;
    OLECHECK(this->get_PropertyCount(Libname, (long*)&Count));
    return Count;
  }

  Kompasltapi7_tlb::IPropertyPtr __fastcall GetProperty(TVariantInParam Libname/*[in]*/, 
                                                        TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPropertyPtr Res;
    OLECHECK(this->GetProperty(Libname, Index, (Kompasltapi7_tlb::IPropertyPtr*)&Res));
    return Res;
  }

  TVariant __fastcall GetProperties(TVariantInParam Libname/*[in]*/)
  {
    TVariant Res;
    OLECHECK(this->GetProperties(Libname, (TVariant*)&Res));
    return Res;
  }

  Kompasltapi7_tlb::IPropertyPtr __fastcall AddProperty(TVariantInParam Libname/*[in]*/, 
                                                        TVariantInParam Val/*[in]*/)
  {
    Kompasltapi7_tlb::IPropertyPtr ColVal;
    OLECHECK(this->AddProperty(Libname, Val, (Kompasltapi7_tlb::IPropertyPtr*)&ColVal));
    return ColVal;
  }

  TOLEBOOL __fastcall RemoveProperty(TVariantInParam Libname/*[in]*/, TVariantInParam Val/*[in]*/)
  {
    TOLEBOOL ColVal;
    OLECHECK(this->RemoveProperty(Libname, Val, (TOLEBOOL*)&ColVal));
    return ColVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyKeeper
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AE7377CB-28C6-468E-B667-73117BCDC300}
// *********************************************************************//
interface IPropertyKeeper  : public IDispatch
{
public:
  // [16000]   .
  virtual HRESULT STDMETHODCALLTYPE GetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                                     TVariant* Value/*[out]*/, 
                                                     TOLEBOOL BaseUnit/*[in]*/, 
                                                     TOLEBOOL* FromSource/*[out]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [16001]   .
  virtual HRESULT STDMETHODCALLTYPE SetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                                     TVariantInParam Value/*[in]*/, 
                                                     TOLEBOOL BaseUnit/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall GetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                       TVariant* Value/*[out]*/, TOLEBOOL BaseUnit/*[in]*/, 
                                       TOLEBOOL* FromSource/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPropertyValue(Property, Value, BaseUnit, FromSource, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                       TVariantInParam Value/*[in]*/, TOLEBOOL BaseUnit/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPropertyValue(Property, Value, BaseUnit, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IReportProcess
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {29BBF2B8-A2E2-4E7D-BF04-0BB79C89EF35}
// *********************************************************************//
interface IReportProcess  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_StylesCount(long* Count/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_ActiveStyleIndex(TVariantInParam Index/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_ActiveStyleIndex(TVariant* Index/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_ReportFilter(Kompasltapi7_tlb::IReportFilterPtr* Filters/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_ReportFilterUse(TOLEBOOL Index/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_ReportFilterUse(TOLEBOOL* Index/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_StylesCount(void)
  {
    long Count;
    OLECHECK(this->get_StylesCount((long*)&Count));
    return Count;
  }

  TVariant __fastcall get_ActiveStyleIndex(void)
  {
    TVariant Index;
    OLECHECK(this->get_ActiveStyleIndex((TVariant*)&Index));
    return Index;
  }

  Kompasltapi7_tlb::IReportFilterPtr __fastcall get_ReportFilter(void)
  {
    Kompasltapi7_tlb::IReportFilterPtr Filters;
    OLECHECK(this->get_ReportFilter((Kompasltapi7_tlb::IReportFilterPtr*)&Filters));
    return Filters;
  }

  TOLEBOOL __fastcall get_ReportFilterUse(void)
  {
    TOLEBOOL Index;
    OLECHECK(this->get_ReportFilterUse((TOLEBOOL*)&Index));
    return Index;
  }


  __property   long            StylesCount = {read = get_StylesCount};
  __property   Kompasltapi7_tlb::IReportFilterPtr ReportFilter = {read = get_ReportFilter};
  __property   TOLEBOOL        ReportFilterUse = {read = get_ReportFilterUse, write = set_ReportFilterUse};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IReportFilter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D111C31-1629-4A0B-89E5-8461CDFA2157}
// *********************************************************************//
interface IReportFilter  : public IDispatch
{
public:
  // [100]  .
  virtual HRESULT STDMETHODCALLTYPE get_ConditionCount(long* Count/*[out,retval]*/) = 0;
  // [101]     .
  virtual HRESULT STDMETHODCALLTYPE GetCondition(long Index/*[in]*/, TVariant* UniqId/*[out]*/, 
                                                 ksReportFiltersTypeEnum* Type/*[out]*/, 
                                                 TVariant* Val/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [102]     .-1 -   
  virtual HRESULT STDMETHODCALLTYPE SetCondition(long Index/*[in]*/, TVariantInParam UniqId/*[in]*/, 
                                                 ksReportFiltersTypeEnum Type/*[in]*/, 
                                                 TVariantInParam Val/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [103]     .
  virtual HRESULT STDMETHODCALLTYPE RemoveCondition(long Index/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_ConditionCount(void)
  {
    long Count;
    OLECHECK(this->get_ConditionCount((long*)&Count));
    return Count;
  }

  TOLEBOOL __fastcall GetCondition(long Index/*[in]*/, TVariant* UniqId/*[out]*/, 
                                   ksReportFiltersTypeEnum* Type/*[out]*/, 
                                   TVariant* Val/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetCondition(Index, UniqId, Type, Val, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCondition(long Index/*[in]*/, TVariantInParam UniqId/*[in]*/, 
                                   ksReportFiltersTypeEnum Type/*[in]*/, 
                                   TVariantInParam Val/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCondition(Index, UniqId, Type, Val, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall RemoveCondition(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->RemoveCondition(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            ConditionCount = {read = get_ConditionCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyControl1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7D2A79FF-EC54-4480-B9F3-46F75293B558}
// *********************************************************************//
interface IPropertyControl1  : public IDispatch
{
public:
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE set_PredefineNumber(long PVal/*[in,def,opt]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_PredefineNumber(long* PVal/*[out,retval]*/) = 0;
  // [11] Handle  .
  virtual HRESULT STDMETHODCALLTYPE set_UserMenu(OLE_HANDLE PVal/*[in]*/) = 0;
  // [11] Handle  .
  virtual HRESULT STDMETHODCALLTYPE get_UserMenu(OLE_HANDLE* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_PredefineNumber(void)
  {
    long PVal;
    OLECHECK(this->get_PredefineNumber((long*)&PVal));
    return PVal;
  }

  OLE_HANDLE __fastcall get_UserMenu(void)
  {
    OLE_HANDLE PVal;
    OLECHECK(this->get_UserMenu((OLE_HANDLE*)&PVal));
    return PVal;
  }


  __property   long            PredefineNumber = {read = get_PredefineNumber, write = set_PredefineNumber};
  __property   OLE_HANDLE      UserMenu = {read = get_UserMenu, write = set_UserMenu};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyEdit
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1D238C4C-AAD7-4374-B372-013CF7FCEDB4}
// *********************************************************************//
interface IPropertyEdit  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_MinValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_MaxValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [103]     .
  virtual HRESULT STDMETHODCALLTYPE SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                                  TVariantInParam MaxVal/*[in]*/, 
                                                  TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE set_CheckState(CheckStateEnum PVal/*[in]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE get_CheckState(CheckStateEnum* PVal/*[out,retval]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Width(long PVal/*[in,def,opt]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_MinValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MinValue((TVariant*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_MaxValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MaxValue((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_WithCheck(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_WithCheck((TOLEBOOL*)&PVal));
    return PVal;
  }

  CheckStateEnum __fastcall get_CheckState(void)
  {
    CheckStateEnum PVal;
    OLECHECK(this->get_CheckState((CheckStateEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Width(void)
  {
    long PVal;
    OLECHECK(this->get_Width((long*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertySeparator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4504EFA0-D059-4FD4-B725-FA264D190869}
// *********************************************************************//
interface IPropertySeparator  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE set_SeparatorType(SeparatorTypeEnum PVal/*[in]*/) = 0;
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_SeparatorType(SeparatorTypeEnum* PVal/*[out,retval]*/) = 0;
  // [102]   .
  virtual HRESULT STDMETHODCALLTYPE SetImage(TVariantInParam IdBmp/*[in]*/, 
                                             TVariantInParam HInstance/*[in]*/, 
                                             TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  SeparatorTypeEnum __fastcall get_SeparatorType(void)
  {
    SeparatorTypeEnum PVal;
    OLECHECK(this->get_SeparatorType((SeparatorTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetImage(TVariantInParam IdBmp/*[in]*/, TVariantInParam HInstance/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetImage(IdBmp, HInstance, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   SeparatorTypeEnum SeparatorType = {read = get_SeparatorType, write = set_SeparatorType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8F53E9D5-07AD-412E-8C2A-509BC633C4FF}
// *********************************************************************//
interface IPropertyList  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_MinValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_MaxValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [103]     .
  virtual HRESULT STDMETHODCALLTYPE SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                                  TVariantInParam MaxVal/*[in]*/, 
                                                  TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE set_CheckState(CheckStateEnum PVal/*[in]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE get_CheckState(CheckStateEnum* PVal/*[out,retval]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Width(long PVal/*[in,def,opt]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* PVal/*[out,retval]*/) = 0;
  // [108]   .
  virtual HRESULT STDMETHODCALLTYPE ClearList(void) = 0;
  // [109]    .
  virtual HRESULT STDMETHODCALLTYPE Add(TVariantInParam NewVal/*[in]*/) = 0;
  // [110]  .
  virtual HRESULT STDMETHODCALLTYPE set_Sort(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [110]  .
  virtual HRESULT STDMETHODCALLTYPE get_Sort(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [111]      .
  virtual HRESULT STDMETHODCALLTYPE Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/) = 0;
  // [112]       
  virtual HRESULT STDMETHODCALLTYPE SetCurrentByIndex(long Val/*[in]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [113]  .
  virtual HRESULT STDMETHODCALLTYPE set_Precision(double PVal/*[in]*/) = 0;
  // [113]  .
  virtual HRESULT STDMETHODCALLTYPE get_Precision(double* PVal/*[out,retval]*/) = 0;
  // [114]   .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_MinValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MinValue((TVariant*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_MaxValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MaxValue((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_WithCheck(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_WithCheck((TOLEBOOL*)&PVal));
    return PVal;
  }

  CheckStateEnum __fastcall get_CheckState(void)
  {
    CheckStateEnum PVal;
    OLECHECK(this->get_CheckState((CheckStateEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Width(void)
  {
    long PVal;
    OLECHECK(this->get_Width((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Sort(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Sort((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall Find(TVariantInParam Val/*[in]*/)
  {
    long PVal;
    OLECHECK(this->Find(Val, (long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetCurrentByIndex(long Val/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetCurrentByIndex(Val, (TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Precision(void)
  {
    double PVal;
    OLECHECK(this->get_Precision((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }


  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        Sort = {read = get_Sort, write = set_Sort};
  __property   double          Precision = {read = get_Precision, write = set_Precision};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyCheckBox
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9205277D-B480-4AF7-B660-CCDC653F6453}
// *********************************************************************//
interface IPropertyCheckBox  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]       .
  virtual HRESULT STDMETHODCALLTYPE SetCustomBitmaps(TVariantInParam IdUnchecked/*[in]*/, 
                                                     TVariantInParam IdChecked/*[in]*/, 
                                                     TVariantInParam IdIndeterminate/*[in]*/, 
                                                     TVariantInParam HInstance/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyMultiButton
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3920A0BE-0628-47D5-B0F1-1DFEB77964BC}
// *********************************************************************//
interface IPropertyMultiButton  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonsType(ButtonTypeEnum PVal/*[in]*/) = 0;
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonsType(ButtonTypeEnum* PVal/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonChecked(long BtnID/*[in]*/, 
                                                      TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonChecked(long BtnID/*[in]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [103]  .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonEnable(long BtnID/*[in]*/, 
                                                     TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [103]  .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonEnable(long BtnID/*[in]*/, 
                                                     TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [104]  .
  virtual HRESULT STDMETHODCALLTYPE AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                              long InsertAt/*[in,def,opt]*/) = 0;
  // [105]    .
  virtual HRESULT STDMETHODCALLTYPE set_ResModule(TVariantInParam HInstance/*[in]*/) = 0;
  // [105]    .
  virtual HRESULT STDMETHODCALLTYPE get_ResModule(TVariant* HInstance/*[out,retval]*/) = 0;
  // [106]    .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/) = 0;
  // [106]    .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/) = 0;
  // [107]    .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/) = 0;
  // [107]    .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/) = 0;
  // [108]    VK_TAB.
  virtual HRESULT STDMETHODCALLTYPE set_NextCommand(TOLEBOOL PVal/*[in]*/) = 0;
  // [108]    VK_TAB.
  virtual HRESULT STDMETHODCALLTYPE get_NextCommand(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ButtonTypeEnum __fastcall get_ButtonsType(void)
  {
    ButtonTypeEnum PVal;
    OLECHECK(this->get_ButtonsType((ButtonTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ButtonChecked(long BtnID/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ButtonChecked(BtnID, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ButtonEnable(long BtnID/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ButtonEnable(BtnID, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ResModule(void)
  {
    TVariant HInstance;
    OLECHECK(this->get_ResModule((TVariant*)&HInstance));
    return HInstance;
  }

  BSTR __fastcall get_ButtonTips(long BtnID/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ButtonTips(BtnID, (BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ButtonHint(long BtnID/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ButtonHint(BtnID, (BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_NextCommand(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_NextCommand((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   ButtonTypeEnum ButtonsType = {read = get_ButtonsType, write = set_ButtonsType};
  __property   TOLEBOOL        NextCommand = {read = get_NextCommand, write = set_NextCommand};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertySlideBox
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E1DB38CD-A6D5-44B8-9AD0-0056B87924DD}
// *********************************************************************//
interface IPropertySlideBox  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]   .
  virtual HRESULT STDMETHODCALLTYPE set_ResModule(TVariantInParam HInstance/*[in]*/) = 0;
  // [101]   .
  virtual HRESULT STDMETHODCALLTYPE get_ResModule(TVariant* HInstance/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE set_SlideType(SlideTypeEnum Type/*[in]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_SlideType(SlideTypeEnum* Type/*[out,retval]*/) = 0;
  // [103]  .
  virtual HRESULT STDMETHODCALLTYPE set_DrawingSlide(TVariantInParam Slide/*[in]*/) = 0;
  // [103]  .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingSlide(TVariant* Slide/*[out,retval]*/) = 0;
  // [104]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(long Width/*[in]*/) = 0;
  // [104]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* Width/*[out,retval]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(long Height/*[in]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(long* Height/*[out,retval]*/) = 0;
  // [106]  ,   .
  virtual HRESULT STDMETHODCALLTYPE set_CheckBoxVisibility(TOLEBOOL PVal/*[in]*/) = 0;
  // [106]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_CheckBoxVisibility(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [107]   
  virtual HRESULT STDMETHODCALLTYPE UpdateParam(void) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_ResModule(void)
  {
    TVariant HInstance;
    OLECHECK(this->get_ResModule((TVariant*)&HInstance));
    return HInstance;
  }

  SlideTypeEnum __fastcall get_SlideType(void)
  {
    SlideTypeEnum Type;
    OLECHECK(this->get_SlideType((SlideTypeEnum*)&Type));
    return Type;
  }

  TVariant __fastcall get_DrawingSlide(void)
  {
    TVariant Slide;
    OLECHECK(this->get_DrawingSlide((TVariant*)&Slide));
    return Slide;
  }

  long __fastcall get_Width(void)
  {
    long Width;
    OLECHECK(this->get_Width((long*)&Width));
    return Width;
  }

  long __fastcall get_Height(void)
  {
    long Height;
    OLECHECK(this->get_Height((long*)&Height));
    return Height;
  }

  TOLEBOOL __fastcall get_CheckBoxVisibility(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CheckBoxVisibility((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   SlideTypeEnum SlideType = {read = get_SlideType, write = set_SlideType};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   TOLEBOOL        CheckBoxVisibility = {read = get_CheckBoxVisibility, write = set_CheckBoxVisibility};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyUserControl
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A902C6C-A030-4F37-A089-91505BAEE466}
// *********************************************************************//
interface IPropertyUserControl  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(long Width/*[in]*/) = 0;
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* Width/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(long Height/*[in]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(long* Height/*[out,retval]*/) = 0;
  // [103]  progID OCX .
  virtual HRESULT STDMETHODCALLTYPE SetOCXControl(BSTR ProgID/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Width(void)
  {
    long Width;
    OLECHECK(this->get_Width((long*)&Width));
    return Width;
  }

  long __fastcall get_Height(void)
  {
    long Height;
    OLECHECK(this->get_Height((long*)&Height));
    return Height;
  }


  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyGrid
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6682B70F-59DB-4BF0-AB01-45B65B1BDED1}
// *********************************************************************//
interface IPropertyGrid  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE set_ColumnCount(long Count/*[in]*/) = 0;
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnCount(long* Count/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE set_RowCount(long Count/*[in]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_RowCount(long* Count/*[out,retval]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE set_FixedColumnCount(long Count/*[in]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE get_FixedColumnCount(long* Count/*[out,retval]*/) = 0;
  // [104]   .
  virtual HRESULT STDMETHODCALLTYPE set_FixedRowCount(long Count/*[in]*/) = 0;
  // [104]   .
  virtual HRESULT STDMETHODCALLTYPE get_FixedRowCount(long* Count/*[out,retval]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE set_ColumnWidth(long Index/*[in]*/, long Width/*[in]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnWidth(long Index/*[in]*/, long* Width/*[out,retval]*/) = 0;
  // [106]  .
  virtual HRESULT STDMETHODCALLTYPE set_RowHeight(long Index/*[in]*/, long Height/*[in]*/) = 0;
  // [106]  .
  virtual HRESULT STDMETHODCALLTYPE get_RowHeight(long Index/*[in]*/, long* Height/*[out,retval]*/) = 0;
  // [107]   .
  virtual HRESULT STDMETHODCALLTYPE set_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                                   TOLEBOOL PVal/*[in]*/) = 0;
  // [107]   .
  virtual HRESULT STDMETHODCALLTYPE get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                                   TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [108]   .
  virtual HRESULT STDMETHODCALLTYPE set_CellText(long NRow/*[in]*/, long NCol/*[in]*/, 
                                                 BSTR Text/*[in]*/) = 0;
  // [108]   .
  virtual HRESULT STDMETHODCALLTYPE get_CellText(long NRow/*[in]*/, long NCol/*[in]*/, 
                                                 BSTR* Text/*[out,retval]*/) = 0;
  // [109]     .
  virtual HRESULT STDMETHODCALLTYPE set_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                                   long Format/*[in]*/) = 0;
  // [109]     .
  virtual HRESULT STDMETHODCALLTYPE get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                                   long* Format/*[out,retval]*/) = 0;
  // [110]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(long Width/*[in]*/) = 0;
  // [110]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* Width/*[out,retval]*/) = 0;
  // [111]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(long Height/*[in]*/) = 0;
  // [111]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(long* Height/*[out,retval]*/) = 0;
  // [112]   .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [112]   .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [113]  .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSizeColumns(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [113]  .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSizeColumns(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [114]   
  virtual HRESULT STDMETHODCALLTYPE UpdateParam(void) = 0;
  // [115]  .
  virtual HRESULT STDMETHODCALLTYPE set_CurrentColumn(long Column/*[in]*/) = 0;
  // [115]  .
  virtual HRESULT STDMETHODCALLTYPE get_CurrentColumn(long* Column/*[out,retval]*/) = 0;
  // [116]  .
  virtual HRESULT STDMETHODCALLTYPE set_CurrentRow(long Row/*[in]*/) = 0;
  // [116]  .
  virtual HRESULT STDMETHODCALLTYPE get_CurrentRow(long* Row/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_ColumnCount(void)
  {
    long Count;
    OLECHECK(this->get_ColumnCount((long*)&Count));
    return Count;
  }

  long __fastcall get_RowCount(void)
  {
    long Count;
    OLECHECK(this->get_RowCount((long*)&Count));
    return Count;
  }

  long __fastcall get_FixedColumnCount(void)
  {
    long Count;
    OLECHECK(this->get_FixedColumnCount((long*)&Count));
    return Count;
  }

  long __fastcall get_FixedRowCount(void)
  {
    long Count;
    OLECHECK(this->get_FixedRowCount((long*)&Count));
    return Count;
  }

  long __fastcall get_ColumnWidth(long Index/*[in]*/)
  {
    long Width;
    OLECHECK(this->get_ColumnWidth(Index, (long*)&Width));
    return Width;
  }

  long __fastcall get_RowHeight(long Index/*[in]*/)
  {
    long Height;
    OLECHECK(this->get_RowHeight(Index, (long*)&Height));
    return Height;
  }

  TOLEBOOL __fastcall get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_EnableEdit(NRow, NCol, (TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_CellText(long NRow/*[in]*/, long NCol/*[in]*/)
  {
    BSTR Text = 0;
    OLECHECK(this->get_CellText(NRow, NCol, (BSTR*)&Text));
    return Text;
  }

  long __fastcall get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/)
  {
    long Format;
    OLECHECK(this->get_CellFormat(NRow, NCol, (long*)&Format));
    return Format;
  }

  long __fastcall get_Width(void)
  {
    long Width;
    OLECHECK(this->get_Width((long*)&Width));
    return Width;
  }

  long __fastcall get_Height(void)
  {
    long Height;
    OLECHECK(this->get_Height((long*)&Height));
    return Height;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoSizeColumns(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoSizeColumns((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_CurrentColumn(void)
  {
    long Column;
    OLECHECK(this->get_CurrentColumn((long*)&Column));
    return Column;
  }

  long __fastcall get_CurrentRow(void)
  {
    long Row;
    OLECHECK(this->get_CurrentRow((long*)&Row));
    return Row;
  }


  __property   long            ColumnCount = {read = get_ColumnCount, write = set_ColumnCount};
  __property   long            RowCount = {read = get_RowCount, write = set_RowCount};
  __property   long            FixedColumnCount = {read = get_FixedColumnCount, write = set_FixedColumnCount};
  __property   long            FixedRowCount = {read = get_FixedRowCount, write = set_FixedRowCount};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        AutoSizeColumns = {read = get_AutoSizeColumns, write = set_AutoSizeColumns};
  __property   long            CurrentColumn = {read = get_CurrentColumn, write = set_CurrentColumn};
  __property   long            CurrentRow = {read = get_CurrentRow, write = set_CurrentRow};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyTextButton
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3CDFE85F-643D-4008-AE32-379C0EB3FB7F}
// *********************************************************************//
interface IPropertyTextButton  : public Kompasltapi7_tlb::IPropertyControl
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertySpinEdit
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F214A46D-2BA9-40AD-A32D-E696EF9C895A}
// *********************************************************************//
interface IPropertySpinEdit  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_MinValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE get_MaxValue(TVariant* PVal/*[out,retval]*/) = 0;
  // [103]     .
  virtual HRESULT STDMETHODCALLTYPE SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                                  TVariantInParam MaxVal/*[in]*/, 
                                                  TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE set_CheckState(CheckStateEnum PVal/*[in]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE get_CheckState(CheckStateEnum* PVal/*[out,retval]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Width(long PVal/*[in,def,opt]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_MinValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MinValue((TVariant*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_MaxValue(void)
  {
    TVariant PVal;
    OLECHECK(this->get_MaxValue((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_WithCheck(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_WithCheck((TOLEBOOL*)&PVal));
    return PVal;
  }

  CheckStateEnum __fastcall get_CheckState(void)
  {
    CheckStateEnum PVal;
    OLECHECK(this->get_CheckState((CheckStateEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Width(void)
  {
    long PVal;
    OLECHECK(this->get_Width((long*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyFileName
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DB1F3224-837E-437F-8944-6FB9703F528B}
// *********************************************************************//
interface IPropertyFileName  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]    .
  virtual HRESULT STDMETHODCALLTYPE set_CreateOpenButton(TOLEBOOL PVal/*[in]*/) = 0;
  // [101]    .
  virtual HRESULT STDMETHODCALLTYPE get_CreateOpenButton(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [102]  .
  virtual HRESULT STDMETHODCALLTYPE set_Bitmap(TVariantInParam Param1/*[in]*/) = 0;
  // [103]  .
  virtual HRESULT STDMETHODCALLTYPE set_Extension(BSTR PVal/*[in]*/) = 0;
  // [103]  .
  virtual HRESULT STDMETHODCALLTYPE get_Extension(BSTR* PVal/*[out,retval]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE set_Filter(BSTR PVal/*[in]*/) = 0;
  // [104]    .
  virtual HRESULT STDMETHODCALLTYPE get_Filter(BSTR* PVal/*[out,retval]*/) = 0;
  // [105]    .
  virtual HRESULT STDMETHODCALLTYPE set_ResModule(TVariantInParam HInstance/*[in]*/) = 0;
  // [105]    .
  virtual HRESULT STDMETHODCALLTYPE get_ResModule(TVariant* HInstance/*[out,retval]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Width(long PVal/*[in,def,opt]*/) = 0;
  // [107]        ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_CreateOpenButton(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CreateOpenButton((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Extension(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Extension((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Filter(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Filter((BSTR*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ResModule(void)
  {
    TVariant HInstance;
    OLECHECK(this->get_ResModule((TVariant*)&HInstance));
    return HInstance;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Width(void)
  {
    long PVal;
    OLECHECK(this->get_Width((long*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        CreateOpenButton = {read = get_CreateOpenButton, write = set_CreateOpenButton};
  __property   BSTR            Extension = {read = get_Extension, write = set_Extension};
  __property   BSTR            Filter = {read = get_Filter, write = set_Filter};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyColor
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FC5CDCFB-3F67-43A1-8FC4-1278B901CE0E}
// *********************************************************************//
interface IPropertyColor  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]        ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Width(long PVal/*[in,def,opt]*/) = 0;
  // [101]        ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Width(long* PVal/*[out,retval]*/) = 0;
  // [102]   '  '.
  virtual HRESULT STDMETHODCALLTYPE set_EnableDefaultButton(TOLEBOOL PVal/*[in]*/) = 0;
  // [102]   '  '.
  virtual HRESULT STDMETHODCALLTYPE get_EnableDefaultButton(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE set_DefaultColor(long PVal/*[in]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE get_DefaultColor(long* PVal/*[out,retval]*/) = 0;
  // [104]   '  '.
  virtual HRESULT STDMETHODCALLTYPE set_DefaultButtonName(BSTR PVal/*[in]*/) = 0;
  // [104]   '  '.
  virtual HRESULT STDMETHODCALLTYPE get_DefaultButtonName(BSTR* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Width(void)
  {
    long PVal;
    OLECHECK(this->get_Width((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_EnableDefaultButton(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_EnableDefaultButton((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_DefaultColor(void)
  {
    long PVal;
    OLECHECK(this->get_DefaultColor((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_DefaultButtonName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_DefaultButtonName((BSTR*)&PVal));
    return PVal;
  }


  __property   long            Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        EnableDefaultButton = {read = get_EnableDefaultButton, write = set_EnableDefaultButton};
  __property   long            DefaultColor = {read = get_DefaultColor, write = set_DefaultColor};
  __property   BSTR            DefaultButtonName = {read = get_DefaultButtonName, write = set_DefaultButtonName};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyEditList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FDB82760-7EA3-408E-8699-A8392ACFD810}
// *********************************************************************//
interface IPropertyEditList  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE get_ListType(ksEditListTypeEnum* PVal/*[out,retval]*/) = 0;
  // [101]  .
  virtual HRESULT STDMETHODCALLTYPE set_ListType(ksEditListTypeEnum PVal/*[in]*/) = 0;
  // [102]   .
  virtual HRESULT STDMETHODCALLTYPE get_ItemChecked(long Index/*[in]*/, 
                                                    TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [102]   .
  virtual HRESULT STDMETHODCALLTYPE set_ItemChecked(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE get_MultySelect(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE set_MultySelect(TOLEBOOL PVal/*[in]*/) = 0;
  // [104]   .
  virtual HRESULT STDMETHODCALLTYPE get_ItemSelected(long Index/*[in]*/, 
                                                     TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [104]   .
  virtual HRESULT STDMETHODCALLTYPE set_ItemSelected(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE get_Sort(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [105]  .
  virtual HRESULT STDMETHODCALLTYPE set_Sort(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [106]   .
  virtual HRESULT STDMETHODCALLTYPE ClearList(void) = 0;
  // [107]    .
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR NewVal/*[in]*/) = 0;
  // [108]        .
  virtual HRESULT STDMETHODCALLTYPE Delete(TVariantInParam Index/*[in]*/) = 0;
  // [109]    .
  virtual HRESULT STDMETHODCALLTYPE get_ItemsCount(long* PVal/*[out,retval]*/) = 0;
  // [110]     
  virtual HRESULT STDMETHODCALLTYPE set_ItemValue(TVariantInParam Index/*[in]*/, BSTR PVal/*[in]*/) = 0;
  // [110]     
  virtual HRESULT STDMETHODCALLTYPE get_ItemValue(TVariantInParam Index/*[in]*/, 
                                                  BSTR* PVal/*[out,retval]*/) = 0;
  // [111]      .
  virtual HRESULT STDMETHODCALLTYPE Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksEditListTypeEnum __fastcall get_ListType(void)
  {
    ksEditListTypeEnum PVal;
    OLECHECK(this->get_ListType((ksEditListTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ItemChecked(long Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ItemChecked(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_MultySelect(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_MultySelect((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ItemSelected(long Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ItemSelected(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Sort(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Sort((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_ItemsCount(void)
  {
    long PVal;
    OLECHECK(this->get_ItemsCount((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ItemValue(TVariantInParam Index/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ItemValue(Index, (BSTR*)&PVal));
    return PVal;
  }

  long __fastcall Find(TVariantInParam Val/*[in]*/)
  {
    long PVal;
    OLECHECK(this->Find(Val, (long*)&PVal));
    return PVal;
  }


  __property   ksEditListTypeEnum ListType = {read = get_ListType, write = set_ListType};
  __property   TOLEBOOL        MultySelect = {read = get_MultySelect, write = set_MultySelect};
  __property   TOLEBOOL        Sort = {read = get_Sort, write = set_Sort};
  __property   long            ItemsCount = {read = get_ItemsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyToolBar
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C2523B7E-EB4B-45DB-8E3B-9D6CCED99333}
// *********************************************************************//
interface IPropertyToolBar  : public IDispatch
{
public:
  // [501]  .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonChecked(long BtnID/*[in]*/, 
                                                      TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [501]  .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonChecked(long BtnID/*[in]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [502]  .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonEnable(long BtnID/*[in]*/, 
                                                     TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [502]  .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonEnable(long BtnID/*[in]*/, 
                                                     TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [503]  .
  virtual HRESULT STDMETHODCALLTYPE AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                              long InsertAt/*[in,def,opt]*/) = 0;
  // [504]    .
  virtual HRESULT STDMETHODCALLTYPE set_ResModule(TVariantInParam HInstance/*[in]*/) = 0;
  // [504]    .
  virtual HRESULT STDMETHODCALLTYPE get_ResModule(TVariant* HInstance/*[out,retval]*/) = 0;
  // [505]    .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/) = 0;
  // [505]    .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/) = 0;
  // [506]    .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/) = 0;
  // [506]    .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/) = 0;
  // [507]  .
  virtual HRESULT STDMETHODCALLTYPE set_ButtonType(long BtnID/*[in]*/, 
                                                   ButtonTypeEnum PVal/*[in]*/) = 0;
  // [507]  .
  virtual HRESULT STDMETHODCALLTYPE get_ButtonType(long BtnID/*[in]*/, 
                                                   ButtonTypeEnum* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_ButtonChecked(long BtnID/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ButtonChecked(BtnID, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ButtonEnable(long BtnID/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ButtonEnable(BtnID, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ResModule(void)
  {
    TVariant HInstance;
    OLECHECK(this->get_ResModule((TVariant*)&HInstance));
    return HInstance;
  }

  BSTR __fastcall get_ButtonTips(long BtnID/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ButtonTips(BtnID, (BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ButtonHint(long BtnID/*[in]*/)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ButtonHint(BtnID, (BSTR*)&PVal));
    return PVal;
  }

  ButtonTypeEnum __fastcall get_ButtonType(long BtnID/*[in]*/)
  {
    ButtonTypeEnum PVal;
    OLECHECK(this->get_ButtonType(BtnID, (ButtonTypeEnum*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyBmpList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D18D34F5-0028-4853-998C-25A48D141B43}
// *********************************************************************//
interface IPropertyBmpList  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]    .
  virtual HRESULT STDMETHODCALLTYPE Add(BSTR NewStr/*[in]*/, TVariantInParam NewBmp/*[in]*/) = 0;
  // [102]   .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0;
  // [103]   .
  virtual HRESULT STDMETHODCALLTYPE ClearList(void) = 0;
  // [104]      .
  virtual HRESULT STDMETHODCALLTYPE Find(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/) = 0;
  // [105]   
  virtual HRESULT STDMETHODCALLTYPE set_CurrentIndex(long PVal/*[in]*/) = 0;
  // [105]   
  virtual HRESULT STDMETHODCALLTYPE get_CurrentIndex(long* PVal/*[out,retval]*/) = 0;
  // [106]    .
  virtual HRESULT STDMETHODCALLTYPE set_ResModule(TVariantInParam HInstance/*[in]*/) = 0;
  // [106]    .
  virtual HRESULT STDMETHODCALLTYPE get_ResModule(TVariant* HInstance/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  long __fastcall Find(BSTR Val/*[in]*/)
  {
    long PVal;
    OLECHECK(this->Find(Val, (long*)&PVal));
    return PVal;
  }

  long __fastcall get_CurrentIndex(void)
  {
    long PVal;
    OLECHECK(this->get_CurrentIndex((long*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ResModule(void)
  {
    TVariant HInstance;
    OLECHECK(this->get_ResModule((TVariant*)&HInstance));
    return HInstance;
  }


  __property   long            Count = {read = get_Count};
  __property   long            CurrentIndex = {read = get_CurrentIndex, write = set_CurrentIndex};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IProcessInfoWindow
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {06F93FBF-C65A-49B1-83DB-C736BA33F0A5}
// *********************************************************************//
interface IProcessInfoWindow  : public IDispatch
{
public:
  // [501] TRUE -    , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE set_CreateWindow(TOLEBOOL PVal/*[in]*/) = 0;
  // [501] TRUE -    , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE get_CreateWindow(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [502]  .
  virtual HRESULT STDMETHODCALLTYPE set_WindowCaption(BSTR PVal/*[in]*/) = 0;
  // [502]  .
  virtual HRESULT STDMETHODCALLTYPE get_WindowCaption(BSTR* PVal/*[out,retval]*/) = 0;
  // [503] TRUE -     , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE set_CloseProcess(TOLEBOOL PVal/*[in]*/) = 0;
  // [503] TRUE -     , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE get_CloseProcess(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [504]   .
  virtual HRESULT STDMETHODCALLTYPE set_Visible(TOLEBOOL PVal/*[in]*/) = 0;
  // [504]   .
  virtual HRESULT STDMETHODCALLTYPE get_Visible(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [505]  .
  virtual HRESULT STDMETHODCALLTYPE set_Text(BSTR PVal/*[in]*/) = 0;
  // [505]  .
  virtual HRESULT STDMETHODCALLTYPE get_Text(BSTR* PVal/*[out,retval]*/) = 0;
  // [506]  .
  virtual HRESULT STDMETHODCALLTYPE set_HelpId(long PVal/*[in]*/) = 0;
  // [506]  .
  virtual HRESULT STDMETHODCALLTYPE get_HelpId(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_CreateWindow(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CreateWindow((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_WindowCaption(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_WindowCaption((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CloseProcess(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CloseProcess((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Visible(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Text(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Text((BSTR*)&PVal));
    return PVal;
  }

  long __fastcall get_HelpId(void)
  {
    long PVal;
    OLECHECK(this->get_HelpId((long*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        CreateWindow = {read = get_CreateWindow, write = set_CreateWindow};
  __property   BSTR            WindowCaption = {read = get_WindowCaption, write = set_WindowCaption};
  __property   TOLEBOOL        CloseProcess = {read = get_CloseProcess, write = set_CloseProcess};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Text = {read = get_Text, write = set_Text};
  __property   long            HelpId = {read = get_HelpId, write = set_HelpId};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyLibExplorer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2A214701-0BCB-406C-B57F-6DFADD799A64}
// *********************************************************************//
interface IPropertyLibExplorer  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]    .
  virtual HRESULT STDMETHODCALLTYPE set_FileName(BSTR PVal/*[in]*/) = 0;
  // [101]    .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [102]    .
  virtual HRESULT STDMETHODCALLTYPE set_RootName(BSTR PVal/*[in]*/) = 0;
  // [102]    .
  virtual HRESULT STDMETHODCALLTYPE get_RootName(BSTR* PVal/*[out,retval]*/) = 0;
  // [103]  -    .
  virtual HRESULT STDMETHODCALLTYPE get_FileValue(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_RootName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_RootName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FileValue(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FileValue((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   BSTR            RootName = {read = get_RootName, write = set_RootName};
  __property   TOLEBOOL        FileValue = {read = get_FileValue};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAssociationView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0825F23C-0A73-48DE-BEAB-DA2FF39962C3}
// *********************************************************************//
interface IAssociationView  : public Kompasltapi7_tlb::IView
{
public:
  // [2000]   -.
  virtual HRESULT STDMETHODCALLTYPE get_SourceFileName(BSTR* Result/*[out,retval]*/) = 0;
  // [2000]   -.
  virtual HRESULT STDMETHODCALLTYPE set_SourceFileName(BSTR Result/*[in]*/) = 0;
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectionName(BSTR* Result/*[out,retval]*/) = 0;
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectionName(BSTR Result/*[in]*/) = 0;
  // [2002]    .
  virtual HRESULT STDMETHODCALLTYPE get_ExplodedView(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2002]    .
  virtual HRESULT STDMETHODCALLTYPE set_ExplodedView(TOLEBOOL Result/*[in]*/) = 0;
  // [2003]    .
  virtual HRESULT STDMETHODCALLTYPE set_DimensionLayoutScaling(TOLEBOOL Param1/*[in]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectionLink(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectionLink(TOLEBOOL Result/*[in]*/) = 0;
  // [2005]  -.
  virtual HRESULT STDMETHODCALLTYPE get_Section(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2005]  -.
  virtual HRESULT STDMETHODCALLTYPE set_Section(TOLEBOOL Result/*[in]*/) = 0;
  // [2006]     .
  virtual HRESULT STDMETHODCALLTYPE get_Unfold(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2006]     .
  virtual HRESULT STDMETHODCALLTYPE set_Unfold(TOLEBOOL Result/*[in]*/) = 0;
  // [2007] C  .
  virtual HRESULT STDMETHODCALLTYPE get_VisibleLinesStyle(long* Result/*[out,retval]*/) = 0;
  // [2007] C  .
  virtual HRESULT STDMETHODCALLTYPE set_VisibleLinesStyle(long Result/*[in]*/) = 0;
  // [2008]     .
  virtual HRESULT STDMETHODCALLTYPE get_HiddenLines(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2008]     .
  virtual HRESULT STDMETHODCALLTYPE set_HiddenLines(TOLEBOOL Result/*[in]*/) = 0;
  // [2009]   .
  virtual HRESULT STDMETHODCALLTYPE get_HiddenLinesVisible(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2009]   .
  virtual HRESULT STDMETHODCALLTYPE set_HiddenLinesVisible(TOLEBOOL Result/*[in]*/) = 0;
  // [2010] C  .
  virtual HRESULT STDMETHODCALLTYPE get_HiddenLinesStyle(long* Result/*[out,retval]*/) = 0;
  // [2010] C  .
  virtual HRESULT STDMETHODCALLTYPE set_HiddenLinesStyle(long Result/*[in]*/) = 0;
  // [2011]   .
  virtual HRESULT STDMETHODCALLTYPE get_BreakLinesVisible(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2011]   .
  virtual HRESULT STDMETHODCALLTYPE set_BreakLinesVisible(TOLEBOOL Result/*[in]*/) = 0;
  // [2012] C  .
  virtual HRESULT STDMETHODCALLTYPE get_BreakLinesStyle(long* Result/*[out,retval]*/) = 0;
  // [2012] C  .
  virtual HRESULT STDMETHODCALLTYPE set_BreakLinesStyle(long Result/*[in]*/) = 0;
  // [2013]   .
  virtual HRESULT STDMETHODCALLTYPE get_BendLinesVisible(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2013]   .
  virtual HRESULT STDMETHODCALLTYPE set_BendLinesVisible(TOLEBOOL Result/*[in]*/) = 0;
  // [2014] C  .
  virtual HRESULT STDMETHODCALLTYPE get_BendLinesStyle(long* Result/*[out,retval]*/) = 0;
  // [2014] C  .
  virtual HRESULT STDMETHODCALLTYPE set_BendLinesStyle(long Result/*[in]*/) = 0;
  // [2015]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/) = 0;
  // [2015]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseView(Kompasltapi7_tlb::IViewPtr Result/*[in]*/) = 0;
  // [2016]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/) = 0;
  // [2016]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/) = 0;
  // [2017]  .
  virtual HRESULT STDMETHODCALLTYPE get_Local(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2017]  .
  virtual HRESULT STDMETHODCALLTYPE set_Local(TOLEBOOL Result/*[in]*/) = 0;
  // [2018]  .
  virtual HRESULT STDMETHODCALLTYPE CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2019]      ,     .
  virtual HRESULT STDMETHODCALLTYPE get_SameHatch(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2019]      ,     .
  virtual HRESULT STDMETHODCALLTYPE set_SameHatch(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_SourceFileName(void)
  {
    BSTR Result = 0;
    OLECHECK(this->get_SourceFileName((BSTR*)&Result));
    return Result;
  }

  BSTR __fastcall get_ProjectionName(void)
  {
    BSTR Result = 0;
    OLECHECK(this->get_ProjectionName((BSTR*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ExplodedView(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ExplodedView((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectionLink(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectionLink((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Section(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Section((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Unfold(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Unfold((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_VisibleLinesStyle(void)
  {
    long Result;
    OLECHECK(this->get_VisibleLinesStyle((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_HiddenLines(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_HiddenLines((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_HiddenLinesVisible(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_HiddenLinesVisible((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_HiddenLinesStyle(void)
  {
    long Result;
    OLECHECK(this->get_HiddenLinesStyle((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_BreakLinesVisible(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_BreakLinesVisible((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_BreakLinesStyle(void)
  {
    long Result;
    OLECHECK(this->get_BreakLinesStyle((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_BendLinesVisible(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_BendLinesVisible((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_BendLinesStyle(void)
  {
    long Result;
    OLECHECK(this->get_BendLinesStyle((long*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IViewPtr __fastcall get_BaseView(void)
  {
    Kompasltapi7_tlb::IViewPtr Result;
    OLECHECK(this->get_BaseView((Kompasltapi7_tlb::IViewPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Result;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Local(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Local((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->CreateLocalView(Contour, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_SameHatch(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_SameHatch((TOLEBOOL*)&Result));
    return Result;
  }


  __property   BSTR            SourceFileName = {read = get_SourceFileName, write = set_SourceFileName};
  __property   BSTR            ProjectionName = {read = get_ProjectionName, write = set_ProjectionName};
  __property   TOLEBOOL        ExplodedView = {read = get_ExplodedView, write = set_ExplodedView};
  __property   TOLEBOOL        DimensionLayoutScaling = {write = set_DimensionLayoutScaling};
  __property   TOLEBOOL        ProjectionLink = {read = get_ProjectionLink, write = set_ProjectionLink};
  __property   TOLEBOOL        Section = {read = get_Section, write = set_Section};
  __property   TOLEBOOL        Unfold = {read = get_Unfold, write = set_Unfold};
  __property   long            VisibleLinesStyle = {read = get_VisibleLinesStyle, write = set_VisibleLinesStyle};
  __property   TOLEBOOL        HiddenLines = {read = get_HiddenLines, write = set_HiddenLines};
  __property   TOLEBOOL        HiddenLinesVisible = {read = get_HiddenLinesVisible, write = set_HiddenLinesVisible};
  __property   long            HiddenLinesStyle = {read = get_HiddenLinesStyle, write = set_HiddenLinesStyle};
  __property   TOLEBOOL        BreakLinesVisible = {read = get_BreakLinesVisible, write = set_BreakLinesVisible};
  __property   long            BreakLinesStyle = {read = get_BreakLinesStyle, write = set_BreakLinesStyle};
  __property   TOLEBOOL        BendLinesVisible = {read = get_BendLinesVisible, write = set_BendLinesVisible};
  __property   long            BendLinesStyle = {read = get_BendLinesStyle, write = set_BendLinesStyle};
  __property   Kompasltapi7_tlb::IViewPtr BaseView = {read = get_BaseView, write = set_BaseView};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   TOLEBOOL        Local = {read = get_Local, write = set_Local};
  __property   TOLEBOOL        SameHatch = {read = get_SameHatch, write = set_SameHatch};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IViewDesignation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5F9580DA-915C-4C28-991D-5DFFE3BF3B3C}
// *********************************************************************//
interface IViewDesignation  : public IDispatch
{
public:
  // [4001]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShowName(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4001]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShowName(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4002]  ''.
  virtual HRESULT STDMETHODCALLTYPE get_ShowUnfold(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4002]  ''.
  virtual HRESULT STDMETHODCALLTYPE set_ShowUnfold(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4003]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShowScale(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4003]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShowScale(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4004]  ''.
  virtual HRESULT STDMETHODCALLTYPE get_ShowTurn(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4004]  ''.
  virtual HRESULT STDMETHODCALLTYPE set_ShowTurn(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4005]  '  '.
  virtual HRESULT STDMETHODCALLTYPE get_ShowAngle(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4005]  '  '.
  virtual HRESULT STDMETHODCALLTYPE set_ShowAngle(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4006]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShowPage(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4006]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShowPage(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4007]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShowZone(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4007]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShowZone(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4008]  .
  virtual HRESULT STDMETHODCALLTYPE get_Designation(BSTR* PVal/*[out,retval]*/) = 0;
  // [4009]   : ' '  ' '  ' '.
  virtual HRESULT STDMETHODCALLTYPE get_RefObject(TVariant* PVal/*[out,retval]*/) = 0;
  // [4009]   : ' '  ' '  ' '.
  virtual HRESULT STDMETHODCALLTYPE set_RefObject(TVariantInParam PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_ShowName(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowName((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowUnfold(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowUnfold((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowScale(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowScale((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowTurn(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowTurn((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowAngle(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowAngle((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowPage(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowPage((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ShowZone(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ShowZone((TOLEBOOL*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Designation(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Designation((BSTR*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_RefObject(void)
  {
    TVariant PVal;
    OLECHECK(this->get_RefObject((TVariant*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        ShowName = {read = get_ShowName, write = set_ShowName};
  __property   TOLEBOOL        ShowUnfold = {read = get_ShowUnfold, write = set_ShowUnfold};
  __property   TOLEBOOL        ShowScale = {read = get_ShowScale, write = set_ShowScale};
  __property   TOLEBOOL        ShowTurn = {read = get_ShowTurn, write = set_ShowTurn};
  __property   TOLEBOOL        ShowAngle = {read = get_ShowAngle, write = set_ShowAngle};
  __property   TOLEBOOL        ShowPage = {read = get_ShowPage, write = set_ShowPage};
  __property   TOLEBOOL        ShowZone = {read = get_ShowZone, write = set_ShowZone};
  __property   BSTR            Designation = {read = get_Designation};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAssociationViewElements
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E4E42871-E799-4273-8EDB-E5EF83CC66C2}
// *********************************************************************//
interface IAssociationViewElements  : public IDispatch
{
public:
  // [2500]    .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectBodies(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2500]    .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectBodies(TOLEBOOL Result/*[in]*/) = 0;
  // [2501]    .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectSurfaces(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2501]    .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectSurfaces(TOLEBOOL Result/*[in]*/) = 0;
  // [2502]   .
  virtual HRESULT STDMETHODCALLTYPE get_HiddenObjectsVisible(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2502]   .
  virtual HRESULT STDMETHODCALLTYPE set_HiddenObjectsVisible(TOLEBOOL Result/*[in]*/) = 0;
  // [2503]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectThreads(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2503]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectThreads(TOLEBOOL Result/*[in]*/) = 0;
  // [2504]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectDimensions(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2504]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectDimensions(TOLEBOOL Result/*[in]*/) = 0;
  // [2505]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectRoughs(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2505]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectRoughs(TOLEBOOL Result/*[in]*/) = 0;
  // [2506]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectBases(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2506]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectBases(TOLEBOOL Result/*[in]*/) = 0;
  // [2507]      .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectTolerances(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2507]      .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectTolerances(TOLEBOOL Result/*[in]*/) = 0;
  // [2508]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectPositions(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2508]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectPositions(TOLEBOOL Result/*[in]*/) = 0;
  // [2509]     -.
  virtual HRESULT STDMETHODCALLTYPE get_ProjectLeaders(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2509]     -.
  virtual HRESULT STDMETHODCALLTYPE set_ProjectLeaders(TOLEBOOL Result/*[in]*/) = 0;
  // [2510]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectMarkLeaders(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2510]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectMarkLeaders(TOLEBOOL Result/*[in]*/) = 0;
  // [2511]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectBrandLeaders(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2511]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectBrandLeaders(TOLEBOOL Result/*[in]*/) = 0;
  // [2512]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectHiddenComponents(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2512]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectHiddenComponents(TOLEBOOL Result/*[in]*/) = 0;
  // [2513]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectStandartElements(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2513]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectStandartElements(TOLEBOOL Result/*[in]*/) = 0;
  // [2514]    .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectCurves(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2514]    .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectCurves(TOLEBOOL Result/*[in]*/) = 0;
  // [2515]    .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectPoints(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2515]    .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectPoints(TOLEBOOL Result/*[in]*/) = 0;
  // [2516]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectAllObjects(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2516]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectAllObjects(TOLEBOOL Result/*[in]*/) = 0;
  // [2517]     .
  virtual HRESULT STDMETHODCALLTYPE get_ProjectAllDesignations(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2517]     .
  virtual HRESULT STDMETHODCALLTYPE set_ProjectAllDesignations(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_ProjectBodies(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectBodies((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectSurfaces(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectSurfaces((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_HiddenObjectsVisible(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_HiddenObjectsVisible((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectThreads(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectThreads((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectDimensions(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectDimensions((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectRoughs(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectRoughs((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectBases(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectBases((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectTolerances(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectTolerances((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectPositions(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectPositions((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectLeaders(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectLeaders((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectMarkLeaders(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectMarkLeaders((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectBrandLeaders(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectBrandLeaders((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectHiddenComponents(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectHiddenComponents((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectStandartElements(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectStandartElements((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectCurves(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectCurves((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectPoints(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectPoints((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectAllObjects(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectAllObjects((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ProjectAllDesignations(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProjectAllDesignations((TOLEBOOL*)&Result));
    return Result;
  }


  __property   TOLEBOOL        ProjectBodies = {read = get_ProjectBodies, write = set_ProjectBodies};
  __property   TOLEBOOL        ProjectSurfaces = {read = get_ProjectSurfaces, write = set_ProjectSurfaces};
  __property   TOLEBOOL        HiddenObjectsVisible = {read = get_HiddenObjectsVisible, write = set_HiddenObjectsVisible};
  __property   TOLEBOOL        ProjectThreads = {read = get_ProjectThreads, write = set_ProjectThreads};
  __property   TOLEBOOL        ProjectDimensions = {read = get_ProjectDimensions, write = set_ProjectDimensions};
  __property   TOLEBOOL        ProjectRoughs = {read = get_ProjectRoughs, write = set_ProjectRoughs};
  __property   TOLEBOOL        ProjectBases = {read = get_ProjectBases, write = set_ProjectBases};
  __property   TOLEBOOL        ProjectTolerances = {read = get_ProjectTolerances, write = set_ProjectTolerances};
  __property   TOLEBOOL        ProjectPositions = {read = get_ProjectPositions, write = set_ProjectPositions};
  __property   TOLEBOOL        ProjectLeaders = {read = get_ProjectLeaders, write = set_ProjectLeaders};
  __property   TOLEBOOL        ProjectMarkLeaders = {read = get_ProjectMarkLeaders, write = set_ProjectMarkLeaders};
  __property   TOLEBOOL        ProjectBrandLeaders = {read = get_ProjectBrandLeaders, write = set_ProjectBrandLeaders};
  __property   TOLEBOOL        ProjectHiddenComponents = {read = get_ProjectHiddenComponents, write = set_ProjectHiddenComponents};
  __property   TOLEBOOL        ProjectStandartElements = {read = get_ProjectStandartElements, write = set_ProjectStandartElements};
  __property   TOLEBOOL        ProjectCurves = {read = get_ProjectCurves, write = set_ProjectCurves};
  __property   TOLEBOOL        ProjectPoints = {read = get_ProjectPoints, write = set_ProjectPoints};
  __property   TOLEBOOL        ProjectAllObjects = {read = get_ProjectAllObjects, write = set_ProjectAllObjects};
  __property   TOLEBOOL        ProjectAllDesignations = {read = get_ProjectAllDesignations, write = set_ProjectAllDesignations};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBreakViewParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1B94C65D-3473-4FF2-B185-0B1C2C98FCAE}
// *********************************************************************//
interface IBreakViewParam  : public IDispatch
{
public:
  // [4500]   .
  virtual HRESULT STDMETHODCALLTYPE AddBreakLine(double X1/*[in]*/, double Y1/*[in]*/, 
                                                 double X2/*[in]*/, double Y2/*[in]*/, 
                                                 double Angle/*[in]*/, long* Index/*[out,retval]*/) = 0;
  // [4501]   .
  virtual HRESULT STDMETHODCALLTYPE DeleteBreakLine(long Index/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4502]    .
  virtual HRESULT STDMETHODCALLTYPE DeleteAllBreakLines(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4503]    .
  virtual HRESULT STDMETHODCALLTYPE SetBreakLinePosition(long Index/*[in]*/, double X1/*[in]*/, 
                                                         double Y1/*[in]*/, double X2/*[in]*/, 
                                                         double Y2/*[in]*/, 
                                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4504]    .
  virtual HRESULT STDMETHODCALLTYPE GetBreakLinePosition(long Index/*[in]*/, double* X1/*[out]*/, 
                                                         double* Y1/*[out]*/, double* X2/*[out]*/, 
                                                         double* Y2/*[out]*/, 
                                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4505]    .
  virtual HRESULT STDMETHODCALLTYPE SetBreakLineParams(long Index/*[in]*/, double Angle/*[in]*/, 
                                                       double Clearance/*[in]*/, 
                                                       ksBreakLineTypeEnum BreakLineType/*[in]*/, 
                                                       double Amplitude/*[in]*/, 
                                                       double MaxAmplitude/*[in]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4506]    .
  virtual HRESULT STDMETHODCALLTYPE GetBreakLineParams(long Index/*[in]*/, double* Angle/*[out]*/, 
                                                       double* Clearance/*[out]*/, 
                                                       ksBreakLineTypeEnum* BreakLineType/*[out]*/, 
                                                       double* Amplitude/*[out]*/, 
                                                       double* MaxAmplitude/*[out]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4507]   .
  virtual HRESULT STDMETHODCALLTYPE get_BreaksCount(long* Result/*[out,retval]*/) = 0;
  // [4508]  .
  virtual HRESULT STDMETHODCALLTYPE get_BreaksVisible(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4508]  .
  virtual HRESULT STDMETHODCALLTYPE set_BreaksVisible(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall AddBreakLine(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                               double Y2/*[in]*/, double Angle/*[in]*/)
  {
    long Index;
    OLECHECK(this->AddBreakLine(X1, Y1, X2, Y2, Angle, (long*)&Index));
    return Index;
  }

  TOLEBOOL __fastcall DeleteBreakLine(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteBreakLine(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteAllBreakLines(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteAllBreakLines((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetBreakLinePosition(long Index/*[in]*/, double X1/*[in]*/, double Y1/*[in]*/, 
                                           double X2/*[in]*/, double Y2/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetBreakLinePosition(Index, X1, Y1, X2, Y2, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetBreakLinePosition(long Index/*[in]*/, double* X1/*[out]*/, 
                                           double* Y1/*[out]*/, double* X2/*[out]*/, 
                                           double* Y2/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBreakLinePosition(Index, X1, Y1, X2, Y2, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetBreakLineParams(long Index/*[in]*/, double Angle/*[in]*/, 
                                         double Clearance/*[in]*/, 
                                         ksBreakLineTypeEnum BreakLineType/*[in]*/, 
                                         double Amplitude/*[in]*/, double MaxAmplitude/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetBreakLineParams(Index, Angle, Clearance, BreakLineType, Amplitude, 
                                      MaxAmplitude, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetBreakLineParams(long Index/*[in]*/, double* Angle/*[out]*/, 
                                         double* Clearance/*[out]*/, 
                                         ksBreakLineTypeEnum* BreakLineType/*[out]*/, 
                                         double* Amplitude/*[out]*/, double* MaxAmplitude/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBreakLineParams(Index, Angle, Clearance, BreakLineType, Amplitude, 
                                      MaxAmplitude, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_BreaksCount(void)
  {
    long Result;
    OLECHECK(this->get_BreaksCount((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_BreaksVisible(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_BreaksVisible((TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            BreaksCount = {read = get_BreaksCount};
  __property   TOLEBOOL        BreaksVisible = {read = get_BreaksVisible, write = set_BreaksVisible};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICutViewParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D4C8B5AF-B2A1-4E07-9CD0-A1FC5B0BC1E1}
// *********************************************************************//
interface ICutViewParam  : public IDispatch
{
public:
  // [3500]  .
  virtual HRESULT STDMETHODCALLTYPE AddCut(BSTR Name/*[in]*/, long Number/*[in]*/, double X/*[in]*/, 
                                           double Y/*[in]*/, TOLEBOOL ModelCut/*[in]*/, 
                                           Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                           Kompasltapi7_tlb::IViewPtr View/*[in]*/, 
                                           long* Index/*[out,retval]*/) = 0;
  // [3501]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteCut(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3502]   .
  virtual HRESULT STDMETHODCALLTYPE DeleteAllCuts(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3503]   ,     .
  virtual HRESULT STDMETHODCALLTYPE SetCutPlanePosition(long Index/*[in]*/, double X/*[in]*/, 
                                                        double Y/*[in]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3504]   ,     .
  virtual HRESULT STDMETHODCALLTYPE GetCutPlanePosition(long Index/*[in]*/, double* X/*[out]*/, 
                                                        double* Y/*[out]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3505]   .
  virtual HRESULT STDMETHODCALLTYPE SetCutParams(long Index/*[in]*/, BSTR Name/*[in]*/, 
                                                 long Number/*[in]*/, TOLEBOOL ModelCut/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3506]   .
  virtual HRESULT STDMETHODCALLTYPE GetCutParams(long Index/*[in]*/, BSTR* Name/*[out]*/, 
                                                 long* Number/*[out]*/, TOLEBOOL* ModelCut/*[out]*/, 
                                                 Kompasltapi7_tlb::IDrawingObjectPtr* Contour/*[out,retval]*/) = 0;
  // [3507]  .
  virtual HRESULT STDMETHODCALLTYPE get_CutsCount(long* Result/*[out,retval]*/) = 0;
  // [3508]  .
  virtual HRESULT STDMETHODCALLTYPE get_LocalCut(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3508]  .
  virtual HRESULT STDMETHODCALLTYPE set_LocalCut(long Index/*[in]*/, TOLEBOOL Result/*[in]*/) = 0;
  // [3509]  .
  virtual HRESULT STDMETHODCALLTYPE get_HatchParam(long Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IHatchParamPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall AddCut(BSTR Name/*[in]*/, long Number/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                         TOLEBOOL ModelCut/*[in]*/, 
                         Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                         Kompasltapi7_tlb::IViewPtr View/*[in]*/)
  {
    long Index;
    OLECHECK(this->AddCut(Name, Number, X, Y, ModelCut, Contour, View, (long*)&Index));
    return Index;
  }

  TOLEBOOL __fastcall DeleteCut(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteCut(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteAllCuts(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteAllCuts((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCutPlanePosition(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCutPlanePosition(Index, X, Y, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetCutPlanePosition(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetCutPlanePosition(Index, X, Y, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCutParams(long Index/*[in]*/, BSTR Name/*[in]*/, long Number/*[in]*/, 
                                   TOLEBOOL ModelCut/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCutParams(Index, Name, Number, ModelCut, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall GetCutParams(long Index/*[in]*/, 
                                                              BSTR* Name/*[out]*/, 
                                                              long* Number/*[out]*/, 
                                                              TOLEBOOL* ModelCut/*[out]*/)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Contour;
    OLECHECK(this->GetCutParams(Index, Name, Number, ModelCut, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Contour));
    return Contour;
  }

  long __fastcall get_CutsCount(void)
  {
    long Result;
    OLECHECK(this->get_CutsCount((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_LocalCut(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_LocalCut(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IHatchParamPtr __fastcall get_HatchParam(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::IHatchParamPtr Result;
    OLECHECK(this->get_HatchParam(Index, (Kompasltapi7_tlb::IHatchParamPtr*)&Result));
    return Result;
  }


  __property   long            CutsCount = {read = get_CutsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IHatchParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {437D6587-7649-4A0C-80BB-7A6E89661839}
// *********************************************************************//
interface IHatchParam  : public IDispatch
{
public:
  // [6500] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [6500] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [6501] .
  virtual HRESULT STDMETHODCALLTYPE get_Color(long* Result/*[out,retval]*/) = 0;
  // [6501] .
  virtual HRESULT STDMETHODCALLTYPE set_Color(long Result/*[in]*/) = 0;
  // [6502]   .
  virtual HRESULT STDMETHODCALLTYPE get_Step(double* Result/*[out,retval]*/) = 0;
  // [6502]   .
  virtual HRESULT STDMETHODCALLTYPE set_Step(double Result/*[in]*/) = 0;
  // [6503]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* Result/*[out,retval]*/) = 0;
  // [6503]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double Result/*[in]*/) = 0;
  // [6504] TRUE -  FALSE - .
  virtual HRESULT STDMETHODCALLTYPE get_HatchType(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6504] TRUE -  FALSE - .
  virtual HRESULT STDMETHODCALLTYPE set_HatchType(TOLEBOOL Result/*[in]*/) = 0;
  // [6505]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* Result/*[out,retval]*/) = 0;
  // [6505]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double Result/*[in]*/) = 0;
  // [6506]      .
  virtual HRESULT STDMETHODCALLTYPE get_IsSheetAngle(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6506]      .
  virtual HRESULT STDMETHODCALLTYPE set_IsSheetAngle(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  long __fastcall get_Color(void)
  {
    long Result;
    OLECHECK(this->get_Color((long*)&Result));
    return Result;
  }

  double __fastcall get_Step(void)
  {
    double Result;
    OLECHECK(this->get_Step((double*)&Result));
    return Result;
  }

  double __fastcall get_Angle(void)
  {
    double Result;
    OLECHECK(this->get_Angle((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_HatchType(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_HatchType((TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_Width(void)
  {
    double Result;
    OLECHECK(this->get_Width((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_IsSheetAngle(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_IsSheetAngle((TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        HatchType = {read = get_HatchType, write = set_HatchType};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        IsSheetAngle = {read = get_IsSheetAngle, write = set_IsSheetAngle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDocument2DSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B09A64BF-7AA6-4BF6-B8E8-AA8E8EE6E9D6}
// *********************************************************************//
interface IDocument2DSettings  : public Kompasltapi7_tlb::IDocumentSettings
{
public:
  // [101]   .
  virtual HRESULT STDMETHODCALLTYPE set_LayersGroupWay(LayersGroupWayEnum PVal/*[in]*/) = 0;
  // [101]   .
  virtual HRESULT STDMETHODCALLTYPE get_LayersGroupWay(LayersGroupWayEnum* PVal/*[out,retval]*/) = 0;
  // [102]    .
  virtual HRESULT STDMETHODCALLTYPE set_CompositionInherit(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [102]    .
  virtual HRESULT STDMETHODCALLTYPE get_CompositionInherit(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  LayersGroupWayEnum __fastcall get_LayersGroupWay(void)
  {
    LayersGroupWayEnum PVal;
    OLECHECK(this->get_LayersGroupWay((LayersGroupWayEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CompositionInherit(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CompositionInherit((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   LayersGroupWayEnum LayersGroupWay = {read = get_LayersGroupWay, write = set_LayersGroupWay};
  __property   TOLEBOOL        CompositionInherit = {read = get_CompositionInherit, write = set_CompositionInherit};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0DC39FC2-4FB1-489E-A76E-E47413199FA3}
// *********************************************************************//
interface IDrawingDocumentSettings  : public IDispatch
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_SheetAutoNumber(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_SheetAutoNumber(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_SheetFirstNumber(long PVal/*[in,def,opt]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_SheetFirstNumber(long* PVal/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE set_SheetAutoCount(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_SheetAutoCount(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_SheetsCount(long PVal/*[in,def,opt]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_SheetsCount(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_SheetAutoNumber(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SheetAutoNumber((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_SheetFirstNumber(void)
  {
    long PVal;
    OLECHECK(this->get_SheetFirstNumber((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SheetAutoCount(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SheetAutoCount((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_SheetsCount(void)
  {
    long PVal;
    OLECHECK(this->get_SheetsCount((long*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        SheetAutoNumber = {read = get_SheetAutoNumber, write = set_SheetAutoNumber};
  __property   long            SheetFirstNumber = {read = get_SheetFirstNumber, write = set_SheetFirstNumber};
  __property   TOLEBOOL        SheetAutoCount = {read = get_SheetAutoCount, write = set_SheetAutoCount};
  __property   long            SheetsCount = {read = get_SheetsCount, write = set_SheetsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IFragmentDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A33D05CF-EFFF-4BBE-9BE0-15D283425828}
// *********************************************************************//
interface IFragmentDocumentSettings  : public IDispatch
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILibItemSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C474582A-2AD4-4ED5-A86A-A169C4DA5D54}
// *********************************************************************//
interface ILibItemSettings  : public IDispatch
{
public:
  // [500]   .
  virtual HRESULT STDMETHODCALLTYPE get_ItemCount(long* Count/*[out,retval]*/) = 0;
  // [501]        .
  virtual HRESULT STDMETHODCALLTYPE GetItem(TVariantInParam Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                            double* Result/*[out,retval]*/) = 0;
  // [502]   .
  virtual HRESULT STDMETHODCALLTYPE SetItem(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [503]        .
  virtual HRESULT STDMETHODCALLTYPE GetItems(TVariant* UniqIds/*[out]*/, TVariant* Uses/*[out]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_ItemCount(void)
  {
    long Count;
    OLECHECK(this->get_ItemCount((long*)&Count));
    return Count;
  }

  double __fastcall GetItem(TVariantInParam Index/*[in]*/, TOLEBOOL* Use/*[out]*/)
  {
    double Result;
    OLECHECK(this->GetItem(Index, Use, (double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetItem(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetItem(Index, Use, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetItems(TVariant* UniqIds/*[out]*/, TVariant* Uses/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetItems(UniqIds, Uses, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            ItemCount = {read = get_ItemCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertionParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1DB65C7E-535E-489E-8F34-84DF7FBA09B2}
// *********************************************************************//
interface IInsertionParameters  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_SourceHeight(double* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_SourceWidth(double* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(double* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(double PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Scale(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Scale(double PVal/*[in]*/) = 0;
  // [7]  : TRUE -  , FALSE  .
  virtual HRESULT STDMETHODCALLTYPE AutoScale(TOLEBOOL ByHeight/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(ksAngleEnum* PVal/*[out,retval]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(ksAngleEnum PVal/*[in]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/) = 0;
  // [10]     .
  virtual HRESULT STDMETHODCALLTYPE get_ImageResolution(double* PVal/*[out,retval]*/) = 0;
  // [10]     .
  virtual HRESULT STDMETHODCALLTYPE set_ImageResolution(double PVal/*[in]*/) = 0;
  // [11]  .( .)
  virtual HRESULT STDMETHODCALLTYPE get_Palette(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }

  double __fastcall get_SourceHeight(void)
  {
    double PVal;
    OLECHECK(this->get_SourceHeight((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SourceWidth(void)
  {
    double PVal;
    OLECHECK(this->get_SourceWidth((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Height(void)
  {
    double PVal;
    OLECHECK(this->get_Height((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Width(void)
  {
    double PVal;
    OLECHECK(this->get_Width((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Scale(void)
  {
    double PVal;
    OLECHECK(this->get_Scale((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AutoScale(TOLEBOOL ByHeight/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->AutoScale(ByHeight, (TOLEBOOL*)&PVal));
    return PVal;
  }

  ksAngleEnum __fastcall get_Angle(void)
  {
    ksAngleEnum PVal;
    OLECHECK(this->get_Angle((ksAngleEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(void)
  {
    Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
    OLECHECK(this->get_InsertionDefinition((Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal));
    return PVal;
  }

  double __fastcall get_ImageResolution(void)
  {
    double PVal;
    OLECHECK(this->get_ImageResolution((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Palette(void)
  {
    long PVal;
    OLECHECK(this->get_Palette((long*)&PVal));
    return PVal;
  }


  __property   BSTR            FileName = {read = get_FileName};
  __property   double          SourceHeight = {read = get_SourceHeight};
  __property   double          SourceWidth = {read = get_SourceWidth};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   ksAngleEnum Angle = {read = get_Angle, write = set_Angle};
  __property   Kompasltapi7_tlb::IInsertionDefinitionPtr InsertionDefinition = {read = get_InsertionDefinition, write = set_InsertionDefinition};
  __property   double          ImageResolution = {read = get_ImageResolution, write = set_ImageResolution};
  __property   long            Palette = {read = get_Palette};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertionDefinition
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {66907239-09BA-4456-AC9A-318804099628}
// *********************************************************************//
interface IInsertionDefinition  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionType(ksInsertionTypeEnum* Val/*[out,retval]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_FileName(BSTR PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [4]  -  
  virtual HRESULT STDMETHODCALLTYPE Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                         TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                         Kompasltapi7_tlb::IKompasDocument2DPtr* Result/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionObjectsCount(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksInsertionTypeEnum __fastcall get_InsertionType(void)
  {
    ksInsertionTypeEnum Val;
    OLECHECK(this->get_InsertionType((ksInsertionTypeEnum*)&Val));
    return Val;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IKompasDocument2DPtr __fastcall Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                                         TOLEBOOL ReadOnly/*[in,def,opt]*/)
  {
    Kompasltapi7_tlb::IKompasDocument2DPtr Result;
    OLECHECK(this->Open(Visible, ReadOnly, (Kompasltapi7_tlb::IKompasDocument2DPtr*)&Result));
    return Result;
  }

  long __fastcall get_InsertionObjectsCount(void)
  {
    long PVal;
    OLECHECK(this->get_InsertionObjectsCount((long*)&PVal));
    return PVal;
  }


  __property   ksInsertionTypeEnum InsertionType = {read = get_InsertionType};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   long            InsertionObjectsCount = {read = get_InsertionObjectsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITableCell
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CF9150BA-0E3A-46DE-8973-332A00361474}
// *********************************************************************//
interface ITableCell  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  (IText  ITextLine).
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_CellID(long* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Row(long* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Column(long* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }

  long __fastcall get_CellID(void)
  {
    long Result;
    OLECHECK(this->get_CellID((long*)&Result));
    return Result;
  }

  long __fastcall get_Row(void)
  {
    long Result;
    OLECHECK(this->get_Row((long*)&Result));
    return Result;
  }

  long __fastcall get_Column(void)
  {
    long Result;
    OLECHECK(this->get_Column((long*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Text = {read = get_Text};
  __property   long            CellID = {read = get_CellID};
  __property   long            Row = {read = get_Row};
  __property   long            Column = {read = get_Column};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D3715420-645E-435B-BB25-8E35AC570718}
// *********************************************************************//
interface ITable  : public IDispatch
{
public:
  // [2501]   .
  virtual HRESULT STDMETHODCALLTYPE get_RowsCount(long* Val/*[out,retval]*/) = 0;
  // [2502]   .
  virtual HRESULT STDMETHODCALLTYPE get_ColumnsCount(long* Val/*[out,retval]*/) = 0;
  // [2503]    .
  virtual HRESULT STDMETHODCALLTYPE get_Cell(long RowN/*[in]*/, long ColN/*[in]*/, 
                                             Kompasltapi7_tlb::ITableCellPtr* Val/*[out,retval]*/) = 0;
  // [2504]       .
  virtual HRESULT STDMETHODCALLTYPE get_CellById(long CellID/*[in]*/, 
                                                 Kompasltapi7_tlb::ITableCellPtr* Val/*[out,retval]*/) = 0;
  // [2505]  .
  virtual HRESULT STDMETHODCALLTYPE AddColumn(long ColN/*[in]*/, TOLEBOOL Right/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2506]    .
  virtual HRESULT STDMETHODCALLTYPE DeleteColumn(long ColN/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2507]  .
  virtual HRESULT STDMETHODCALLTYPE AddRow(long RowN/*[in]*/, TOLEBOOL Down/*[in]*/, 
                                           TOLEBOOL* PVa/*[out,retval]*/) = 0;
  // [2508]    .
  virtual HRESULT STDMETHODCALLTYPE DeleteRow(long RowN/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2509]   .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2510]      .
  virtual HRESULT STDMETHODCALLTYPE get_Range(long BeginRow/*[in]*/, long BeginColumn/*[in]*/, 
                                              long EndRow/*[in]*/, long EndColumn/*[in]*/, 
                                              Kompasltapi7_tlb::ITableRangePtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_RowsCount(void)
  {
    long Val;
    OLECHECK(this->get_RowsCount((long*)&Val));
    return Val;
  }

  long __fastcall get_ColumnsCount(void)
  {
    long Val;
    OLECHECK(this->get_ColumnsCount((long*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::ITableCellPtr __fastcall get_Cell(long RowN/*[in]*/, long ColN/*[in]*/)
  {
    Kompasltapi7_tlb::ITableCellPtr Val;
    OLECHECK(this->get_Cell(RowN, ColN, (Kompasltapi7_tlb::ITableCellPtr*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::ITableCellPtr __fastcall get_CellById(long CellID/*[in]*/)
  {
    Kompasltapi7_tlb::ITableCellPtr Val;
    OLECHECK(this->get_CellById(CellID, (Kompasltapi7_tlb::ITableCellPtr*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall AddColumn(long ColN/*[in]*/, TOLEBOOL Right/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->AddColumn(ColN, Right, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall DeleteColumn(long ColN/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->DeleteColumn(ColN, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddRow(long RowN/*[in]*/, TOLEBOOL Down/*[in]*/)
  {
    TOLEBOOL PVa;
    OLECHECK(this->AddRow(RowN, Down, (TOLEBOOL*)&PVa));
    return PVa;
  }

  TOLEBOOL __fastcall DeleteRow(long RowN/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->DeleteRow(RowN, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Clear((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITableRangePtr __fastcall get_Range(long BeginRow/*[in]*/, 
                                                        long BeginColumn/*[in]*/, 
                                                        long EndRow/*[in]*/, long EndColumn/*[in]*/)
  {
    Kompasltapi7_tlb::ITableRangePtr PVal;
    OLECHECK(this->get_Range(BeginRow, BeginColumn, EndRow, EndColumn, (Kompasltapi7_tlb::ITableRangePtr*)&PVal));
    return PVal;
  }


  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITableRange
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D78E47DC-172B-4824-A519-9BC2C0387B5C}
// *********************************************************************//
interface ITableRange  : public IDispatch
{
public:
  // [3501]  .
  virtual HRESULT STDMETHODCALLTYPE CombineCells(TOLEBOOL* Val/*[out,retval]*/) = 0;
  // [3502]  .
  virtual HRESULT STDMETHODCALLTYPE DivideCells(long ColumnCount/*[in]*/, long RowCount/*[in]*/, 
                                                TOLEBOOL PrepareCombine, 
                                                TOLEBOOL* Val/*[out,retval]*/) = 0;
  // [3503]   .
  virtual HRESULT STDMETHODCALLTYPE ClearCells(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3504]     SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Cells(TVariant* PVal/*[out,retval]*/) = 0;
  // [3505]  .
  virtual HRESULT STDMETHODCALLTYPE get_CellsFormat(Kompasltapi7_tlb::ICellFormatPtr* Val/*[out,retval]*/) = 0;
  // [3506]  .
  virtual HRESULT STDMETHODCALLTYPE get_CellsBoundaries(Kompasltapi7_tlb::ICellBoundariesPtr* Val/*[out,retval]*/) = 0;
  // [3507]       VT_ARRAY | VT_BSTR
  virtual HRESULT STDMETHODCALLTYPE get_Texts(TVariant* PVal/*[out,retval]*/) = 0;
  // [3507]       VT_ARRAY | VT_BSTR
  virtual HRESULT STDMETHODCALLTYPE set_Texts(TVariantInParam PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall CombineCells(void)
  {
    TOLEBOOL Val;
    OLECHECK(this->CombineCells((TOLEBOOL*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall DivideCells(long ColumnCount/*[in]*/, long RowCount/*[in]*/, 
                                  TOLEBOOL PrepareCombine)
  {
    TOLEBOOL Val;
    OLECHECK(this->DivideCells(ColumnCount, RowCount, PrepareCombine, (TOLEBOOL*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall ClearCells(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->ClearCells((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Cells(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Cells((TVariant*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ICellFormatPtr __fastcall get_CellsFormat(void)
  {
    Kompasltapi7_tlb::ICellFormatPtr Val;
    OLECHECK(this->get_CellsFormat((Kompasltapi7_tlb::ICellFormatPtr*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::ICellBoundariesPtr __fastcall get_CellsBoundaries(void)
  {
    Kompasltapi7_tlb::ICellBoundariesPtr Val;
    OLECHECK(this->get_CellsBoundaries((Kompasltapi7_tlb::ICellBoundariesPtr*)&Val));
    return Val;
  }

  TVariant __fastcall get_Texts(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Texts((TVariant*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ICellFormatPtr CellsFormat = {read = get_CellsFormat};
  __property   Kompasltapi7_tlb::ICellBoundariesPtr CellsBoundaries = {read = get_CellsBoundaries};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICellFormat
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9F2F27E7-8FB2-4C6C-A54D-35DB240060D8}
// *********************************************************************//
interface ICellFormat  : public IDispatch
{
public:
  // [4501]    .
  virtual HRESULT STDMETHODCALLTYPE get_TextStyle(long* Result/*[out,retval]*/) = 0;
  // [4501]    .
  virtual HRESULT STDMETHODCALLTYPE set_TextStyle(long Result/*[in]*/) = 0;
  // [4502]     .
  virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4502]     .
  virtual HRESULT STDMETHODCALLTYPE set_ReadOnly(TOLEBOOL Result/*[in]*/) = 0;
  // [4503]  .
  virtual HRESULT STDMETHODCALLTYPE get_OneLine(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4503]  .
  virtual HRESULT STDMETHODCALLTYPE set_OneLine(TOLEBOOL Result/*[in]*/) = 0;
  // [4504]  .
  virtual HRESULT STDMETHODCALLTYPE get_LeftEdge(double* Result/*[out,retval]*/) = 0;
  // [4504]  .
  virtual HRESULT STDMETHODCALLTYPE set_LeftEdge(double Result/*[in]*/) = 0;
  // [4505]  .
  virtual HRESULT STDMETHODCALLTYPE get_RightEdge(double* Result/*[out,retval]*/) = 0;
  // [4505]  .
  virtual HRESULT STDMETHODCALLTYPE set_RightEdge(double Result/*[in]*/) = 0;
  // [4506]  .
  virtual HRESULT STDMETHODCALLTYPE get_SpaceBefore(double* Result/*[out,retval]*/) = 0;
  // [4506]  .
  virtual HRESULT STDMETHODCALLTYPE set_SpaceBefore(double Result/*[in]*/) = 0;
  // [4507]  .
  virtual HRESULT STDMETHODCALLTYPE get_SpaceAfter(double* Result/*[out,retval]*/) = 0;
  // [4507]  .
  virtual HRESULT STDMETHODCALLTYPE set_SpaceAfter(double Result/*[in]*/) = 0;
  // [4508]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* Result/*[out,retval]*/) = 0;
  // [4508]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double Result/*[in]*/) = 0;
  // [4509]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(double* Result/*[out,retval]*/) = 0;
  // [4509]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(double Result/*[in]*/) = 0;
  // [4510]   .
  virtual HRESULT STDMETHODCALLTYPE get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/) = 0;
  // [4510]   .
  virtual HRESULT STDMETHODCALLTYPE set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/) = 0;
  // [4511]   (FALSE-   TRUE-  ).
  virtual HRESULT STDMETHODCALLTYPE get_VFormat(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4511]   (FALSE-   TRUE-  ).
  virtual HRESULT STDMETHODCALLTYPE set_VFormat(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_TextStyle(void)
  {
    long Result;
    OLECHECK(this->get_TextStyle((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ReadOnly(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ReadOnly((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_OneLine(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_OneLine((TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_LeftEdge(void)
  {
    double Result;
    OLECHECK(this->get_LeftEdge((double*)&Result));
    return Result;
  }

  double __fastcall get_RightEdge(void)
  {
    double Result;
    OLECHECK(this->get_RightEdge((double*)&Result));
    return Result;
  }

  double __fastcall get_SpaceBefore(void)
  {
    double Result;
    OLECHECK(this->get_SpaceBefore((double*)&Result));
    return Result;
  }

  double __fastcall get_SpaceAfter(void)
  {
    double Result;
    OLECHECK(this->get_SpaceAfter((double*)&Result));
    return Result;
  }

  double __fastcall get_Width(void)
  {
    double Result;
    OLECHECK(this->get_Width((double*)&Result));
    return Result;
  }

  double __fastcall get_Height(void)
  {
    double Result;
    OLECHECK(this->get_Height((double*)&Result));
    return Result;
  }

  ksTextHorizontalFormatEnum __fastcall get_HFormat(void)
  {
    ksTextHorizontalFormatEnum Result;
    OLECHECK(this->get_HFormat((ksTextHorizontalFormatEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_VFormat(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_VFormat((TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            TextStyle = {read = get_TextStyle, write = set_TextStyle};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        OneLine = {read = get_OneLine, write = set_OneLine};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   double          SpaceBefore = {read = get_SpaceBefore, write = set_SpaceBefore};
  __property   double          SpaceAfter = {read = get_SpaceAfter, write = set_SpaceAfter};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   ksTextHorizontalFormatEnum HFormat = {read = get_HFormat, write = set_HFormat};
  __property   TOLEBOOL        VFormat = {read = get_VFormat, write = set_VFormat};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICellBoundaries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1E29E849-1D1E-4791-BD31-8EF00ED5D118}
// *********************************************************************//
interface ICellBoundaries  : public IDispatch
{
public:
  // [5501]   .
  virtual HRESULT STDMETHODCALLTYPE get_LineStyle(ksCellBoundariesEnum Index/*[in]*/, 
                                                  ksCurveStyleEnum* Result/*[out,retval]*/) = 0;
  // [5501]   .
  virtual HRESULT STDMETHODCALLTYPE set_LineStyle(ksCellBoundariesEnum Index/*[in]*/, 
                                                  ksCurveStyleEnum Result/*[in]*/) = 0;
  // [5502]  .
  virtual HRESULT STDMETHODCALLTYPE get_LineVisible(ksCellBoundariesEnum Index/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5502]  .
  virtual HRESULT STDMETHODCALLTYPE set_LineVisible(ksCellBoundariesEnum Index/*[in]*/, 
                                                    TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksCurveStyleEnum __fastcall get_LineStyle(ksCellBoundariesEnum Index/*[in]*/)
  {
    ksCurveStyleEnum Result;
    OLECHECK(this->get_LineStyle(Index, (ksCurveStyleEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_LineVisible(ksCellBoundariesEnum Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_LineVisible(Index, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ksPropertyManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {5A89C538-E0DD-4C21-B3D1-3BF65EEB8C3E}
// *********************************************************************//
interface ksPropertyManagerNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall ButtonClick(long ButtonID)
  {
    _TDispID _dispid(/* ButtonClick */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = ButtonID /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ChangeControlValue(Kompasltapi7_tlb::IPropertyControlPtr Control)
  {
    _TDispID _dispid(/* ChangeControlValue */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ControlCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, long ButtonID)
  {
    _TDispID _dispid(/* ControlCommand */ DISPID(3));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
    _args[2] = ButtonID /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ButtonUpdate(long ButtonID, long* Check, TOLEBOOL* Enable)
  {
    _TDispID _dispid(/* ButtonUpdate */ DISPID(4));
    TAutoArgs<3> _args;
    _args[1] = ButtonID /*[VT_I4:0]*/;
    _args[2] = Check /*[VT_I4:1]*/;
    _args[3] = Enable /*[VT_BOOL:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ProcessActivate()
  {
    _TDispID _dispid(/* ProcessActivate */ DISPID(5));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ProcessDeactivate()
  {
    _TDispID _dispid(/* ProcessDeactivate */ DISPID(6));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CommandHelp(long Id)
  {
    _TDispID _dispid(/* CommandHelp */ DISPID(7));
    TAutoArgs<1> _args;
    _args[1] = Id /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SelectItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                 TOLEBOOL Select)
  {
    _TDispID _dispid(/* SelectItem */ DISPID(8));
    TAutoArgs<3> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
    _args[2] = Index /*[VT_I4:0]*/;
    _args[3] = Select /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CheckItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                TOLEBOOL Check)
  {
    _TDispID _dispid(/* CheckItem */ DISPID(9));
    TAutoArgs<3> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
    _args[2] = Index /*[VT_I4:0]*/;
    _args[3] = Check /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ChangeActiveTab(long TabIndex)
  {
    _TDispID _dispid(/* ChangeActiveTab */ DISPID(10));
    TAutoArgs<1> _args;
    _args[1] = TabIndex /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall EditFocus(Kompasltapi7_tlb::IPropertyControlPtr Control, TOLEBOOL Set)
  {
    _TDispID _dispid(/* EditFocus */ DISPID(11));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
    _args[2] = Set /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall UserMenuCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, long MenuID)
  {
    _TDispID _dispid(/* UserMenuCommand */ DISPID(12));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
    _args[2] = MenuID /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksPropertyUserControlNotify
// Flags:     (4096) Dispatchable
// GUID:      {5A31BB02-026C-4419-A0FF-A93CF58DCA99}
// *********************************************************************//
interface ksPropertyUserControlNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall CreateOCX(LPDISPATCH IOcx)
  {
    _TDispID _dispid(/* CreateOCX */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = IOcx /*[VT_DISPATCH:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall DestroyOCX()
  {
    _TDispID _dispid(/* DestroyOCX */ DISPID(2));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksDocumentFrameNotify
// Flags:     (4096) Dispatchable
// GUID:      {6ECBB531-5609-4364-AC92-7A6A21D23313}
// *********************************************************************//
interface ksDocumentFrameNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall BeginPaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj)
  {
    _TDispID _dispid(/* BeginPaint */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPaintObject*)PaintObj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ClosePaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj)
  {
    _TDispID _dispid(/* ClosePaint */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPaintObject*)PaintObj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall MouseDown(short NButton/*[in]*/, short NShiftState/*[in]*/, long X/*[in]*/, 
                                long Y/*[in]*/)
  {
    _TDispID _dispid(/* MouseDown */ DISPID(3));
    TAutoArgs<4> _args;
    _args[1] = NButton /*[VT_I2:0]*/;
    _args[2] = NShiftState /*[VT_I2:0]*/;
    _args[3] = X /*[VT_I4:0]*/;
    _args[4] = Y /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall MouseUp(short NButton/*[in]*/, short NShiftState/*[in]*/, long X/*[in]*/, 
                              long Y/*[in]*/)
  {
    _TDispID _dispid(/* MouseUp */ DISPID(4));
    TAutoArgs<4> _args;
    _args[1] = NButton /*[VT_I2:0]*/;
    _args[2] = NShiftState /*[VT_I2:0]*/;
    _args[3] = X /*[VT_I4:0]*/;
    _args[4] = Y /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall MouseDblClick(short NButton/*[in]*/, short NShiftState/*[in]*/, long X/*[in]*/
                                    , long Y/*[in]*/)
  {
    _TDispID _dispid(/* MouseDblClick */ DISPID(5));
    TAutoArgs<4> _args;
    _args[1] = NButton /*[VT_I2:0]*/;
    _args[2] = NShiftState /*[VT_I2:0]*/;
    _args[3] = X /*[VT_I4:0]*/;
    _args[4] = Y /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginPaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj/*[in]*/, 
                                   long DrawMode/*[in]*/)
  {
    _TDispID _dispid(/* BeginPaintGL */ DISPID(6));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ksGLObject*)GlObj /*[VT_USERDEFINED:1]*/;
    _args[2] = DrawMode /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ClosePaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj/*[in]*/, 
                                   long DrawMode/*[in]*/)
  {
    _TDispID _dispid(/* ClosePaintGL */ DISPID(7));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ksGLObject*)GlObj /*[VT_USERDEFINED:1]*/;
    _args[2] = DrawMode /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall AddGabarit(Kompasltapi7_tlb::IGabaritObjectPtr GabObj)
  {
    _TDispID _dispid(/* AddGabarit */ DISPID(8));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IGabaritObject*)GabObj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Activate()
  {
    _TDispID _dispid(/* Activate */ DISPID(9));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Deactivate()
  {
    _TDispID _dispid(/* Deactivate */ DISPID(10));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CloseFrame()
  {
    _TDispID _dispid(/* CloseFrame */ DISPID(11));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall MouseMove(short NShiftState/*[in]*/, long X/*[in]*/, long Y/*[in]*/)
  {
    _TDispID _dispid(/* MouseMove */ DISPID(12));
    TAutoArgs<3> _args;
    _args[1] = NShiftState /*[VT_I2:0]*/;
    _args[2] = X /*[VT_I4:0]*/;
    _args[3] = Y /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ShowOcxTree(LPDISPATCH Ocx/*[in]*/, TOLEBOOL show/*[in]*/)
  {
    _TDispID _dispid(/* ShowOcxTree */ DISPID(13));
    TAutoArgs<2> _args;
    _args[1] = Ocx /*[VT_DISPATCH:0]*/;
    _args[2] = show /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: IPaintObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D14726D-0EC2-49CE-B02C-FEDAA6D65BBD}
// *********************************************************************//
interface IPaintObject  : public IDispatch
{
public:
  // [1]  Handle .
  virtual HRESULT STDMETHODCALLTYPE GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE GetTransformMatrix(double* A11/*[out]*/, double* A12/*[out]*/, 
                                                       double* A13/*[out]*/, double* A14/*[out]*/, 
                                                       double* A21/*[out]*/, double* A22/*[out]*/, 
                                                       double* A23/*[out]*/, double* A24/*[out]*/) = 0;
  // [3]        " "  .
  virtual HRESULT STDMETHODCALLTYPE GetDIBForOutput(BSTR* MapFileName/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  OLE_HANDLE __fastcall GetHWND(void)
  {
    OLE_HANDLE HWnd;
    OLECHECK(this->GetHWND((OLE_HANDLE*)&HWnd));
    return HWnd;
  }

  BSTR __fastcall GetDIBForOutput(void)
  {
    BSTR MapFileName = 0;
    OLECHECK(this->GetDIBForOutput((BSTR*)&MapFileName));
    return MapFileName;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ksGLObject
// Flags:     (4096) Dispatchable
// GUID:      {B1C65023-B908-4CAD-9238-C5026520E62C}
// *********************************************************************//
interface ksGLObject : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall glBegin(long Mode/*[in]*/)
  {
    _TDispID _dispid(/* glBegin */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = Mode /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glEnd()
  {
    _TDispID _dispid(/* glEnd */ DISPID(2));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glEnable(long Cap/*[in]*/)
  {
    _TDispID _dispid(/* glEnable */ DISPID(3));
    TAutoArgs<1> _args;
    _args[1] = Cap /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glDisable(long Cap/*[in]*/)
  {
    _TDispID _dispid(/* glDisable */ DISPID(4));
    TAutoArgs<1> _args;
    _args[1] = Cap /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glColor3d(double R/*[in]*/, double G/*[in]*/, double B/*[in]*/)
  {
    _TDispID _dispid(/* glColor3d */ DISPID(20));
    TAutoArgs<3> _args;
    _args[1] = R /*[VT_R8:0]*/;
    _args[2] = G /*[VT_R8:0]*/;
    _args[3] = B /*[VT_R8:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glLineWidth(double W/*[in]*/)
  {
    _TDispID _dispid(/* glLineWidth */ DISPID(21));
    TAutoArgs<1> _args;
    _args[1] = W /*[VT_R8:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glLineStipple(long Factor/*[in]*/, short Pattern/*[in]*/)
  {
    _TDispID _dispid(/* glLineStipple */ DISPID(22));
    TAutoArgs<2> _args;
    _args[1] = Factor /*[VT_I4:0]*/;
    _args[2] = Pattern /*[VT_I2:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glPointSize(double W/*[in]*/)
  {
    _TDispID _dispid(/* glPointSize */ DISPID(23));
    TAutoArgs<1> _args;
    _args[1] = W /*[VT_R8:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glPolygonMode(long Face/*[in]*/, long Mode/*[in]*/)
  {
    _TDispID _dispid(/* glPolygonMode */ DISPID(24));
    TAutoArgs<2> _args;
    _args[1] = Face /*[VT_I4:0]*/;
    _args[2] = Mode /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glVertex2d(double X/*[in]*/, double Y/*[in]*/)
  {
    _TDispID _dispid(/* glVertex2d */ DISPID(40));
    TAutoArgs<2> _args;
    _args[1] = X /*[VT_R8:0]*/;
    _args[2] = Y /*[VT_R8:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glVertex2dv(double* PData/*[in]*/, long CountDouble/*[in]*/)
  {
    _TDispID _dispid(/* glVertex2dv */ DISPID(41));
    TAutoArgs<2> _args;
    _args[1] = PData /*[VT_R8:1]*/;
    _args[2] = CountDouble /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glVertex3d(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    _TDispID _dispid(/* glVertex3d */ DISPID(42));
    TAutoArgs<3> _args;
    _args[1] = X /*[VT_R8:0]*/;
    _args[2] = Y /*[VT_R8:0]*/;
    _args[3] = Z /*[VT_R8:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glVertex3dv(double* PData/*[in]*/, long CountDouble/*[in]*/)
  {
    _TDispID _dispid(/* glVertex3dv */ DISPID(43));
    TAutoArgs<2> _args;
    _args[1] = PData /*[VT_R8:1]*/;
    _args[2] = CountDouble /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glVertex4d(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                 double W/*[in]*/)
  {
    _TDispID _dispid(/* glVertex4d */ DISPID(44));
    TAutoArgs<4> _args;
    _args[1] = X /*[VT_R8:0]*/;
    _args[2] = Y /*[VT_R8:0]*/;
    _args[3] = Z /*[VT_R8:0]*/;
    _args[4] = W /*[VT_R8:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall glVertex4dv(double* PData/*[in]*/, long CountDouble/*[in]*/)
  {
    _TDispID _dispid(/* glVertex4dv */ DISPID(45));
    TAutoArgs<2> _args;
    _args[1] = PData /*[VT_R8:1]*/;
    _args[2] = CountDouble /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: IGabaritObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B6674824-CD9D-4220-B2CB-9F939A9C35C8}
// *********************************************************************//
interface IGabaritObject  : public IDispatch
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE GetCurrentGabarit(long NPage/*[in]*/, double* P1X/*[out]*/, 
                                                      double* P1Y/*[out]*/, double* P1Z/*[out]*/, 
                                                      double* P2X/*[out]*/, double* P2Y/*[out]*/, 
                                                      double* P2Z/*[out]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE AddGabarit(double X1/*[in]*/, double Y1/*[in]*/, 
                                               double Z1/*[in]*/, double X2/*[in]*/, 
                                               double Y2/*[in]*/, double Z2/*[in]*/, 
                                               TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE GetGabaritModifying(TOLEBOOL* DocGabaritModify/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall GetCurrentGabarit(long NPage/*[in]*/, double* P1X/*[out]*/, 
                                        double* P1Y/*[out]*/, double* P1Z/*[out]*/, 
                                        double* P2X/*[out]*/, double* P2Y/*[out]*/, 
                                        double* P2Z/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetCurrentGabarit(NPage, P1X, P1Y, P1Z, P2X, P2Y, P2Z, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddGabarit(double X1/*[in]*/, double Y1/*[in]*/, double Z1/*[in]*/, 
                                 double X2/*[in]*/, double Y2/*[in]*/, double Z2/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->AddGabarit(X1, Y1, Z1, X2, Y2, Z2, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetGabaritModifying(void)
  {
    TOLEBOOL DocGabaritModify;
    OLECHECK(this->GetGabaritModifying((TOLEBOOL*)&DocGabaritModify));
    return DocGabaritModify;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ksDrawingObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {E335A73F-DF27-4D33-8CBD-E928F797FB94}
// *********************************************************************//
interface ksDrawingObjectNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall ChangeActive(TVariant Obj)
  {
    _TDispID _dispid(/* ChangeActive */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginDelete(TVariant Objects)
  {
    _TDispID _dispid(/* BeginDelete */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Delete(TVariant Objects)
  {
    _TDispID _dispid(/* Delete */ DISPID(3));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginMove(TVariant Objects)
  {
    _TDispID _dispid(/* BeginMove */ DISPID(4));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Move(TVariant Objects)
  {
    _TDispID _dispid(/* Move */ DISPID(5));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginRotate(TVariant Objects)
  {
    _TDispID _dispid(/* BeginRotate */ DISPID(6));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Rotate(TVariant Objects)
  {
    _TDispID _dispid(/* Rotate */ DISPID(7));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginScale(TVariant Objects)
  {
    _TDispID _dispid(/* BeginScale */ DISPID(8));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Scale(TVariant Objects)
  {
    _TDispID _dispid(/* Scale */ DISPID(9));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginTransform(TVariant Objects)
  {
    _TDispID _dispid(/* BeginTransform */ DISPID(10));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Transform(TVariant Objects)
  {
    _TDispID _dispid(/* Transform */ DISPID(11));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginCopy(TVariant Objects)
  {
    _TDispID _dispid(/* BeginCopy */ DISPID(12));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Copy(TVariant Objects)
  {
    _TDispID _dispid(/* Copy */ DISPID(13));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginSymmetry(TVariant Objects)
  {
    _TDispID _dispid(/* BeginSymmetry */ DISPID(14));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Symmetry(TVariant Objects)
  {
    _TDispID _dispid(/* Symmetry */ DISPID(15));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginProcess(long PType, TVariant ObjRef)
  {
    _TDispID _dispid(/* BeginProcess */ DISPID(16));
    TAutoArgs<2> _args;
    _args[1] = PType /*[VT_I4:0]*/;
    _args[2] = ObjRef /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall EndProcess(long PType)
  {
    _TDispID _dispid(/* EndProcess */ DISPID(17));
    TAutoArgs<1> _args;
    _args[1] = PType /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CreateObject(TVariant Objects)
  {
    _TDispID _dispid(/* CreateObject */ DISPID(18));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall UpdateObject(TVariant Objects)
  {
    _TDispID _dispid(/* UpdateObject */ DISPID(19));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginDestroyObject(TVariant Objects)
  {
    _TDispID _dispid(/* BeginDestroyObject */ DISPID(20));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall DestroyObject(TVariant Objects)
  {
    _TDispID _dispid(/* DestroyObject */ DISPID(21));
    TAutoArgs<1> _args;
    _args[1] = Objects /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksViewsAndLayersManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {FC04C62E-AB0F-4614-B3D9-0EA8671CEB08}
// *********************************************************************//
interface ksViewsAndLayersManagerNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall BeginEdit()
  {
    _TDispID _dispid(/* BeginEdit */ DISPID(1));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall EndEdit(TOLEBOOL IsOk)
  {
    _TDispID _dispid(/* EndEdit */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = IsOk /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksLibraryManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {9B9CC387-E217-4EED-BCE9-9E1D645B49EE}
// *********************************************************************//
interface ksLibraryManagerNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall BeginAttach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* BeginAttach */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Attach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* Attach */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginDetach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* BeginDetach */ DISPID(3));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Detach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* Detach */ DISPID(4));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* BeginExecute */ DISPID(5));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall EndExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* EndExecute */ DISPID(6));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SystemControlStop(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* SystemControlStop */ DISPID(7));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SystemControlStart(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* SystemControlStart */ DISPID(8));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall AddLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* AddLibraryDescription */ DISPID(9));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall DeleteLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary)
  {
    _TDispID _dispid(/* DeleteLibraryDescription */ DISPID(10));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall AddInsert(Kompasltapi7_tlb::IInsertPtr PInsert, TOLEBOOL Create)
  {
    _TDispID _dispid(/* AddInsert */ DISPID(11));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsert*)PInsert /*[VT_USERDEFINED:1]*/;
    _args[2] = Create /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall DeleteInsert(Kompasltapi7_tlb::IInsertPtr PInsert)
  {
    _TDispID _dispid(/* DeleteInsert */ DISPID(12));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsert*)PInsert /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall EditInsert(Kompasltapi7_tlb::ILibraryPtr PLibrary, 
                                 Kompasltapi7_tlb::IKompasDocumentPtr PDoc, TOLEBOOL NewFrw)
  {
    _TDispID _dispid(/* EditInsert */ DISPID(13));
    TAutoArgs<3> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
    _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasDocument*)PDoc /*[VT_USERDEFINED:1]*/;
    _args[3] = NewFrw /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksSpecificationDescriptionNotify
// Flags:     (4096) Dispatchable
// GUID:      {A0DA14E6-4F92-4D18-8CD1-2BBAB695CE13}
// *********************************************************************//
interface ksSpecificationDescriptionNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall TuningSpcStyleBeginChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
  {
    _TDispID _dispid(/* TuningSpcStyleBeginChange */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall TuningSpcStyleChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                           TOLEBOOL IsOk)
  {
    _TDispID _dispid(/* TuningSpcStyleChange */ DISPID(2));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
    _args[2] = IsOk /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ChangeCurrentSpcDescription(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
  {
    _TDispID _dispid(/* ChangeCurrentSpcDescription */ DISPID(3));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SpcDescriptionAdd(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
  {
    _TDispID _dispid(/* SpcDescriptionAdd */ DISPID(4));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SpcDescriptionRemove(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
  {
    _TDispID _dispid(/* SpcDescriptionRemove */ DISPID(5));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SpcDescriptionBeginEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
  {
    _TDispID _dispid(/* SpcDescriptionBeginEdit */ DISPID(6));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SpcDescriptionEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                         TOLEBOOL IsOk)
  {
    _TDispID _dispid(/* SpcDescriptionEdit */ DISPID(7));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
    _args[2] = IsOk /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall SynchronizationBegin()
  {
    _TDispID _dispid(/* SynchronizationBegin */ DISPID(8));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Synchronization()
  {
    _TDispID _dispid(/* Synchronization */ DISPID(9));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginCalcPositions()
  {
    _TDispID _dispid(/* BeginCalcPositions */ DISPID(10));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CalcPositions()
  {
    _TDispID _dispid(/* CalcPositions */ DISPID(11));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginCreateObject(long TypeObj)
  {
    _TDispID _dispid(/* BeginCreateObject */ DISPID(12));
    TAutoArgs<1> _args;
    _args[1] = TypeObj /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksSpecificationObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {1C4DEC41-A8EA-40EE-9AC8-F807232DB874}
// *********************************************************************//
interface ksSpecificationObjectNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* BeginDelete */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* Delete */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number)
  {
    _TDispID _dispid(/* CellDblClick */ DISPID(3));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    _args[2] = Number /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number)
  {
    _TDispID _dispid(/* CellBeginEdit */ DISPID(4));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    _args[2] = Number /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* ChangeCurrent */ DISPID(5));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* DocumentBeginAdd */ DISPID(6));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName)
  {
    _TDispID _dispid(/* DocumentAdd */ DISPID(7));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    _args[2] = DocName /*[VT_BSTR:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName)
  {
    _TDispID _dispid(/* DocumentRemove */ DISPID(8));
    TAutoArgs<2> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    _args[2] = DocName /*[VT_BSTR:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* BeginGeomChange */ DISPID(9));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* GeomChange */ DISPID(10));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginProcess(long PType, Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* BeginProcess */ DISPID(11));
    TAutoArgs<2> _args;
    _args[1] = PType /*[VT_I4:0]*/;
    _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall EndProcess(long PType)
  {
    _TDispID _dispid(/* EndProcess */ DISPID(12));
    TAutoArgs<1> _args;
    _args[1] = PType /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* CreateObject */ DISPID(13));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
  {
    _TDispID _dispid(/* UpdateObject */ DISPID(14));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksLayoutSheetsNotify
// Flags:     (4096) Dispatchable
// GUID:      {58E30500-6073-4337-BFC1-32A74EA17DE8}
// *********************************************************************//
interface ksLayoutSheetsNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall Add(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
  {
    _TDispID _dispid(/* Add */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayoutSheet*)PSheet /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Delete(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
  {
    _TDispID _dispid(/* Delete */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayoutSheet*)PSheet /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall _Update(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
  {
    _TDispID _dispid(/* Update */ DISPID(3));
    TAutoArgs<1> _args;
    _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayoutSheet*)PSheet /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksModelObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {7B8E86E1-4304-449D-9CEC-1B14F74A16FB}
// *********************************************************************//
interface ksModelObjectNotify : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall BeginDelete(TVariant Obj)
  {
    _TDispID _dispid(/* BeginDelete */ DISPID(1));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Delete(TVariant Obj)
  {
    _TDispID _dispid(/* Delete */ DISPID(2));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Excluded(TVariant Obj, TOLEBOOL Excluded)
  {
    _TDispID _dispid(/* Excluded */ DISPID(3));
    TAutoArgs<2> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    _args[2] = Excluded /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Hidden(TVariant Obj, TOLEBOOL _Hidden)
  {
    _TDispID _dispid(/* Hidden */ DISPID(4));
    TAutoArgs<2> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    _args[2] = _Hidden /*[VT_BOOL:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginPropertyChanged(TVariant Obj)
  {
    _TDispID _dispid(/* BeginPropertyChanged */ DISPID(5));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall PropertyChanged(TVariant Obj)
  {
    _TDispID _dispid(/* PropertyChanged */ DISPID(6));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginPlacementChanged(TVariant Obj)
  {
    _TDispID _dispid(/* BeginPlacementChanged */ DISPID(7));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall PlacementChanged(TVariant Obj)
  {
    _TDispID _dispid(/* PlacementChanged */ DISPID(8));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginProcess(long PType, TVariant Pbj)
  {
    _TDispID _dispid(/* BeginProcess */ DISPID(9));
    TAutoArgs<2> _args;
    _args[1] = PType /*[VT_I4:0]*/;
    _args[2] = Pbj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall EndProcess(long PType)
  {
    _TDispID _dispid(/* EndProcess */ DISPID(10));
    TAutoArgs<1> _args;
    _args[1] = PType /*[VT_I4:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall CreateObject(TVariant Obj)
  {
    _TDispID _dispid(/* CreateObject */ DISPID(11));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall UpdateObject(TVariant Obj)
  {
    _TDispID _dispid(/* UpdateObject */ DISPID(12));
    TAutoArgs<1> _args;
    _args[1] = Obj /*[VT_VARIANT:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: ksDocument3DNotify7
// Flags:     (4096) Dispatchable
// GUID:      {C784D45B-8C68-4189-8F27-A3B0D6CFAEB2}
// *********************************************************************//
interface ksDocument3DNotify7 : public TDispWrapper<IDispatch>
{
  TOLEBOOL __fastcall BeginRebuild()
  {
    _TDispID _dispid(/* BeginRebuild */ DISPID(1));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall Rebuild()
  {
    _TDispID _dispid(/* Rebuild */ DISPID(2));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginChoiceMaterial()
  {
    _TDispID _dispid(/* BeginChoiceMaterial */ DISPID(3));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ChoiceMaterial(BSTR Material, double Density)
  {
    _TDispID _dispid(/* ChoiceMaterial */ DISPID(4));
    TAutoArgs<2> _args;
    _args[1] = Material /*[VT_BSTR:0]*/;
    _args[2] = Density /*[VT_R8:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginChoiceMarking()
  {
    _TDispID _dispid(/* BeginChoiceMarking */ DISPID(5));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall ChoiceMarking(BSTR Marking)
  {
    _TDispID _dispid(/* ChoiceMarking */ DISPID(6));
    TAutoArgs<1> _args;
    _args[1] = Marking /*[VT_BSTR:0]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginSetPartFromFile()
  {
    _TDispID _dispid(/* BeginSetPartFromFile */ DISPID(7));
    TAutoArgs<0> _args;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }

  TOLEBOOL __fastcall BeginCreatePartFromFile(TOLEBOOL TypeDoc, 
                                              Kompasltapi7_tlb::IModelObjectPtr Plane)
  {
    _TDispID _dispid(/* BeginCreatePartFromFile */ DISPID(8));
    TAutoArgs<2> _args;
    _args[1] = TypeDoc /*[VT_BOOL:0]*/;
    _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Plane /*[VT_USERDEFINED:1]*/;
    OleFunction(_dispid, _args);
    return _args.GetRetVariant();
  }


};
// *********************************************************************//
// Interface: IModelObjectNotifyResult
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {73653933-51B5-49D6-9EF2-6667639283CC}
// *********************************************************************//
interface IModelObjectNotifyResult  : public IDispatch
{
public:
  // [4001]  .
  virtual HRESULT STDMETHODCALLTYPE get_NotifyType(ksObject3DNotifyEnum* PVal/*[out,retval]*/) = 0;
  // [4002] M SafeArray  .
  virtual HRESULT STDMETHODCALLTYPE get_NotifyObjects(TVariant* PVal/*[out,retval]*/) = 0;
  // [4003]  .
  virtual HRESULT STDMETHODCALLTYPE get_ProcessType(ProcessTypeEnum* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksObject3DNotifyEnum __fastcall get_NotifyType(void)
  {
    ksObject3DNotifyEnum PVal;
    OLECHECK(this->get_NotifyType((ksObject3DNotifyEnum*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_NotifyObjects(void)
  {
    TVariant PVal;
    OLECHECK(this->get_NotifyObjects((TVariant*)&PVal));
    return PVal;
  }

  ProcessTypeEnum __fastcall get_ProcessType(void)
  {
    ProcessTypeEnum PVal;
    OLECHECK(this->get_ProcessType((ProcessTypeEnum*)&PVal));
    return PVal;
  }


  __property   ksObject3DNotifyEnum NotifyType = {read = get_NotifyType};
  __property   ProcessTypeEnum ProcessType = {read = get_ProcessType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IKompasDocument3DNotifyResult
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {354EA69A-3191-4DA4-B980-821BE9B7683C}
// *********************************************************************//
interface IKompasDocument3DNotifyResult  : public IDispatch
{
public:
  // [4001]  .
  virtual HRESULT STDMETHODCALLTYPE get_NotifyType(ksDocument3DNotifyEnum* PVal/*[out,retval]*/) = 0;
  // [4002]  .
  virtual HRESULT STDMETHODCALLTYPE get_NotifyObjectType(ksObj3dTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4003]     .
  virtual HRESULT STDMETHODCALLTYPE get_NotifyObject(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksDocument3DNotifyEnum __fastcall get_NotifyType(void)
  {
    ksDocument3DNotifyEnum PVal;
    OLECHECK(this->get_NotifyType((ksDocument3DNotifyEnum*)&PVal));
    return PVal;
  }

  ksObj3dTypeEnum __fastcall get_NotifyObjectType(void)
  {
    ksObj3dTypeEnum PVal;
    OLECHECK(this->get_NotifyObjectType((ksObj3dTypeEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_NotifyObject(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
    OLECHECK(this->get_NotifyObject((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal));
    return PVal;
  }


  __property   ksDocument3DNotifyEnum NotifyType = {read = get_NotifyType};
  __property   ksObj3dTypeEnum NotifyObjectType = {read = get_NotifyObjectType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr NotifyObject = {read = get_NotifyObject};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IModelContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2C6E8A0F-EDC8-413C-9304-9278817B915B}
// *********************************************************************//
interface IModelContainer  : public IDispatch
{
public:
  // [10001]  SAFEARRAY ,     .
  virtual HRESULT STDMETHODCALLTYPE get_Objects(TVariantInParam ObjType/*[in]*/, 
                                                TVariant* Result/*[out,retval]*/) = 0;
  // [10002]  ,     .
  virtual HRESULT STDMETHODCALLTYPE get_Sketchs(Kompasltapi7_tlb::ISketchsPtr* PVal/*[out,retval]*/) = 0;
  // [10003]   ,     .
  virtual HRESULT STDMETHODCALLTYPE get_Extrusions(Kompasltapi7_tlb::IExtrusionsPtr* PVal/*[out,retval]*/) = 0;
  // [10004]   ,     .
  virtual HRESULT STDMETHODCALLTYPE get_Points3D(Kompasltapi7_tlb::IPoints3DPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Objects(TVariantInParam ObjType/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_Objects(ObjType, (TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISketchsPtr __fastcall get_Sketchs(void)
  {
    Kompasltapi7_tlb::ISketchsPtr PVal;
    OLECHECK(this->get_Sketchs((Kompasltapi7_tlb::ISketchsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IExtrusionsPtr __fastcall get_Extrusions(void)
  {
    Kompasltapi7_tlb::IExtrusionsPtr PVal;
    OLECHECK(this->get_Extrusions((Kompasltapi7_tlb::IExtrusionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPoints3DPtr __fastcall get_Points3D(void)
  {
    Kompasltapi7_tlb::IPoints3DPtr PVal;
    OLECHECK(this->get_Points3D((Kompasltapi7_tlb::IPoints3DPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISketchsPtr Sketchs = {read = get_Sketchs};
  __property   Kompasltapi7_tlb::IExtrusionsPtr Extrusions = {read = get_Extrusions};
  __property   Kompasltapi7_tlb::IPoints3DPtr Points3D = {read = get_Points3D};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISketchs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE562963-395C-4748-9726-FCA9C531B1CA}
// *********************************************************************//
interface ISketchs  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   '',   .
  virtual HRESULT STDMETHODCALLTYPE get_Sketch(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/) = 0;
  // [2]    ''     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISketchPtr Result;
    OLECHECK(this->get_Sketch(Index, (Kompasltapi7_tlb::ISketchPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISketchPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISketchPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISketchPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISketch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E6BBF50D-8401-4FB3-A6B6-153D3F447255}
// *********************************************************************//
interface ISketch  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  
  virtual HRESULT STDMETHODCALLTYPE set_Plane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/) = 0;
  // [1]  
  virtual HRESULT STDMETHODCALLTYPE get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]            ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [2]            ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [3]             .
  virtual HRESULT STDMETHODCALLTYPE GetLocation(double* X/*[out]*/, double* Y/*[out]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]             .
  virtual HRESULT STDMETHODCALLTYPE SetLocation(double X/*[in]*/, double Y/*[in]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]      .
  virtual HRESULT STDMETHODCALLTYPE GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]      .
  virtual HRESULT STDMETHODCALLTYPE SetLoftPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                 TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE BeginEdit(Kompasltapi7_tlb::IFragmentDocumentPtr* SketchDoc/*[out,retval]*/) = 0;
  // [8]     .
  virtual HRESULT STDMETHODCALLTYPE EndEdit(TOLEBOOL* Res/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Plane(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_Plane((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetLocation(double* X/*[out]*/, double* Y/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetLocation(X, Y, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetLocation(double X/*[in]*/, double Y/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetLocation(X, Y, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetLoftPoint(X, Y, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetLoftPoint(double X/*[in]*/, double Y/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetLoftPoint(X, Y, (TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IFragmentDocumentPtr __fastcall BeginEdit(void)
  {
    Kompasltapi7_tlb::IFragmentDocumentPtr SketchDoc;
    OLECHECK(this->BeginEdit((Kompasltapi7_tlb::IFragmentDocumentPtr*)&SketchDoc));
    return SketchDoc;
  }

  TOLEBOOL __fastcall EndEdit(void)
  {
    TOLEBOOL Res;
    OLECHECK(this->EndEdit((TOLEBOOL*)&Res));
    return Res;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr Plane = {read = get_Plane, write = set_Plane};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IExtrusions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A160C032-CF96-4467-A682-CE2243DF76BD}
// *********************************************************************//
interface IExtrusions  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Extrusion(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/) = 0;
  // [2]         .
  virtual HRESULT STDMETHODCALLTYPE Add(ksObj3dTypeEnum ExtrusionType/*[in]*/, 
                                        Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IExtrusionPtr __fastcall get_Extrusion(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IExtrusionPtr Result;
    OLECHECK(this->get_Extrusion(Index, (Kompasltapi7_tlb::IExtrusionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IExtrusionPtr __fastcall Add(ksObj3dTypeEnum ExtrusionType/*[in]*/)
  {
    Kompasltapi7_tlb::IExtrusionPtr Result;
    OLECHECK(this->Add(ExtrusionType, (Kompasltapi7_tlb::IExtrusionPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IExtrusion
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0D7FFE70-33EB-442C-A9B6-A205EA85A237}
// *********************************************************************//
interface IExtrusion  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1] 
  virtual HRESULT STDMETHODCALLTYPE set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/) = 0;
  // [1] 
  virtual HRESULT STDMETHODCALLTYPE get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(ksDirectionTypeEnum PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_DraftValue(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_DraftValue(TOLEBOOL Normal/*[in]*/, 
                                                   double* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL PVal/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_DraftOutward(TOLEBOOL Normal/*[in]*/, 
                                                     TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7] ,   
  virtual HRESULT STDMETHODCALLTYPE set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                                    Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/) = 0;
  // [7] ,   
  virtual HRESULT STDMETHODCALLTYPE get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                                    Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [8]      .
  virtual HRESULT STDMETHODCALLTYPE GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                                      double* Depth/*[out]*/, 
                                                      double* DraftValue/*[out]*/, 
                                                      TOLEBOOL* DraftOutward/*[out]*/, 
                                                      Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]      .
  virtual HRESULT STDMETHODCALLTYPE SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum ExtrusionType/*[in]*/, 
                                                      double Depth/*[in]*/, 
                                                      double DraftValue/*[in]*/, 
                                                      TOLEBOOL DraftOutward/*[in]*/, 
                                                      Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void)
  {
    Kompasltapi7_tlb::ISketchPtr Result;
    OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
    return Result;
  }

  ksDirectionTypeEnum __fastcall get_Direction(void)
  {
    ksDirectionTypeEnum PVal;
    OLECHECK(this->get_Direction((ksDirectionTypeEnum*)&PVal));
    return PVal;
  }

  ksEndTypeEnum __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/)
  {
    ksEndTypeEnum PVal;
    OLECHECK(this->get_ExtrusionType(Normal, (ksEndTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Depth(TOLEBOOL Normal/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_Depth(Normal, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_DraftValue(TOLEBOOL Normal/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_DraftValue(Normal, (double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DraftOutward(TOLEBOOL Normal/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DraftOutward(Normal, (TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_DepthObject(Normal, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                        ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                        double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                        TOLEBOOL* DraftOutward/*[out]*/, 
                                        Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, 
                                     DepthObject, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                        ksEndTypeEnum ExtrusionType/*[in]*/, 
                                        double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                        TOLEBOOL DraftOutward/*[in]*/, 
                                        Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, 
                                     DepthObject, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoints3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {81EBB128-3963-4759-9D4E-2829C3078B0F}
// *********************************************************************//
interface IPoints3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Point3D(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPoint3DPtr __fastcall get_Point3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPoint3DPtr Result;
    OLECHECK(this->get_Point3D(Index, (Kompasltapi7_tlb::IPoint3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPoint3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IPoint3DPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IPoint3DPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMassInertiaParam7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {666C987F-2700-4C35-B8CE-DB8BFB5AAF02}
// *********************************************************************//
interface IMassInertiaParam7  : public IDispatch
{
public:
  // [3001]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [3001]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [3002]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [3002]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [3003]  Z  .
  virtual HRESULT STDMETHODCALLTYPE set_Zc(double PVal/*[in]*/) = 0;
  // [3003]  Z  .
  virtual HRESULT STDMETHODCALLTYPE get_Zc(double* PVal/*[out,retval]*/) = 0;
  // [3004]      
  virtual HRESULT STDMETHODCALLTYPE set_ManualMassCentre(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3004]      
  virtual HRESULT STDMETHODCALLTYPE get_ManualMassCentre(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3005]   
  virtual HRESULT STDMETHODCALLTYPE set_LengthUnits(ksLengthUnitsEnum PVal/*[in]*/) = 0;
  // [3005]   
  virtual HRESULT STDMETHODCALLTYPE get_LengthUnits(ksLengthUnitsEnum* PVal/*[out,retval]*/) = 0;
  // [3006]   
  virtual HRESULT STDMETHODCALLTYPE set_MassUnits(ksMassUnitsEnum PVal/*[in]*/) = 0;
  // [3006]   
  virtual HRESULT STDMETHODCALLTYPE get_MassUnits(ksMassUnitsEnum* PVal/*[out,retval]*/) = 0;
  // [3007]   
  virtual HRESULT STDMETHODCALLTYPE set_ManualMass(double Param1/*[in]*/) = 0;
  // [3008]    .
  virtual HRESULT STDMETHODCALLTYPE get_CalculateMass(double* PVal/*[out,retval]*/) = 0;
  // [3009]   
  virtual HRESULT STDMETHODCALLTYPE set_MassSettingMode(ksMassSettingModeEnum PVal/*[in]*/) = 0;
  // [3009]   
  virtual HRESULT STDMETHODCALLTYPE get_MassSettingMode(ksMassSettingModeEnum* PVal/*[out,retval]*/) = 0;
  // [3010]   
  virtual HRESULT STDMETHODCALLTYPE set_ManualDensity(double Param1/*[in]*/) = 0;
  // [3011]     .
  virtual HRESULT STDMETHODCALLTYPE get_HandBookDensity(double* PVal/*[out,retval]*/) = 0;
  // [3012]    
  virtual HRESULT STDMETHODCALLTYPE set_DensityMode(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3012]    
  virtual HRESULT STDMETHODCALLTYPE get_DensityMode(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3013] 
  virtual HRESULT STDMETHODCALLTYPE get_Volume(double* PVal/*[out,retval]*/) = 0;
  // [3014] 
  virtual HRESULT STDMETHODCALLTYPE get_Area(double* PVal/*[out,retval]*/) = 0;
  // [3015]   .
  virtual HRESULT STDMETHODCALLTYPE set_SourceData(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [3015]   .
  virtual HRESULT STDMETHODCALLTYPE get_SourceData(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3016]  
  virtual HRESULT STDMETHODCALLTYPE get_Actual(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3017]  .
  virtual HRESULT STDMETHODCALLTYPE Calculate(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3018]        X.
  virtual HRESULT STDMETHODCALLTYPE get_LX(double* PVal/*[out,retval]*/) = 0;
  // [3019]        Y.
  virtual HRESULT STDMETHODCALLTYPE get_LY(double* PVal/*[out,retval]*/) = 0;
  // [3020]        Z.
  virtual HRESULT STDMETHODCALLTYPE get_Lz(double* PVal/*[out,retval]*/) = 0;
  // [3021]        X  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Lxy(double* PVal/*[out,retval]*/) = 0;
  // [3022]        X  Z.
  virtual HRESULT STDMETHODCALLTYPE get_Lxz(double* PVal/*[out,retval]*/) = 0;
  // [3023]        Y  Z.
  virtual HRESULT STDMETHODCALLTYPE get_Lyz(double* PVal/*[out,retval]*/) = 0;
  // [3024]        X.
  virtual HRESULT STDMETHODCALLTYPE get_Jx(double* PVal/*[out,retval]*/) = 0;
  // [3025]        Y.
  virtual HRESULT STDMETHODCALLTYPE get_Jy(double* PVal/*[out,retval]*/) = 0;
  // [3026]        Z.
  virtual HRESULT STDMETHODCALLTYPE get_Jz(double* PVal/*[out,retval]*/) = 0;
  // [3027]        X  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Jxy(double* PVal/*[out,retval]*/) = 0;
  // [3028]        X  Z.
  virtual HRESULT STDMETHODCALLTYPE get_Jxz(double* PVal/*[out,retval]*/) = 0;
  // [3029]        Y  Z.
  virtual HRESULT STDMETHODCALLTYPE get_Jyz(double* PVal/*[out,retval]*/) = 0;
  // [3030]     X,Y,Z     .
  virtual HRESULT STDMETHODCALLTYPE get_Jx0(double* PVal/*[out,retval]*/) = 0;
  // [3031]     X,Y,Z     .
  virtual HRESULT STDMETHODCALLTYPE get_Jy0(double* PVal/*[out,retval]*/) = 0;
  // [3032]     X,Y,Z     .
  virtual HRESULT STDMETHODCALLTYPE get_Jz0(double* PVal/*[out,retval]*/) = 0;
  // [3033]      .
  virtual HRESULT STDMETHODCALLTYPE GetAxisX(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3034]      .
  virtual HRESULT STDMETHODCALLTYPE GetAxisY(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3035]      .
  virtual HRESULT STDMETHODCALLTYPE GetAxisZ(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [3036]  .
  virtual HRESULT STDMETHODCALLTYPE get_Mass(double* PVal/*[out,retval]*/) = 0;
  // [3037] .
  virtual HRESULT STDMETHODCALLTYPE get_Density(double* PVal/*[out,retval]*/) = 0;
  // [3038] .
  virtual HRESULT STDMETHODCALLTYPE get_Material(BSTR* PVal/*[out,retval]*/) = 0;
  // [3039]  .
  virtual HRESULT STDMETHODCALLTYPE SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Zc(void)
  {
    double PVal;
    OLECHECK(this->get_Zc((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ManualMassCentre(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ManualMassCentre((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksLengthUnitsEnum __fastcall get_LengthUnits(void)
  {
    ksLengthUnitsEnum PVal;
    OLECHECK(this->get_LengthUnits((ksLengthUnitsEnum*)&PVal));
    return PVal;
  }

  ksMassUnitsEnum __fastcall get_MassUnits(void)
  {
    ksMassUnitsEnum PVal;
    OLECHECK(this->get_MassUnits((ksMassUnitsEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_CalculateMass(void)
  {
    double PVal;
    OLECHECK(this->get_CalculateMass((double*)&PVal));
    return PVal;
  }

  ksMassSettingModeEnum __fastcall get_MassSettingMode(void)
  {
    ksMassSettingModeEnum PVal;
    OLECHECK(this->get_MassSettingMode((ksMassSettingModeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_HandBookDensity(void)
  {
    double PVal;
    OLECHECK(this->get_HandBookDensity((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DensityMode(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DensityMode((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Volume(void)
  {
    double PVal;
    OLECHECK(this->get_Volume((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Area(void)
  {
    double PVal;
    OLECHECK(this->get_Area((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SourceData(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SourceData((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Actual(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Actual((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Calculate(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Calculate((TOLEBOOL*)&PRes));
    return PRes;
  }

  double __fastcall get_LX(void)
  {
    double PVal;
    OLECHECK(this->get_LX((double*)&PVal));
    return PVal;
  }

  double __fastcall get_LY(void)
  {
    double PVal;
    OLECHECK(this->get_LY((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Lz(void)
  {
    double PVal;
    OLECHECK(this->get_Lz((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Lxy(void)
  {
    double PVal;
    OLECHECK(this->get_Lxy((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Lxz(void)
  {
    double PVal;
    OLECHECK(this->get_Lxz((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Lyz(void)
  {
    double PVal;
    OLECHECK(this->get_Lyz((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jx(void)
  {
    double PVal;
    OLECHECK(this->get_Jx((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jy(void)
  {
    double PVal;
    OLECHECK(this->get_Jy((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jz(void)
  {
    double PVal;
    OLECHECK(this->get_Jz((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jxy(void)
  {
    double PVal;
    OLECHECK(this->get_Jxy((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jxz(void)
  {
    double PVal;
    OLECHECK(this->get_Jxz((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jyz(void)
  {
    double PVal;
    OLECHECK(this->get_Jyz((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jx0(void)
  {
    double PVal;
    OLECHECK(this->get_Jx0((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jy0(void)
  {
    double PVal;
    OLECHECK(this->get_Jy0((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Jz0(void)
  {
    double PVal;
    OLECHECK(this->get_Jz0((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetAxisX(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->GetAxisX(X, Y, Z, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall GetAxisY(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->GetAxisY(X, Y, Z, (TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall GetAxisZ(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->GetAxisZ(X, Y, Z, (TOLEBOOL*)&PRes));
    return PRes;
  }

  double __fastcall get_Mass(void)
  {
    double PVal;
    OLECHECK(this->get_Mass((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Density(void)
  {
    double PVal;
    OLECHECK(this->get_Density((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Material(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Material((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetMaterial(Name, Density, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Zc = {read = get_Zc, write = set_Zc};
  __property   TOLEBOOL        ManualMassCentre = {read = get_ManualMassCentre, write = set_ManualMassCentre};
  __property   ksLengthUnitsEnum LengthUnits = {read = get_LengthUnits, write = set_LengthUnits};
  __property   ksMassUnitsEnum MassUnits = {read = get_MassUnits, write = set_MassUnits};
  __property   double          ManualMass = {write = set_ManualMass};
  __property   double          CalculateMass = {read = get_CalculateMass};
  __property   ksMassSettingModeEnum MassSettingMode = {read = get_MassSettingMode, write = set_MassSettingMode};
  __property   double          ManualDensity = {write = set_ManualDensity};
  __property   double          HandBookDensity = {read = get_HandBookDensity};
  __property   TOLEBOOL        DensityMode = {read = get_DensityMode, write = set_DensityMode};
  __property   double          Volume = {read = get_Volume};
  __property   double          Area = {read = get_Area};
  __property   TOLEBOOL        SourceData = {read = get_SourceData, write = set_SourceData};
  __property   TOLEBOOL        Actual = {read = get_Actual};
  __property   double          LX = {read = get_LX};
  __property   double          LY = {read = get_LY};
  __property   double          Lz = {read = get_Lz};
  __property   double          Lxy = {read = get_Lxy};
  __property   double          Lxz = {read = get_Lxz};
  __property   double          Lyz = {read = get_Lyz};
  __property   double          Jx = {read = get_Jx};
  __property   double          Jy = {read = get_Jy};
  __property   double          Jz = {read = get_Jz};
  __property   double          Jxy = {read = get_Jxy};
  __property   double          Jxz = {read = get_Jxz};
  __property   double          Jyz = {read = get_Jyz};
  __property   double          Jx0 = {read = get_Jx0};
  __property   double          Jy0 = {read = get_Jy0};
  __property   double          Jz0 = {read = get_Jz0};
  __property   double          Mass = {read = get_Mass};
  __property   double          Density = {read = get_Density};
  __property   BSTR            Material = {read = get_Material};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IThinParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B90D597D-4213-4A59-98D4-0B67E719551B}
// *********************************************************************//
interface IThinParameters  : public IDispatch
{
public:
  // [2501]     .
  virtual HRESULT STDMETHODCALLTYPE set_Thin(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [2501]     .
  virtual HRESULT STDMETHODCALLTYPE get_Thin(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2502]    .
  virtual HRESULT STDMETHODCALLTYPE set_ThinType(ksDirectionTypeEnum PVal/*[in]*/) = 0;
  // [2502]    .
  virtual HRESULT STDMETHODCALLTYPE get_ThinType(ksDirectionTypeEnum* PVal/*[out,retval]*/) = 0;
  // [2503]  .
  virtual HRESULT STDMETHODCALLTYPE set_Thickness(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/) = 0;
  // [2503]  .
  virtual HRESULT STDMETHODCALLTYPE get_Thickness(TOLEBOOL Normal/*[in]*/, 
                                                  double* PVal/*[out,retval]*/) = 0;
  // [2504]     .
  virtual HRESULT STDMETHODCALLTYPE GetThinParameters(TOLEBOOL* Thin/*[out]*/, 
                                                      ksDirectionTypeEnum* ThinType/*[out]*/, 
                                                      double* ThicknessNormal/*[out]*/, 
                                                      double* ThicknessReverse/*[out]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2505]     .
  virtual HRESULT STDMETHODCALLTYPE SetThinParameters(TOLEBOOL Thin/*[in]*/, 
                                                      ksDirectionTypeEnum ThinType/*[in]*/, 
                                                      double ThicknessNormal/*[in]*/, 
                                                      double ThicknessReverse/*[in]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Thin(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Thin((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksDirectionTypeEnum __fastcall get_ThinType(void)
  {
    ksDirectionTypeEnum PVal;
    OLECHECK(this->get_ThinType((ksDirectionTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Thickness(TOLEBOOL Normal/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_Thickness(Normal, (double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetThinParameters(TOLEBOOL* Thin/*[out]*/, 
                                        ksDirectionTypeEnum* ThinType/*[out]*/, 
                                        double* ThicknessNormal/*[out]*/, 
                                        double* ThicknessReverse/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetThinParameters(Thin, ThinType, ThicknessNormal, ThicknessReverse, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetThinParameters(TOLEBOOL Thin/*[in]*/, 
                                        ksDirectionTypeEnum ThinType/*[in]*/, 
                                        double ThicknessNormal/*[in]*/, 
                                        double ThicknessReverse/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetThinParameters(Thin, ThinType, ThicknessNormal, ThicknessReverse, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        Thin = {read = get_Thin, write = set_Thin};
  __property   ksDirectionTypeEnum ThinType = {read = get_ThinType, write = set_ThinType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICutExtrusion
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D2A01420-9159-48C2-8302-C1B10A13D8F8}
// *********************************************************************//
interface ICutExtrusion  : public Kompasltapi7_tlb::IExtrusion
{
public:
  // [101]    ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Cut(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [101]    ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Cut(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Cut(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Cut((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        Cut = {read = get_Cut, write = set_Cut};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IChooseBodies7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7BF80DAA-25F8-4AFF-AFEA-CAD390D4275D}
// *********************************************************************//
interface IChooseBodies7  : public IDispatch
{
public:
  // [3001]       enum ksChooseBodiesType.
  virtual HRESULT STDMETHODCALLTYPE set_ChooseBodiesType(ksChooseBodiesType Type/*[in]*/) = 0;
  // [3001]       enum ksChooseBodiesType.
  virtual HRESULT STDMETHODCALLTYPE get_ChooseBodiesType(ksChooseBodiesType* Type/*[out,retval]*/) = 0;
  // [3002]   (SAFEARRAY)
  virtual HRESULT STDMETHODCALLTYPE set_Bodies(TVariantInParam Result/*[in]*/) = 0;
  // [3002]   (SAFEARRAY)
  virtual HRESULT STDMETHODCALLTYPE get_Bodies(TVariant* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksChooseBodiesType __fastcall get_ChooseBodiesType(void)
  {
    ksChooseBodiesType Type;
    OLECHECK(this->get_ChooseBodiesType((ksChooseBodiesType*)&Type));
    return Type;
  }

  TVariant __fastcall get_Bodies(void)
  {
    TVariant Result;
    OLECHECK(this->get_Bodies((TVariant*)&Result));
    return Result;
  }


  __property   ksChooseBodiesType ChooseBodiesType = {read = get_ChooseBodiesType, write = set_ChooseBodiesType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBody7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4F122E22-0AA6-46E1-841F-A2504B145995}
// *********************************************************************//
interface IBody7  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, 
                                               double* Z1/*[out]*/, double* X2/*[out]*/, 
                                               double* Y2/*[out]*/, double* Z2/*[out]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Marking(BSTR* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Marking(BSTR PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE _Update(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_Hidden(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, double* Z1/*[out]*/, 
                                 double* X2/*[out]*/, double* Y2/*[out]*/, double* Z2/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetGabarit(X1, Y1, Z1, X2, Y2, Z2, (TOLEBOOL*)&Result));
    return Result;
  }

  BSTR __fastcall get_Marking(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Marking((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall _Update(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->_Update((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Hidden(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Hidden((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   BSTR            Marking = {read = get_Marking, write = set_Marking};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalBodies
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F56DBE72-48CC-48AD-9DA4-10D972C903EE}
// *********************************************************************//
interface ISheetMetalBodies  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   ' ',   .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalBody(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/) = 0;
  // [2]    ' '     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall get_SheetMetalBody(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISheetMetalBodyPtr Result;
    OLECHECK(this->get_SheetMetalBody(Index, (Kompasltapi7_tlb::ISheetMetalBodyPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISheetMetalBodyPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalBodyPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalBody
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2DC533DC-829E-4EFF-A905-541E9220A12D}
// *********************************************************************//
interface ISheetMetalBody  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_ThicknessDirection(TOLEBOOL PVal/*[in]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_ThicknessDirection(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE set_Thickness(double PVal/*[in]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE get_Thickness(double* PVal/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Straighten(TOLEBOOL PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Straighten(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_BendCoefficient(double PVal/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_BendCoefficient(double* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE set_BendValue(double PVal/*[in]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_BendValue(double* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE set_BendReduction(double PVal/*[in]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_BendReduction(double* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE set_BendTablePath(BSTR PVal/*[in]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_BendTablePath(BSTR* PVal/*[out,retval]*/) = 0;
  // [10] 
  virtual HRESULT STDMETHODCALLTYPE set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/) = 0;
  // [10] 
  virtual HRESULT STDMETHODCALLTYPE get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(ksDirectionTypeEnum PVal/*[in]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum PVal/*[in]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum* PVal/*[out,retval]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [14] ,   
  virtual HRESULT STDMETHODCALLTYPE set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                                    Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/) = 0;
  // [14] ,   
  virtual HRESULT STDMETHODCALLTYPE get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                                    Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [15]      .
  virtual HRESULT STDMETHODCALLTYPE GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                                      double* Depth/*[out]*/, 
                                                      Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [16]      .
  virtual HRESULT STDMETHODCALLTYPE SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                                      ksEndTypeEnum ExtrusionType/*[in]*/, 
                                                      double Depth/*[in]*/, 
                                                      Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                                      TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_ThicknessDirection(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ThicknessDirection((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Thickness(void)
  {
    double PVal;
    OLECHECK(this->get_Thickness((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Straighten(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Straighten((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  ksUnfoldTypeEnum __fastcall get_UnfoldType(void)
  {
    ksUnfoldTypeEnum PVal;
    OLECHECK(this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_BendCoefficient(void)
  {
    double PVal;
    OLECHECK(this->get_BendCoefficient((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BendValue(void)
  {
    double PVal;
    OLECHECK(this->get_BendValue((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BendReduction(void)
  {
    double PVal;
    OLECHECK(this->get_BendReduction((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_BendTablePath(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_BendTablePath((BSTR*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void)
  {
    Kompasltapi7_tlb::ISketchPtr Result;
    OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
    return Result;
  }

  ksDirectionTypeEnum __fastcall get_Direction(void)
  {
    ksDirectionTypeEnum PVal;
    OLECHECK(this->get_Direction((ksDirectionTypeEnum*)&PVal));
    return PVal;
  }

  ksEndTypeEnum __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/)
  {
    ksEndTypeEnum PVal;
    OLECHECK(this->get_ExtrusionType(Normal, (ksEndTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Depth(TOLEBOOL Normal/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_Depth(Normal, (double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_DepthObject(Normal, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                        ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                        double* Depth/*[out]*/, 
                                        Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetSideParameters(Normal, ExtrusionType, Depth, DepthObject, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                        ksEndTypeEnum ExtrusionType/*[in]*/, 
                                        double Depth/*[in]*/, 
                                        Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetSideParameters(Normal, ExtrusionType, Depth, DepthObject, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        ThicknessDirection = {read = get_ThicknessDirection, write = set_ThicknessDirection};
  __property   double          Thickness = {read = get_Thickness, write = set_Thickness};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath, write = set_BendTablePath};
  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {77A4895D-9B09-4C63-A3FF-6857F4340840}
// *********************************************************************//
interface ISheetMetalContainer  : public IDispatch
{
public:
  // [11001]   ,     .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalBodies(Kompasltapi7_tlb::ISheetMetalBodiesPtr* PVal/*[out,retval]*/) = 0;
  // [11002]  ,     .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalBends(Kompasltapi7_tlb::ISheetMetalBendsPtr* PVal/*[out,retval]*/) = 0;
  // [11003]    ,     .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalLineBends(Kompasltapi7_tlb::ISheetMetalLineBendsPtr* PVal/*[out,retval]*/) = 0;
  // [11004]     '',     .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalHoles(Kompasltapi7_tlb::ISheetMetalHolesPtr* PVal/*[out,retval]*/) = 0;
  // [11005]     '',     .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalCuts(Kompasltapi7_tlb::ISheetMetalCutsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISheetMetalBodiesPtr __fastcall get_SheetMetalBodies(void)
  {
    Kompasltapi7_tlb::ISheetMetalBodiesPtr PVal;
    OLECHECK(this->get_SheetMetalBodies((Kompasltapi7_tlb::ISheetMetalBodiesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISheetMetalBendsPtr __fastcall get_SheetMetalBends(void)
  {
    Kompasltapi7_tlb::ISheetMetalBendsPtr PVal;
    OLECHECK(this->get_SheetMetalBends((Kompasltapi7_tlb::ISheetMetalBendsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISheetMetalLineBendsPtr __fastcall get_SheetMetalLineBends(void)
  {
    Kompasltapi7_tlb::ISheetMetalLineBendsPtr PVal;
    OLECHECK(this->get_SheetMetalLineBends((Kompasltapi7_tlb::ISheetMetalLineBendsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISheetMetalHolesPtr __fastcall get_SheetMetalHoles(void)
  {
    Kompasltapi7_tlb::ISheetMetalHolesPtr PVal;
    OLECHECK(this->get_SheetMetalHoles((Kompasltapi7_tlb::ISheetMetalHolesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISheetMetalCutsPtr __fastcall get_SheetMetalCuts(void)
  {
    Kompasltapi7_tlb::ISheetMetalCutsPtr PVal;
    OLECHECK(this->get_SheetMetalCuts((Kompasltapi7_tlb::ISheetMetalCutsPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISheetMetalBodiesPtr SheetMetalBodies = {read = get_SheetMetalBodies};
  __property   Kompasltapi7_tlb::ISheetMetalBendsPtr SheetMetalBends = {read = get_SheetMetalBends};
  __property   Kompasltapi7_tlb::ISheetMetalLineBendsPtr SheetMetalLineBends = {read = get_SheetMetalLineBends};
  __property   Kompasltapi7_tlb::ISheetMetalHolesPtr SheetMetalHoles = {read = get_SheetMetalHoles};
  __property   Kompasltapi7_tlb::ISheetMetalCutsPtr SheetMetalCuts = {read = get_SheetMetalCuts};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalBends
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6826CFD6-6A48-4EB1-8C89-7DB4E36702B4}
// *********************************************************************//
interface ISheetMetalBends  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  '',   .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalBend(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/) = 0;
  // [2]    ''     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall get_SheetMetalBend(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISheetMetalBendPtr Result;
    OLECHECK(this->get_SheetMetalBend(Index, (Kompasltapi7_tlb::ISheetMetalBendPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISheetMetalBendPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalBendPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalBend
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B631D95F-C487-41D6-9726-C65E9F5A4505}
// *********************************************************************//
interface ISheetMetalBend  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE set_Disposal(ksBendDisposalEnum PVal/*[in]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE get_Disposal(ksBendDisposalEnum* PVal/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE set_LengthType(ksBendLengthTypeEnum PVal/*[in]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_LengthType(ksBendLengthTypeEnum* PVal/*[out,retval]*/) = 0;
  // [5]      (  ).
  virtual HRESULT STDMETHODCALLTYPE set_InternalLength(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]      (  ).
  virtual HRESULT STDMETHODCALLTYPE get_InternalLength(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE set_AngleType(TOLEBOOL PVal/*[in]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_AngleType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_OffsetType(ksBendOffsetTypeEnum PVal/*[in]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_OffsetType(ksBendOffsetTypeEnum* PVal/*[out,retval]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE set_Offset(double PVal/*[in]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE get_Offset(double* PVal/*[out,retval]*/) = 0;
  // [11] .
  virtual HRESULT STDMETHODCALLTYPE set_Straighten(TOLEBOOL PVal/*[in]*/) = 0;
  // [11] .
  virtual HRESULT STDMETHODCALLTYPE get_Straighten(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [12]     .
  virtual HRESULT STDMETHODCALLTYPE set_LeftSideType(ksBendSideTypeEnum PVal/*[in]*/) = 0;
  // [12]     .
  virtual HRESULT STDMETHODCALLTYPE get_LeftSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE set_DistanceLeftSide(double PVal/*[in]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE get_DistanceLeftSide(double* PVal/*[out,retval]*/) = 0;
  // [14]  .
  virtual HRESULT STDMETHODCALLTYPE set_LeftSideAngle(double PVal/*[in]*/) = 0;
  // [14]  .
  virtual HRESULT STDMETHODCALLTYPE get_LeftSideAngle(double* PVal/*[out,retval]*/) = 0;
  // [15]    .
  virtual HRESULT STDMETHODCALLTYPE set_DeviationLeftSide(double PVal/*[in]*/) = 0;
  // [15]    .
  virtual HRESULT STDMETHODCALLTYPE get_DeviationLeftSide(double* PVal/*[out,retval]*/) = 0;
  // [16]  .
  virtual HRESULT STDMETHODCALLTYPE set_WideningLeftSide(double PVal/*[in]*/) = 0;
  // [16]  .
  virtual HRESULT STDMETHODCALLTYPE get_WideningLeftSide(double* PVal/*[out,retval]*/) = 0;
  // [17]     .
  virtual HRESULT STDMETHODCALLTYPE set_RightSideType(ksBendSideTypeEnum PVal/*[in]*/) = 0;
  // [17]     .
  virtual HRESULT STDMETHODCALLTYPE get_RightSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/) = 0;
  // [18]  .
  virtual HRESULT STDMETHODCALLTYPE set_DistanceRightSide(double PVal/*[in]*/) = 0;
  // [18]  .
  virtual HRESULT STDMETHODCALLTYPE get_DistanceRightSide(double* PVal/*[out,retval]*/) = 0;
  // [19]  .
  virtual HRESULT STDMETHODCALLTYPE set_RightSideAngle(double PVal/*[in]*/) = 0;
  // [19]  .
  virtual HRESULT STDMETHODCALLTYPE get_RightSideAngle(double* PVal/*[out,retval]*/) = 0;
  // [20]    .
  virtual HRESULT STDMETHODCALLTYPE set_DeviationRightSide(double PVal/*[in]*/) = 0;
  // [20]    .
  virtual HRESULT STDMETHODCALLTYPE get_DeviationRightSide(double* PVal/*[out,retval]*/) = 0;
  // [21]  .
  virtual HRESULT STDMETHODCALLTYPE set_WideningRightSide(double PVal/*[in]*/) = 0;
  // [21]  .
  virtual HRESULT STDMETHODCALLTYPE get_WideningRightSide(double* PVal/*[out,retval]*/) = 0;
  // [22]   .
  virtual HRESULT STDMETHODCALLTYPE set_WithoutAngleRelease(TOLEBOOL PVal/*[in]*/) = 0;
  // [22]   .
  virtual HRESULT STDMETHODCALLTYPE get_WithoutAngleRelease(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [23]   c.
  virtual HRESULT STDMETHODCALLTYPE set_WithoutBendRelease(TOLEBOOL PVal/*[in]*/) = 0;
  // [23]   c.
  virtual HRESULT STDMETHODCALLTYPE get_WithoutBendRelease(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [24]  .
  virtual HRESULT STDMETHODCALLTYPE set_DismissalWithWidth(TOLEBOOL PVal/*[in]*/) = 0;
  // [24]  .
  virtual HRESULT STDMETHODCALLTYPE get_DismissalWithWidth(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [25]   c.
  virtual HRESULT STDMETHODCALLTYPE set_BendRelease(ksBendReleaseTypeEnum PVal/*[in]*/) = 0;
  // [25]   c.
  virtual HRESULT STDMETHODCALLTYPE get_BendRelease(ksBendReleaseTypeEnum* PVal/*[out,retval]*/) = 0;
  // [26]   .
  virtual HRESULT STDMETHODCALLTYPE set_DismissalWidth(double PVal/*[in]*/) = 0;
  // [26]   .
  virtual HRESULT STDMETHODCALLTYPE get_DismissalWidth(double* PVal/*[out,retval]*/) = 0;
  // [27]   .
  virtual HRESULT STDMETHODCALLTYPE set_DismissalDepth(double PVal/*[in]*/) = 0;
  // [27]   .
  virtual HRESULT STDMETHODCALLTYPE get_DismissalDepth(double* PVal/*[out,retval]*/) = 0;
  // [28]    c.
  virtual HRESULT STDMETHODCALLTYPE set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/) = 0;
  // [28]    c.
  virtual HRESULT STDMETHODCALLTYPE get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/) = 0;
  // [29] 
  virtual HRESULT STDMETHODCALLTYPE set_BendObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/) = 0;
  // [29] 
  virtual HRESULT STDMETHODCALLTYPE get_BendObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [30]  .
  virtual HRESULT STDMETHODCALLTYPE set_InternalRadius(TOLEBOOL PVal/*[in]*/) = 0;
  // [30]  .
  virtual HRESULT STDMETHODCALLTYPE get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [31]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [31]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [32]    .
  virtual HRESULT STDMETHODCALLTYPE set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/) = 0;
  // [32]    .
  virtual HRESULT STDMETHODCALLTYPE get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/) = 0;
  // [33]   .
  virtual HRESULT STDMETHODCALLTYPE set_BendCoefficient(double PVal/*[in]*/) = 0;
  // [33]   .
  virtual HRESULT STDMETHODCALLTYPE get_BendCoefficient(double* PVal/*[out,retval]*/) = 0;
  // [34]  .
  virtual HRESULT STDMETHODCALLTYPE set_BendValue(double PVal/*[in]*/) = 0;
  // [34]  .
  virtual HRESULT STDMETHODCALLTYPE get_BendValue(double* PVal/*[out,retval]*/) = 0;
  // [35]  .
  virtual HRESULT STDMETHODCALLTYPE set_BendReduction(double PVal/*[in]*/) = 0;
  // [35]  .
  virtual HRESULT STDMETHODCALLTYPE get_BendReduction(double* PVal/*[out,retval]*/) = 0;
  // [36]    .
  virtual HRESULT STDMETHODCALLTYPE get_BendTablePath(BSTR* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksBendDisposalEnum __fastcall get_Disposal(void)
  {
    ksBendDisposalEnum PVal;
    OLECHECK(this->get_Disposal((ksBendDisposalEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Width(void)
  {
    double PVal;
    OLECHECK(this->get_Width((double*)&PVal));
    return PVal;
  }

  ksBendLengthTypeEnum __fastcall get_LengthType(void)
  {
    ksBendLengthTypeEnum PVal;
    OLECHECK(this->get_LengthType((ksBendLengthTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_InternalLength(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_InternalLength((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AngleType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AngleType((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  ksBendOffsetTypeEnum __fastcall get_OffsetType(void)
  {
    ksBendOffsetTypeEnum PVal;
    OLECHECK(this->get_OffsetType((ksBendOffsetTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Offset(void)
  {
    double PVal;
    OLECHECK(this->get_Offset((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Straighten(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Straighten((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksBendSideTypeEnum __fastcall get_LeftSideType(void)
  {
    ksBendSideTypeEnum PVal;
    OLECHECK(this->get_LeftSideType((ksBendSideTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_DistanceLeftSide(void)
  {
    double PVal;
    OLECHECK(this->get_DistanceLeftSide((double*)&PVal));
    return PVal;
  }

  double __fastcall get_LeftSideAngle(void)
  {
    double PVal;
    OLECHECK(this->get_LeftSideAngle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_DeviationLeftSide(void)
  {
    double PVal;
    OLECHECK(this->get_DeviationLeftSide((double*)&PVal));
    return PVal;
  }

  double __fastcall get_WideningLeftSide(void)
  {
    double PVal;
    OLECHECK(this->get_WideningLeftSide((double*)&PVal));
    return PVal;
  }

  ksBendSideTypeEnum __fastcall get_RightSideType(void)
  {
    ksBendSideTypeEnum PVal;
    OLECHECK(this->get_RightSideType((ksBendSideTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_DistanceRightSide(void)
  {
    double PVal;
    OLECHECK(this->get_DistanceRightSide((double*)&PVal));
    return PVal;
  }

  double __fastcall get_RightSideAngle(void)
  {
    double PVal;
    OLECHECK(this->get_RightSideAngle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_DeviationRightSide(void)
  {
    double PVal;
    OLECHECK(this->get_DeviationRightSide((double*)&PVal));
    return PVal;
  }

  double __fastcall get_WideningRightSide(void)
  {
    double PVal;
    OLECHECK(this->get_WideningRightSide((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_WithoutAngleRelease(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_WithoutAngleRelease((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_WithoutBendRelease(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_WithoutBendRelease((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DismissalWithWidth(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DismissalWithWidth((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksBendReleaseTypeEnum __fastcall get_BendRelease(void)
  {
    ksBendReleaseTypeEnum PVal;
    OLECHECK(this->get_BendRelease((ksBendReleaseTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_DismissalWidth(void)
  {
    double PVal;
    OLECHECK(this->get_DismissalWidth((double*)&PVal));
    return PVal;
  }

  double __fastcall get_DismissalDepth(void)
  {
    double PVal;
    OLECHECK(this->get_DismissalDepth((double*)&PVal));
    return PVal;
  }

  ksBendAngleReleaseTypeEnum __fastcall get_DismissalAngleType(void)
  {
    ksBendAngleReleaseTypeEnum PVal;
    OLECHECK(this->get_DismissalAngleType((ksBendAngleReleaseTypeEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BendObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_BendObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_InternalRadius(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_InternalRadius((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  ksUnfoldTypeEnum __fastcall get_UnfoldType(void)
  {
    ksUnfoldTypeEnum PVal;
    OLECHECK(this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_BendCoefficient(void)
  {
    double PVal;
    OLECHECK(this->get_BendCoefficient((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BendValue(void)
  {
    double PVal;
    OLECHECK(this->get_BendValue((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BendReduction(void)
  {
    double PVal;
    OLECHECK(this->get_BendReduction((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_BendTablePath(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_BendTablePath((BSTR*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   ksBendDisposalEnum Disposal = {read = get_Disposal, write = set_Disposal};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksBendLengthTypeEnum LengthType = {read = get_LengthType, write = set_LengthType};
  __property   TOLEBOOL        InternalLength = {read = get_InternalLength, write = set_InternalLength};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   TOLEBOOL        AngleType = {read = get_AngleType, write = set_AngleType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksBendOffsetTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset = {read = get_Offset, write = set_Offset};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   ksBendSideTypeEnum LeftSideType = {read = get_LeftSideType, write = set_LeftSideType};
  __property   double          DistanceLeftSide = {read = get_DistanceLeftSide, write = set_DistanceLeftSide};
  __property   double          LeftSideAngle = {read = get_LeftSideAngle, write = set_LeftSideAngle};
  __property   double          DeviationLeftSide = {read = get_DeviationLeftSide, write = set_DeviationLeftSide};
  __property   double          WideningLeftSide = {read = get_WideningLeftSide, write = set_WideningLeftSide};
  __property   ksBendSideTypeEnum RightSideType = {read = get_RightSideType, write = set_RightSideType};
  __property   double          DistanceRightSide = {read = get_DistanceRightSide, write = set_DistanceRightSide};
  __property   double          RightSideAngle = {read = get_RightSideAngle, write = set_RightSideAngle};
  __property   double          DeviationRightSide = {read = get_DeviationRightSide, write = set_DeviationRightSide};
  __property   double          WideningRightSide = {read = get_WideningRightSide, write = set_WideningRightSide};
  __property   TOLEBOOL        WithoutAngleRelease = {read = get_WithoutAngleRelease, write = set_WithoutAngleRelease};
  __property   TOLEBOOL        WithoutBendRelease = {read = get_WithoutBendRelease, write = set_WithoutBendRelease};
  __property   TOLEBOOL        DismissalWithWidth = {read = get_DismissalWithWidth, write = set_DismissalWithWidth};
  __property   ksBendReleaseTypeEnum BendRelease = {read = get_BendRelease, write = set_BendRelease};
  __property   double          DismissalWidth = {read = get_DismissalWidth, write = set_DismissalWidth};
  __property   double          DismissalDepth = {read = get_DismissalDepth, write = set_DismissalDepth};
  __property   ksBendAngleReleaseTypeEnum DismissalAngleType = {read = get_DismissalAngleType, write = set_DismissalAngleType};
  __property   Kompasltapi7_tlb::IModelObjectPtr BendObject = {read = get_BendObject, write = set_BendObject};
  __property   TOLEBOOL        InternalRadius = {read = get_InternalRadius, write = set_InternalRadius};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalLineBends
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AF8B8310-AF82-4B02-8733-783FFAFD4DBD}
// *********************************************************************//
interface ISheetMetalLineBends  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   '  ',   .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalLineBend(TVariantInParam Index/*[in]*/, 
                                                           Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/) = 0;
  // [2]    '   '     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall get_SheetMetalLineBend(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISheetMetalLineBendPtr Result;
    OLECHECK(this->get_SheetMetalLineBend(Index, (Kompasltapi7_tlb::ISheetMetalLineBendPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISheetMetalLineBendPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalLineBendPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalLineBend
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E13EF07A-B1E8-41FD-9C85-C17F01E52A03}
// *********************************************************************//
interface ISheetMetalLineBend  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2]   - .
  virtual HRESULT STDMETHODCALLTYPE set_BendLeftSideFixed(TOLEBOOL PVal/*[in]*/) = 0;
  // [2]   - .
  virtual HRESULT STDMETHODCALLTYPE get_BendLeftSideFixed(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_AngleType(TOLEBOOL PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_AngleType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_BendType(ksBendTypeEnum PVal/*[in]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_BendType(ksBendTypeEnum* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Straighten(TOLEBOOL PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Straighten(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]    c.
  virtual HRESULT STDMETHODCALLTYPE set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/) = 0;
  // [7]    c.
  virtual HRESULT STDMETHODCALLTYPE get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE set_InternalRadius(TOLEBOOL PVal/*[in]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [10]    .
  virtual HRESULT STDMETHODCALLTYPE set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/) = 0;
  // [10]    .
  virtual HRESULT STDMETHODCALLTYPE get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE set_BendCoefficient(double PVal/*[in]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE get_BendCoefficient(double* PVal/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE set_BendValue(double PVal/*[in]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE get_BendValue(double* PVal/*[out,retval]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE set_BendReduction(double PVal/*[in]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE get_BendReduction(double* PVal/*[out,retval]*/) = 0;
  // [14]    .
  virtual HRESULT STDMETHODCALLTYPE get_BendTablePath(BSTR* PVal/*[out,retval]*/) = 0;
  // [15]   (SAFEARRAY)
  virtual HRESULT STDMETHODCALLTYPE set_Faces(TVariantInParam Result/*[in]*/) = 0;
  // [15]   (SAFEARRAY)
  virtual HRESULT STDMETHODCALLTYPE get_Faces(TVariant* Result/*[out,retval]*/) = 0;
  // [16]  (   ,   )
  virtual HRESULT STDMETHODCALLTYPE set_Line(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/) = 0;
  // [16]  (   ,   )
  virtual HRESULT STDMETHODCALLTYPE get_Line(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_BendLeftSideFixed(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_BendLeftSideFixed((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AngleType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AngleType((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  ksBendTypeEnum __fastcall get_BendType(void)
  {
    ksBendTypeEnum PVal;
    OLECHECK(this->get_BendType((ksBendTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Straighten(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Straighten((TOLEBOOL*)&PVal));
    return PVal;
  }

  ksBendAngleReleaseTypeEnum __fastcall get_DismissalAngleType(void)
  {
    ksBendAngleReleaseTypeEnum PVal;
    OLECHECK(this->get_DismissalAngleType((ksBendAngleReleaseTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_InternalRadius(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_InternalRadius((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  ksUnfoldTypeEnum __fastcall get_UnfoldType(void)
  {
    ksUnfoldTypeEnum PVal;
    OLECHECK(this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_BendCoefficient(void)
  {
    double PVal;
    OLECHECK(this->get_BendCoefficient((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BendValue(void)
  {
    double PVal;
    OLECHECK(this->get_BendValue((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BendReduction(void)
  {
    double PVal;
    OLECHECK(this->get_BendReduction((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_BendTablePath(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_BendTablePath((BSTR*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Faces(void)
  {
    TVariant Result;
    OLECHECK(this->get_Faces((TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Line(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_Line((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   TOLEBOOL        BendLeftSideFixed = {read = get_BendLeftSideFixed, write = set_BendLeftSideFixed};
  __property   TOLEBOOL        AngleType = {read = get_AngleType, write = set_AngleType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksBendTypeEnum BendType = {read = get_BendType, write = set_BendType};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   ksBendAngleReleaseTypeEnum DismissalAngleType = {read = get_DismissalAngleType, write = set_DismissalAngleType};
  __property   TOLEBOOL        InternalRadius = {read = get_InternalRadius, write = set_InternalRadius};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath};
  __property   Kompasltapi7_tlb::IModelObjectPtr Line = {read = get_Line, write = set_Line};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalHoles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E117BDF9-5133-4672-9B8F-06046F6B9BF3}
// *********************************************************************//
interface ISheetMetalHoles  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   '',   .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalHole(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/) = 0;
  // [2]    ''     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall get_SheetMetalHole(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISheetMetalHolePtr Result;
    OLECHECK(this->get_SheetMetalHole(Index, (Kompasltapi7_tlb::ISheetMetalHolePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISheetMetalHolePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalHolePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalHole
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3490B8B8-00D7-4BCF-AAD8-9487BF271084}
// *********************************************************************//
interface ISheetMetalHole  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_CutType(ksHoleCutTypeEnum PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Diameter(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Diameter(double* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Depth(double PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Depth(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_BasePlane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_BasePlane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [7] ,   .
  virtual HRESULT STDMETHODCALLTYPE set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/) = 0;
  // [7] ,   .
  virtual HRESULT STDMETHODCALLTYPE get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_Sketch(Kompasltapi7_tlb::ISketchPtr* PVal/*[out,retval]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  ksHoleCutTypeEnum __fastcall get_CutType(void)
  {
    ksHoleCutTypeEnum PVal;
    OLECHECK(this->get_CutType((ksHoleCutTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Diameter(void)
  {
    double PVal;
    OLECHECK(this->get_Diameter((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Depth(void)
  {
    double PVal;
    OLECHECK(this->get_Depth((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BasePlane(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_BasePlane((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_DepthObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void)
  {
    Kompasltapi7_tlb::ISketchPtr PVal;
    OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Body(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
    OLECHECK(this->get_Body((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal));
    return PVal;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   ksHoleCutTypeEnum CutType = {read = get_CutType, write = set_CutType};
  __property   double          Diameter = {read = get_Diameter, write = set_Diameter};
  __property   double          Depth = {read = get_Depth, write = set_Depth};
  __property   Kompasltapi7_tlb::IModelObjectPtr BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr DepthObject = {read = get_DepthObject, write = set_DepthObject};
  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Body = {read = get_Body, write = set_Body};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalCuts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9515E4BB-7C60-4C3A-AF7A-847861E67B55}
// *********************************************************************//
interface ISheetMetalCuts  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   '',   .
  virtual HRESULT STDMETHODCALLTYPE get_SheetMetalCut(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/) = 0;
  // [2]    ''     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall get_SheetMetalCut(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISheetMetalCutPtr Result;
    OLECHECK(this->get_SheetMetalCut(Index, (Kompasltapi7_tlb::ISheetMetalCutPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISheetMetalCutPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalCutPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISheetMetalCut
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B50B1730-BACF-46F2-B10A-6CCDF4E4A2B1}
// *********************************************************************//
interface ISheetMetalCut  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_CutType(ksHoleCutTypeEnum PVal/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_Depth(double PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Depth(double* PVal/*[out,retval]*/) = 0;
  // [4] ,   .
  virtual HRESULT STDMETHODCALLTYPE set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/) = 0;
  // [4] ,   .
  virtual HRESULT STDMETHODCALLTYPE get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [5]   -  .
  virtual HRESULT STDMETHODCALLTYPE set_Cut(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]   -  .
  virtual HRESULT STDMETHODCALLTYPE get_Cut(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void)
  {
    Kompasltapi7_tlb::ISketchPtr Result;
    OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
    return Result;
  }

  ksHoleCutTypeEnum __fastcall get_CutType(void)
  {
    ksHoleCutTypeEnum PVal;
    OLECHECK(this->get_CutType((ksHoleCutTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Depth(void)
  {
    double PVal;
    OLECHECK(this->get_Depth((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_DepthObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Cut(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Cut((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Body(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
    OLECHECK(this->get_Body((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksHoleCutTypeEnum CutType = {read = get_CutType, write = set_CutType};
  __property   double          Depth = {read = get_Depth, write = set_Depth};
  __property   Kompasltapi7_tlb::IModelObjectPtr DepthObject = {read = get_DepthObject, write = set_DepthObject};
  __property   TOLEBOOL        Cut = {read = get_Cut, write = set_Cut};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Body = {read = get_Body, write = set_Body};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint3DParamDisplace
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6D57994F-C170-4CED-968A-6AD69C1A2C7D}
// *********************************************************************//
interface IPoint3DParamDisplace  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   X.
  virtual HRESULT STDMETHODCALLTYPE set_DX(double PVal/*[in]*/) = 0;
  // [1]   X.
  virtual HRESULT STDMETHODCALLTYPE get_DX(double* PVal/*[out,retval]*/) = 0;
  // [2]   Y.
  virtual HRESULT STDMETHODCALLTYPE set_DY(double PVal/*[in]*/) = 0;
  // [2]   Y.
  virtual HRESULT STDMETHODCALLTYPE get_DY(double* PVal/*[out,retval]*/) = 0;
  // [3]   Z.
  virtual HRESULT STDMETHODCALLTYPE set_DZ(double PVal/*[in]*/) = 0;
  // [3]   Z.
  virtual HRESULT STDMETHODCALLTYPE get_DZ(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE set_Distance(double PVal/*[in]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Distance(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_DX(void)
  {
    double PVal;
    OLECHECK(this->get_DX((double*)&PVal));
    return PVal;
  }

  double __fastcall get_DY(void)
  {
    double PVal;
    OLECHECK(this->get_DY((double*)&PVal));
    return PVal;
  }

  double __fastcall get_DZ(void)
  {
    double PVal;
    OLECHECK(this->get_DZ((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetAssociationVertex(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetGuidingObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_GuidingObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_GuidingObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  double __fastcall get_Distance(void)
  {
    double PVal;
    OLECHECK(this->get_Distance((double*)&PVal));
    return PVal;
  }


  __property   double          DX = {read = get_DX, write = set_DX};
  __property   double          DY = {read = get_DY, write = set_DY};
  __property   double          DZ = {read = get_DZ, write = set_DZ};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr GuidingObject = {read = get_GuidingObject};
  __property   double          Distance = {read = get_Distance, write = set_Distance};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint3DParamIntersect
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C009F9ED-ED8A-4B1E-A4CE-156F43C3F6F3}
// *********************************************************************//
interface IPoint3DParamIntersect  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [5]          SAFEARRAY' VT_R8 - VT_ARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE get_CartPointArray(TVariant* Result/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_Index(long PVal/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_Index(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCurveObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_CurveObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_CurveObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_CartPointArray(void)
  {
    TVariant Result;
    OLECHECK(this->get_CartPointArray((TVariant*)&Result));
    return Result;
  }

  long __fastcall get_Index(void)
  {
    long PVal;
    OLECHECK(this->get_Index((long*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr CurveObject = {read = get_CurveObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   long            Index = {read = get_Index, write = set_Index};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint3DParamCenter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A92F2938-F1D4-475E-AAB4-962FAA4A4366}
// *********************************************************************//
interface IPoint3DParamCenter  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Object(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_Object((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr Object = {read = get_Object};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint3DParamCurve
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {06B6BDA5-1DC6-4321-8B28-AC065D87E060}
// *********************************************************************//
interface IPoint3DParamCurve  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_OffsetType(ksPoint3DCurveParamTypeEnum PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_OffsetType(ksPoint3DCurveParamTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Offset(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Offset(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCurveObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_CurveObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_CurveObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  ksPoint3DCurveParamTypeEnum __fastcall get_OffsetType(void)
  {
    ksPoint3DCurveParamTypeEnum PVal;
    OLECHECK(this->get_OffsetType((ksPoint3DCurveParamTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Offset(void)
  {
    double PVal;
    OLECHECK(this->get_Offset((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr CurveObject = {read = get_CurveObject};
  __property   ksPoint3DCurveParamTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset = {read = get_Offset, write = set_Offset};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint3DParamSurface
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18CE6BBE-63FB-4C94-8998-E40BC5B5D1C6}
// *********************************************************************//
interface IPoint3DParamSurface  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_OffsetType(ksPoint3DSurfaceParamTypeEnum PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_OffsetType(ksPoint3DSurfaceParamTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]   1.
  virtual HRESULT STDMETHODCALLTYPE set_Offset1(double PVal/*[in]*/) = 0;
  // [4]   1.
  virtual HRESULT STDMETHODCALLTYPE get_Offset1(double* PVal/*[out,retval]*/) = 0;
  // [5]   2.
  virtual HRESULT STDMETHODCALLTYPE set_Offset2(double PVal/*[in]*/) = 0;
  // [5]   2.
  virtual HRESULT STDMETHODCALLTYPE get_Offset2(double* PVal/*[out,retval]*/) = 0;
  // [6]   1.
  virtual HRESULT STDMETHODCALLTYPE SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]    1.
  virtual HRESULT STDMETHODCALLTYPE get_Object1(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [8]   2.
  virtual HRESULT STDMETHODCALLTYPE SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]    2.
  virtual HRESULT STDMETHODCALLTYPE get_Object2(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  ksPoint3DSurfaceParamTypeEnum __fastcall get_OffsetType(void)
  {
    ksPoint3DSurfaceParamTypeEnum PVal;
    OLECHECK(this->get_OffsetType((ksPoint3DSurfaceParamTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Offset1(void)
  {
    double PVal;
    OLECHECK(this->get_Offset1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Offset2(void)
  {
    double PVal;
    OLECHECK(this->get_Offset2((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetObject1(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetObject2(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   ksPoint3DSurfaceParamTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset1 = {read = get_Offset1, write = set_Offset1};
  __property   double          Offset2 = {read = get_Offset2, write = set_Offset2};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint3DParamProjection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B5D353DD-5F26-42FD-87D3-01C97C44E1BF}
// *********************************************************************//
interface IPoint3DParamProjection  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetAssociationVertex(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetGuidingObject(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_GuidingObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_GuidingObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr GuidingObject = {read = get_GuidingObject};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISourcePart7Params
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C9E03A9B-0A54-49AC-9397-8DE4465A8D1D}
// *********************************************************************//
interface ISourcePart7Params  : public IDispatch
{
public:
  // [12001]    .
  virtual HRESULT STDMETHODCALLTYPE get_SourceName(BSTR* PVal/*[out,retval]*/) = 0;
  // [12001]    .
  virtual HRESULT STDMETHODCALLTYPE set_SourceName(BSTR PVal/*[in]*/) = 0;
  // [12002]   .
  virtual HRESULT STDMETHODCALLTYPE get_SourceMarking(BSTR* PVal/*[out,retval]*/) = 0;
  // [12002]   .
  virtual HRESULT STDMETHODCALLTYPE set_SourceMarking(BSTR PVal/*[in]*/) = 0;
  // [12003]  .
  virtual HRESULT STDMETHODCALLTYPE get_DocumentAuthor(BSTR* PVal/*[out,retval]*/) = 0;
  // [12003]  .
  virtual HRESULT STDMETHODCALLTYPE set_DocumentAuthor(BSTR PVal/*[in]*/) = 0;
  // [12004] .
  virtual HRESULT STDMETHODCALLTYPE get_DocumentComment(TVariant* PVal/*[out,retval]*/) = 0;
  // [12004] .
  virtual HRESULT STDMETHODCALLTYPE set_DocumentComment(TVariantInParam PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_SourceName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_SourceName((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_SourceMarking(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_SourceMarking((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_DocumentAuthor(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_DocumentAuthor((BSTR*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_DocumentComment(void)
  {
    TVariant PVal;
    OLECHECK(this->get_DocumentComment((TVariant*)&PVal));
    return PVal;
  }


  __property   BSTR            SourceName = {read = get_SourceName, write = set_SourceName};
  __property   BSTR            SourceMarking = {read = get_SourceMarking, write = set_SourceMarking};
  __property   BSTR            DocumentAuthor = {read = get_DocumentAuthor, write = set_DocumentAuthor};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISymbols3DContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D695D345-7054-4BBD-8D36-8E1F5AEDC5ED}
// *********************************************************************//
interface ISymbols3DContainer  : public IDispatch
{
public:
  // [13001]  .
  virtual HRESULT STDMETHODCALLTYPE get_LineDimensions3D(Kompasltapi7_tlb::ILineDimensions3DPtr* PVal/*[out,retval]*/) = 0;
  // [13002]  .
  virtual HRESULT STDMETHODCALLTYPE get_RadialDimensions3D(Kompasltapi7_tlb::IRadialDimensions3DPtr* PVal/*[out,retval]*/) = 0;
  // [13003]  .
  virtual HRESULT STDMETHODCALLTYPE get_DiametralDimensions3D(Kompasltapi7_tlb::IDiametralDimensions3DPtr* PVal/*[out,retval]*/) = 0;
  // [13004]  .
  virtual HRESULT STDMETHODCALLTYPE get_AngleDimensions3D(Kompasltapi7_tlb::IAngleDimensions3DPtr* PVal/*[out,retval]*/) = 0;
  // [13005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Leaders3D(Kompasltapi7_tlb::ILeaders3DPtr* PVal/*[out,retval]*/) = 0;
  // [13006]  3D .
  virtual HRESULT STDMETHODCALLTYPE get_Roughs3D(Kompasltapi7_tlb::IRoughs3DPtr* PVal/*[out,retval]*/) = 0;
  // [13007]  3D .
  virtual HRESULT STDMETHODCALLTYPE get_Bases3D(Kompasltapi7_tlb::IBases3DPtr* PVal/*[out,retval]*/) = 0;
  // [13008]   3D.
  virtual HRESULT STDMETHODCALLTYPE get_Tolerances3D(Kompasltapi7_tlb::ITolerances3DPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILineDimensions3DPtr __fastcall get_LineDimensions3D(void)
  {
    Kompasltapi7_tlb::ILineDimensions3DPtr PVal;
    OLECHECK(this->get_LineDimensions3D((Kompasltapi7_tlb::ILineDimensions3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRadialDimensions3DPtr __fastcall get_RadialDimensions3D(void)
  {
    Kompasltapi7_tlb::IRadialDimensions3DPtr PVal;
    OLECHECK(this->get_RadialDimensions3D((Kompasltapi7_tlb::IRadialDimensions3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDiametralDimensions3DPtr __fastcall get_DiametralDimensions3D(void)
  {
    Kompasltapi7_tlb::IDiametralDimensions3DPtr PVal;
    OLECHECK(this->get_DiametralDimensions3D((Kompasltapi7_tlb::IDiametralDimensions3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAngleDimensions3DPtr __fastcall get_AngleDimensions3D(void)
  {
    Kompasltapi7_tlb::IAngleDimensions3DPtr PVal;
    OLECHECK(this->get_AngleDimensions3D((Kompasltapi7_tlb::IAngleDimensions3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILeaders3DPtr __fastcall get_Leaders3D(void)
  {
    Kompasltapi7_tlb::ILeaders3DPtr PVal;
    OLECHECK(this->get_Leaders3D((Kompasltapi7_tlb::ILeaders3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRoughs3DPtr __fastcall get_Roughs3D(void)
  {
    Kompasltapi7_tlb::IRoughs3DPtr PVal;
    OLECHECK(this->get_Roughs3D((Kompasltapi7_tlb::IRoughs3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IBases3DPtr __fastcall get_Bases3D(void)
  {
    Kompasltapi7_tlb::IBases3DPtr PVal;
    OLECHECK(this->get_Bases3D((Kompasltapi7_tlb::IBases3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITolerances3DPtr __fastcall get_Tolerances3D(void)
  {
    Kompasltapi7_tlb::ITolerances3DPtr PVal;
    OLECHECK(this->get_Tolerances3D((Kompasltapi7_tlb::ITolerances3DPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ILineDimensions3DPtr LineDimensions3D = {read = get_LineDimensions3D};
  __property   Kompasltapi7_tlb::IRadialDimensions3DPtr RadialDimensions3D = {read = get_RadialDimensions3D};
  __property   Kompasltapi7_tlb::IDiametralDimensions3DPtr DiametralDimensions3D = {read = get_DiametralDimensions3D};
  __property   Kompasltapi7_tlb::IAngleDimensions3DPtr AngleDimensions3D = {read = get_AngleDimensions3D};
  __property   Kompasltapi7_tlb::ILeaders3DPtr Leaders3D = {read = get_Leaders3D};
  __property   Kompasltapi7_tlb::IRoughs3DPtr Roughs3D = {read = get_Roughs3D};
  __property   Kompasltapi7_tlb::IBases3DPtr Bases3D = {read = get_Bases3D};
  __property   Kompasltapi7_tlb::ITolerances3DPtr Tolerances3D = {read = get_Tolerances3D};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILineDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8E30C80C-4C79-497B-A74B-84D44F96EF4D}
// *********************************************************************//
interface ILineDimensions3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_LineDimension3D(TVariantInParam Index/*[in]*/, 
                                                        Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(ksObj3dTypeEnum DimType/*[in]*/, 
                                        Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall get_LineDimension3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBaseLineDimension3DPtr Result;
    OLECHECK(this->get_LineDimension3D(Index, (Kompasltapi7_tlb::IBaseLineDimension3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/)
  {
    Kompasltapi7_tlb::IBaseLineDimension3DPtr Result;
    OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IBaseLineDimension3DPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBaseLineDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3514887E-321B-4CE3-A966-3EB1A02CEEF2}
// *********************************************************************//
interface IBaseLineDimension3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/) = 0;
  // [3]      .
  virtual HRESULT STDMETHODCALLTYPE get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/) = 0;
  // [3]      .
  virtual HRESULT STDMETHODCALLTYPE set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object1;
    OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
    return Object1;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object2;
    OLECHECK(this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&Object2));
    return Object2;
  }


  __property   double          Length = {read = get_Length, write = set_Length};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2, write = set_Object2};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRadialDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {153924CD-E046-4334-8798-46A6D6663DE4}
// *********************************************************************//
interface IRadialDimensions3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_RadialDimension3D(TVariantInParam Index/*[in]*/, 
                                                          Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall get_RadialDimension3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRadialDimension3DPtr Result;
    OLECHECK(this->get_RadialDimension3D(Index, (Kompasltapi7_tlb::IRadialDimension3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRadialDimension3DPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRadialDimension3DPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRadialDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5711B871-1FAE-425C-898E-583442D851CD}
// *********************************************************************//
interface IRadialDimension3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]      (  ).
  virtual HRESULT STDMETHODCALLTYPE get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/) = 0;
  // [1]      (  ).
  virtual HRESULT STDMETHODCALLTYPE set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/) = 0;
  // [2]      (  ).
  virtual HRESULT STDMETHODCALLTYPE get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/) = 0;
  // [2]      (  ).
  virtual HRESULT STDMETHODCALLTYPE set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/) = 0;
  // [3]    (   ).
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]    (   ).
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [5]       .
  virtual HRESULT STDMETHODCALLTYPE GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                    double* Z/*[out]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, 
                                                    double Z/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                   double* Z/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                   double Z/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object1;
    OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
    return Object1;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PlaneObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object;
    OLECHECK(this->get_PlaneObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object));
    return Object;
  }

  TOLEBOOL __fastcall get_DimensionType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr PlaneObject = {read = get_PlaneObject, write = set_PlaneObject};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDiametralDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {79B5AC3B-9B2F-4C75-8482-3C0D6B07D911}
// *********************************************************************//
interface IDiametralDimensions3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_DiametralDimension3D(TVariantInParam Index/*[in]*/, 
                                                             Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall get_DiametralDimension3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDiametralDimension3DPtr Result;
    OLECHECK(this->get_DiametralDimension3D(Index, (Kompasltapi7_tlb::IDiametralDimension3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IDiametralDimension3DPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IDiametralDimension3DPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDiametralDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {261AE065-69B8-4B42-B103-C8746720C5BF}
// *********************************************************************//
interface IDiametralDimension3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]      (  ).
  virtual HRESULT STDMETHODCALLTYPE get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/) = 0;
  // [1]      (  ).
  virtual HRESULT STDMETHODCALLTYPE set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/) = 0;
  // [2]      (  ).
  virtual HRESULT STDMETHODCALLTYPE get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/) = 0;
  // [2]      (  ).
  virtual HRESULT STDMETHODCALLTYPE set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/) = 0;
  // [3]    (     ).
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]    (     ).
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [5]       .
  virtual HRESULT STDMETHODCALLTYPE GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                    double* Z/*[out]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, 
                                                    double Z/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                   double* Z/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                   double Z/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object1;
    OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
    return Object1;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PlaneObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object2;
    OLECHECK(this->get_PlaneObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object2));
    return Object2;
  }

  TOLEBOOL __fastcall get_DimensionType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr PlaneObject = {read = get_PlaneObject, write = set_PlaneObject};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAngleDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E0E8DB05-F71B-457E-BFEB-7EC2E803E77A}
// *********************************************************************//
interface IAngleDimensions3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_AngleDimension3D(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall get_AngleDimension3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAngleDimension3DPtr Result;
    OLECHECK(this->get_AngleDimension3D(Index, (Kompasltapi7_tlb::IAngleDimension3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IAngleDimension3DPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IAngleDimension3DPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAngleDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C22870B5-F002-4C76-9E67-46854E938824}
// *********************************************************************//
interface IAngleDimension3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/) = 0;
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE Inverse(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                   double* Z/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                   double Z/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object1;
    OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
    return Object1;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object2;
    OLECHECK(this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&Object2));
    return Object2;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  ksAngleDimTypeEnum __fastcall get_DimensionType(void)
  {
    ksAngleDimTypeEnum PVal;
    OLECHECK(this->get_DimensionType((ksAngleDimTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Inverse(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Inverse((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2, write = set_Object2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   ksAngleDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILeaders3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C6E6BDD4-2B0E-49BF-87D3-04E800200DDC}
// *********************************************************************//
interface ILeaders3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_Leader3D(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IBaseLeader3DPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(ksObj3dTypeEnum DimType/*[in]*/, 
                                        Kompasltapi7_tlb::IBaseLeader3DPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall get_Leader3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBaseLeader3DPtr Result;
    OLECHECK(this->get_Leader3D(Index, (Kompasltapi7_tlb::IBaseLeader3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/)
  {
    Kompasltapi7_tlb::IBaseLeader3DPtr Value;
    OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IBaseLeader3DPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBaseLeader3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7170F38E-8230-4C9C-B36B-0BACBB27B123}
// *********************************************************************//
interface IBaseLeader3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BasePlane(ksObj3dTypeEnum Val/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE GetPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                                double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]   -.
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType(ksArrowEnum* Result/*[out,retval]*/) = 0;
  // [5]   -.
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType(ksArrowEnum Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksObj3dTypeEnum __fastcall get_BasePlane(void)
  {
    ksObj3dTypeEnum Val;
    OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Val;
    OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  ksArrowEnum __fastcall get_ArrowType(void)
  {
    ksArrowEnum Result;
    OLECHECK(this->get_ArrowType((ksArrowEnum*)&Result));
    return Result;
  }


  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRoughs3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8533772B-1C43-4FDD-9F0E-BC92F15862C9}
// *********************************************************************//
interface IRoughs3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  3D    .
  virtual HRESULT STDMETHODCALLTYPE get_Rough3D(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IRough3DPtr* Result/*[out,retval]*/) = 0;
  // [2]  3D    .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRough3DPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRough3DPtr __fastcall get_Rough3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRough3DPtr Result;
    OLECHECK(this->get_Rough3D(Index, (Kompasltapi7_tlb::IRough3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRough3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRough3DPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRough3DPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRough3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {083A4984-199E-4591-8FC3-CB8A9D7D4303}
// *********************************************************************//
interface IRough3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BasePlane(ksObj3dTypeEnum Val/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE GetPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                                double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                                    double* Z/*[out]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]       .
  virtual HRESULT STDMETHODCALLTYPE SetBasePosition(double X/*[in]*/, double Y/*[in]*/, 
                                                    double Z/*[in]*/, 
                                                    Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                                     double* Z/*[out]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, 
                                                     double Z/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksObj3dTypeEnum __fastcall get_BasePlane(void)
  {
    ksObj3dTypeEnum Val;
    OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Val;
    OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
    return Object1;
  }

  TOLEBOOL __fastcall GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBasePosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetBasePosition(X, Y, Z, Object, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetShelfPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetShelfPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBases3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BC582B3-1F82-4D19-AF95-24CBAD412E52}
// *********************************************************************//
interface IBases3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  3D    .
  virtual HRESULT STDMETHODCALLTYPE get_Base3D(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IBase3DPtr* Result/*[out,retval]*/) = 0;
  // [2]  3D    .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IBase3DPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBase3DPtr __fastcall get_Base3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBase3DPtr Result;
    OLECHECK(this->get_Base3D(Index, (Kompasltapi7_tlb::IBase3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBase3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IBase3DPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IBase3DPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBase3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D5B737F6-FD3D-49F8-B3D8-C8475E5E3D3A}
// *********************************************************************//
interface IBase3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BasePlane(ksObj3dTypeEnum Val/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE GetPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                                double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/) = 0;
  // [6]    (TRUE-   , FALSE-  ).
  virtual HRESULT STDMETHODCALLTYPE get_DrawType(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]    (TRUE-   , FALSE-  ).
  virtual HRESULT STDMETHODCALLTYPE set_DrawType(TOLEBOOL Result/*[in]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSorted(TOLEBOOL Result/*[in]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [9]      .
  virtual HRESULT STDMETHODCALLTYPE GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                        double* Z/*[out]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]      .
  virtual HRESULT STDMETHODCALLTYPE SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                        double Z/*[in]*/, 
                                                        Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]     .
  virtual HRESULT STDMETHODCALLTYPE GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                      double* Z/*[out]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]     .
  virtual HRESULT STDMETHODCALLTYPE SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                      double Z/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksObj3dTypeEnum __fastcall get_BasePlane(void)
  {
    ksObj3dTypeEnum Val;
    OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Val;
    OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
    return Object1;
  }

  TOLEBOOL __fastcall get_DrawType(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_DrawType((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoSorted(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBranchBeginPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                          Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetBranchBeginPoint(X, Y, Z, Object, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBranchEndPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetBranchEndPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject};
  __property   TOLEBOOL        DrawType = {read = get_DrawType, write = set_DrawType};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITolerances3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {82ADDA0C-B8DE-4336-A5CC-B36504A80E2D}
// *********************************************************************//
interface ITolerances3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]    3D  .
  virtual HRESULT STDMETHODCALLTYPE get_Tolerance3D(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::ITolerance3DPtr* Result/*[out,retval]*/) = 0;
  // [2]    3D  .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ITolerance3DPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ITolerance3DPtr __fastcall get_Tolerance3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ITolerance3DPtr Result;
    OLECHECK(this->get_Tolerance3D(Index, (Kompasltapi7_tlb::ITolerance3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITolerance3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ITolerance3DPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::ITolerance3DPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITolerance3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CF700CF-72DB-44EB-A191-3814A3CC21BD}
// *********************************************************************//
interface ITolerance3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BasePlane(ksObj3dTypeEnum Val/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE GetPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                                double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]    ( TRUE / FALSE ).
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType(long Index/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]    ( TRUE / FALSE ).
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksObj3dTypeEnum __fastcall get_BasePlane(void)
  {
    ksObj3dTypeEnum Val;
    OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Val;
    OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ArrowType(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ArrowType(Index, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILineDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F38E986B-9CC0-4492-B850-180D3A6AF713}
// *********************************************************************//
interface ILineDimension3D  : public Kompasltapi7_tlb::IBaseLineDimension3D
{
public:
  // [101]     .
  virtual HRESULT STDMETHODCALLTYPE get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Plane/*[out,retval]*/) = 0;
  // [101]     .
  virtual HRESULT STDMETHODCALLTYPE set_Plane(Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Plane(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Plane;
    OLECHECK(this->get_Plane((Kompasltapi7_tlb::IModelObjectPtr*)&Plane));
    return Plane;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr Plane = {read = get_Plane, write = set_Plane};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICurveVertexParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2AD2E4B4-B870-437A-8D57-5807729FCB05}
// *********************************************************************//
interface ICurveVertexParam  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE set_BuildingType(ksLineBuildingType Result/*[in]*/) = 0;
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_BuildingType(ksLineBuildingType* Result/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE set_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE get_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Vertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_Index(int* Result/*[out,retval]*/) = 0;
  // [6]    
  virtual HRESULT STDMETHODCALLTYPE get_PointParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE set_PointType(ksPoint3DTypeEnum Result/*[in]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE get_PointType(ksPoint3DTypeEnum* Result/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, 
                                                   double* Z/*[out]*/, double* Value/*[out]*/, 
                                                   TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]   .
  virtual HRESULT STDMETHODCALLTYPE SetParamVertex(double X/*[in]*/, double Y/*[in]*/, 
                                                   double Z/*[in]*/, double Value/*[in]*/, 
                                                   TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10]       .
  virtual HRESULT STDMETHODCALLTYPE SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                                     double Value/*[in]*/, 
                                                     TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [11]    ()  ().
  virtual HRESULT STDMETHODCALLTYPE GetParamByDistance(double* Distance/*[out]*/, 
                                                       double* Value/*[out]*/, 
                                                       TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [12]    ()  ().
  virtual HRESULT STDMETHODCALLTYPE SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/, 
                                                       TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksLineBuildingType __fastcall get_BuildingType(void)
  {
    ksLineBuildingType Result;
    OLECHECK(this->get_BuildingType((ksLineBuildingType*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BuildingObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_BuildingObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Vertex(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_Vertex((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  int __fastcall get_Index(void)
  {
    int Result;
    OLECHECK(this->get_Index((int*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_PointParameters(void)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->get_PointParameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }

  ksPoint3DTypeEnum __fastcall get_PointType(void)
  {
    ksPoint3DTypeEnum Result;
    OLECHECK(this->get_PointType((ksPoint3DTypeEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                     double* Value/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetParamVertex(X, Y, Z, Value, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                     double Value/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetParamVertex(X, Y, Z, Value, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                       double Value/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetParamByVertex(Obj, Value, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetParamByDistance(Distance, Value, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->SetParamByDistance(Distance, Value, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   ksLineBuildingType BuildingType = {read = get_BuildingType, write = set_BuildingType};
  __property   Kompasltapi7_tlb::IModelObjectPtr BuildingObject = {read = get_BuildingObject, write = set_BuildingObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex, write = set_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr Vertex = {read = get_Vertex};
  __property   int             Index = {read = get_Index};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr PointParameters = {read = get_PointParameters};
  __property   ksPoint3DTypeEnum PointType = {read = get_PointType, write = set_PointType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISplines3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C4BC0839-932F-4DBC-9A84-5D1FE8927351}
// *********************************************************************//
interface ISplines3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Spline3D(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/) = 0;
  // [3]         .
  virtual HRESULT STDMETHODCALLTYPE Convert(TVariantInParam Objects/*[in]*/, 
                                            TVariant* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISpline3DPtr __fastcall get_Spline3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISpline3DPtr Result;
    OLECHECK(this->get_Spline3D(Index, (Kompasltapi7_tlb::ISpline3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISpline3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISpline3DPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISpline3DPtr*)&Result));
    return Result;
  }

  TVariant __fastcall Convert(TVariantInParam Objects/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->Convert(Objects, (TVariant*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISpline3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D0940A0-6A4A-4CE8-A08A-EA0A4AE91942}
// *********************************************************************//
interface ISpline3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Closed(TOLEBOOL Result/*[in]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Closed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_SplineOnPoles(TOLEBOOL Result/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_SplineOnPoles(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_SplineOrder(long Result/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_SplineOrder(long* Result/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_VertexCount(long* Result/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_VertexParams(long Index/*[in]*/, 
                                                     Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE AddVertex(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE DeleteVertex(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE Flush(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]      .
  virtual HRESULT STDMETHODCALLTYPE ReadFromFile(BSTR FileName/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]      .
  virtual HRESULT STDMETHODCALLTYPE WriteToFile(BSTR FileName/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]      SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_VertexParamsArray(TVariant* Result/*[out,retval]*/) = 0;
  // [12]        SAFEARRAY double - VT_ARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                              TVariant* Weights/*[out]*/, 
                                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]  SAFEARRAY   NURBS.
  virtual HRESULT STDMETHODCALLTYPE set_Knots(TVariantInParam PVal/*[in]*/) = 0;
  // [13]  SAFEARRAY   NURBS.
  virtual HRESULT STDMETHODCALLTYPE get_Knots(TVariant* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Closed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_SplineOnPoles(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_SplineOnPoles((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_SplineOrder(void)
  {
    long Result;
    OLECHECK(this->get_SplineOrder((long*)&Result));
    return Result;
  }

  long __fastcall get_VertexCount(void)
  {
    long Result;
    OLECHECK(this->get_VertexCount((long*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall get_VertexParams(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICurveVertexParamPtr Result;
    OLECHECK(this->get_VertexParams(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall AddVertex(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICurveVertexParamPtr Result;
    OLECHECK(this->AddVertex(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteVertex(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteVertex(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Flush(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Flush((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ReadFromFile(BSTR FileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ReadFromFile(FileName, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall WriteToFile(BSTR FileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->WriteToFile(FileName, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_VertexParamsArray(void)
  {
    TVariant Result;
    OLECHECK(this->get_VertexParamsArray((TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                TVariant* Weights/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetVertexCoordinatesArray(Coordinates, Weights, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_Knots(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Knots((TVariant*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   TOLEBOOL        SplineOnPoles = {read = get_SplineOnPoles, write = set_SplineOnPoles};
  __property   long            SplineOrder = {read = get_SplineOrder, write = set_SplineOrder};
  __property   long            VertexCount = {read = get_VertexCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILocalCoordinateSystems
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CC04CBF6-F0D4-456E-903A-C0B0D3551368}
// *********************************************************************//
interface ILocalCoordinateSystems  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/, 
                                                              Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/) = 0;
  // [2]          .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Current(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILocalCoordinateSystemPtr Result;
    OLECHECK(this->get_LocalCoordinateSystem(Index, (Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ILocalCoordinateSystemPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Current(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_Current((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCurrent(Object, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr Current = {read = get_Current};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAuxiliaryGeomContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {950FEBE2-F916-4E77-A37D-B061E5C22FA8}
// *********************************************************************//
interface IAuxiliaryGeomContainer  : public IDispatch
{
public:
  // [14001]   .
  virtual HRESULT STDMETHODCALLTYPE get_LocalCoordinateSystems(Kompasltapi7_tlb::ILocalCoordinateSystemsPtr* PVal/*[out,retval]*/) = 0;
  // [14002]  .
  virtual HRESULT STDMETHODCALLTYPE get_Splines3D(Kompasltapi7_tlb::ISplines3DPtr* PVal/*[out,retval]*/) = 0;
  // [14003]  3D .
  virtual HRESULT STDMETHODCALLTYPE get_PolyLines(Kompasltapi7_tlb::IPolyLinesPtr* PVal/*[out,retval]*/) = 0;
  // [14004]   .
  virtual HRESULT STDMETHODCALLTYPE get_ControlPoints(Kompasltapi7_tlb::IControlPointsPtr* PVal/*[out,retval]*/) = 0;
  // [14005]   .
  virtual HRESULT STDMETHODCALLTYPE get_ConjunctivePoints(Kompasltapi7_tlb::IConjunctivePointsPtr* PVal/*[out,retval]*/) = 0;
  // [14006]   .
  virtual HRESULT STDMETHODCALLTYPE get_SplitLines(Kompasltapi7_tlb::ISplitLinesPtr* PVal/*[out,retval]*/) = 0;
  // [14007]    .
  virtual HRESULT STDMETHODCALLTYPE get_SurfacesIntersectionCurves(Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr* PVal/*[out,retval]*/) = 0;
  // [14008]   3D.
  virtual HRESULT STDMETHODCALLTYPE get_Equidistants3D(Kompasltapi7_tlb::IEquidistants3DPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILocalCoordinateSystemsPtr __fastcall get_LocalCoordinateSystems(void)
  {
    Kompasltapi7_tlb::ILocalCoordinateSystemsPtr PVal;
    OLECHECK(this->get_LocalCoordinateSystems((Kompasltapi7_tlb::ILocalCoordinateSystemsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISplines3DPtr __fastcall get_Splines3D(void)
  {
    Kompasltapi7_tlb::ISplines3DPtr PVal;
    OLECHECK(this->get_Splines3D((Kompasltapi7_tlb::ISplines3DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPolyLinesPtr __fastcall get_PolyLines(void)
  {
    Kompasltapi7_tlb::IPolyLinesPtr PVal;
    OLECHECK(this->get_PolyLines((Kompasltapi7_tlb::IPolyLinesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IControlPointsPtr __fastcall get_ControlPoints(void)
  {
    Kompasltapi7_tlb::IControlPointsPtr PVal;
    OLECHECK(this->get_ControlPoints((Kompasltapi7_tlb::IControlPointsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IConjunctivePointsPtr __fastcall get_ConjunctivePoints(void)
  {
    Kompasltapi7_tlb::IConjunctivePointsPtr PVal;
    OLECHECK(this->get_ConjunctivePoints((Kompasltapi7_tlb::IConjunctivePointsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISplitLinesPtr __fastcall get_SplitLines(void)
  {
    Kompasltapi7_tlb::ISplitLinesPtr PVal;
    OLECHECK(this->get_SplitLines((Kompasltapi7_tlb::ISplitLinesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr __fastcall get_SurfacesIntersectionCurves(void)
  {
    Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr PVal;
    OLECHECK(this->get_SurfacesIntersectionCurves((Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IEquidistants3DPtr __fastcall get_Equidistants3D(void)
  {
    Kompasltapi7_tlb::IEquidistants3DPtr PVal;
    OLECHECK(this->get_Equidistants3D((Kompasltapi7_tlb::IEquidistants3DPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ILocalCoordinateSystemsPtr LocalCoordinateSystems = {read = get_LocalCoordinateSystems};
  __property   Kompasltapi7_tlb::ISplines3DPtr Splines3D = {read = get_Splines3D};
  __property   Kompasltapi7_tlb::IPolyLinesPtr PolyLines = {read = get_PolyLines};
  __property   Kompasltapi7_tlb::IControlPointsPtr ControlPoints = {read = get_ControlPoints};
  __property   Kompasltapi7_tlb::IConjunctivePointsPtr ConjunctivePoints = {read = get_ConjunctivePoints};
  __property   Kompasltapi7_tlb::ISplitLinesPtr SplitLines = {read = get_SplitLines};
  __property   Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr SurfacesIntersectionCurves = {read = get_SurfacesIntersectionCurves};
  __property   Kompasltapi7_tlb::IEquidistants3DPtr Equidistants3D = {read = get_Equidistants3D};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPolyLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0CF9B989-29F8-495F-9DDA-8C2CAD840BB6}
// *********************************************************************//
interface IPolyLines  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_PolyLine(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPolyLinePtr __fastcall get_PolyLine(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPolyLinePtr Result;
    OLECHECK(this->get_PolyLine(Index, (Kompasltapi7_tlb::IPolyLinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPolyLinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IPolyLinePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IPolyLinePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPolyLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6CE7843D-9AFA-48FF-B444-61CDF036D118}
// *********************************************************************//
interface IPolyLine  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Closed(TOLEBOOL Result/*[in]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Closed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_VertexVisible(TOLEBOOL Result/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_VertexVisible(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_VertexCount(long* Result/*[out,retval]*/) = 0;
  // [4]  (SAFEARRAY).
  virtual HRESULT STDMETHODCALLTYPE get_Edges(TVariant* Result/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_VertexParams(long Index/*[in]*/, 
                                                     Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE ReadFromFile(BSTR FileName/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]    .
  virtual HRESULT STDMETHODCALLTYPE WriteToFile(BSTR FileName/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE AddVertex(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteVertex(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE Flush(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]      SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_VertexParamsArray(TVariant* Result/*[out,retval]*/) = 0;
  // [12]        SAFEARRAY DISPATCH - VT_ARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                              TVariant* Radiuses/*[out]*/, 
                                                              TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Closed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_VertexVisible(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_VertexVisible((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_VertexCount(void)
  {
    long Result;
    OLECHECK(this->get_VertexCount((long*)&Result));
    return Result;
  }

  TVariant __fastcall get_Edges(void)
  {
    TVariant Result;
    OLECHECK(this->get_Edges((TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall get_VertexParams(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICurveVertexParamPtr Result;
    OLECHECK(this->get_VertexParams(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ReadFromFile(BSTR FileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->ReadFromFile(FileName, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall WriteToFile(BSTR FileName/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->WriteToFile(FileName, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall AddVertex(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICurveVertexParamPtr Result;
    OLECHECK(this->AddVertex(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteVertex(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteVertex(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Flush(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Flush((TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_VertexParamsArray(void)
  {
    TVariant Result;
    OLECHECK(this->get_VertexParamsArray((TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                TVariant* Radiuses/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetVertexCoordinatesArray(Coordinates, Radiuses, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   TOLEBOOL        VertexVisible = {read = get_VertexVisible, write = set_VertexVisible};
  __property   long            VertexCount = {read = get_VertexCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IControlPoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E22E30F6-05EE-4FB5-9EEB-E288234F256A}
// *********************************************************************//
interface IControlPoints  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_ControlPoint(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IControlPointPtr __fastcall get_ControlPoint(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IControlPointPtr Result;
    OLECHECK(this->get_ControlPoint(Index, (Kompasltapi7_tlb::IControlPointPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IControlPointPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IControlPointPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IControlPointPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IControlPoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {39F4FC2C-99E7-411B-9036-9C756A71E211}
// *********************************************************************//
interface IControlPoint  : public Kompasltapi7_tlb::IPoint3D
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IConjunctivePoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4DF343A0-8744-429D-A605-0EEABB7B5F23}
// *********************************************************************//
interface IConjunctivePoints  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_ConjunctivePoint(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IConjunctivePointPtr __fastcall get_ConjunctivePoint(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IConjunctivePointPtr Result;
    OLECHECK(this->get_ConjunctivePoint(Index, (Kompasltapi7_tlb::IConjunctivePointPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IConjunctivePointPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IConjunctivePointPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IConjunctivePointPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IConjunctivePoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BC7AD518-9599-490B-9E2B-9711FD9B8D4C}
// *********************************************************************//
interface IConjunctivePoint  : public Kompasltapi7_tlb::IPoint3D
{
public:
  // [101]    1.
  virtual HRESULT STDMETHODCALLTYPE SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [102]    1.
  virtual HRESULT STDMETHODCALLTYPE get_DirectionObject1(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [103]    2.
  virtual HRESULT STDMETHODCALLTYPE SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [104]   .
  virtual HRESULT STDMETHODCALLTYPE get_DirectionObject2(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [105]   1. TRUE - , FALSE - .
  virtual HRESULT STDMETHODCALLTYPE get_Direction1(TOLEBOOL* Val/*[out,retval]*/) = 0;
  // [105]   1. TRUE - , FALSE - .
  virtual HRESULT STDMETHODCALLTYPE set_Direction1(TOLEBOOL Val/*[in]*/) = 0;
  // [106]   2. TRUE - , FALSE - .
  virtual HRESULT STDMETHODCALLTYPE get_Direction2(TOLEBOOL* Val/*[out,retval]*/) = 0;
  // [106]   2. TRUE - , FALSE - .
  virtual HRESULT STDMETHODCALLTYPE set_Direction2(TOLEBOOL Val/*[in]*/) = 0;
  // [107]    .
  virtual HRESULT STDMETHODCALLTYPE get_Axis(ksObj3dTypeEnum Val/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetDirectionObject1(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectionObject1(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_DirectionObject1((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetDirectionObject2(NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectionObject2(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_DirectionObject2((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Direction1(void)
  {
    TOLEBOOL Val;
    OLECHECK(this->get_Direction1((TOLEBOOL*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall get_Direction2(void)
  {
    TOLEBOOL Val;
    OLECHECK(this->get_Direction2((TOLEBOOL*)&Val));
    return Val;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Axis(ksObj3dTypeEnum Val/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_Axis(Val, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr DirectionObject1 = {read = get_DirectionObject1};
  __property   Kompasltapi7_tlb::IModelObjectPtr DirectionObject2 = {read = get_DirectionObject2};
  __property   TOLEBOOL        Direction1 = {read = get_Direction1, write = set_Direction1};
  __property   TOLEBOOL        Direction2 = {read = get_Direction2, write = set_Direction2};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISplitLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {986E4A45-362F-469D-A3AE-CE081B8EA93A}
// *********************************************************************//
interface ISplitLines  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_SplitLine(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISplitLinePtr __fastcall get_SplitLine(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISplitLinePtr Result;
    OLECHECK(this->get_SplitLine(Index, (Kompasltapi7_tlb::ISplitLinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISplitLinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISplitLinePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISplitLinePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISplitLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {969B49D1-E660-4E94-9343-DE5B0F397B03}
// *********************************************************************//
interface ISplitLine  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1] 
  virtual HRESULT STDMETHODCALLTYPE set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/) = 0;
  // [1] 
  virtual HRESULT STDMETHODCALLTYPE get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/) = 0;
  // [2]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Faces(TVariant* PVal/*[out,retval]*/) = 0;
  // [2]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE set_Faces(TVariantInParam PVal/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(ksDirectionTypeEnum PVal/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void)
  {
    Kompasltapi7_tlb::ISketchPtr Result;
    OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
    return Result;
  }

  TVariant __fastcall get_Faces(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Faces((TVariant*)&PVal));
    return PVal;
  }

  ksDirectionTypeEnum __fastcall get_Direction(void)
  {
    ksDirectionTypeEnum PVal;
    OLECHECK(this->get_Direction((ksDirectionTypeEnum*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISurfacesIntersectionCurves
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {453E0E34-4D2D-47B2-8E95-EB05C731961D}
// *********************************************************************//
interface ISurfacesIntersectionCurves  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,     .
  virtual HRESULT STDMETHODCALLTYPE get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/, 
                                                                  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr Result;
    OLECHECK(this->get_SurfacesIntersectionCurve(Index, (Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISurfacesIntersectionCurve
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {758420A0-BECB-4FDA-BDDE-1F398B41117C}
// *********************************************************************//
interface ISurfacesIntersectionCurve  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]  1-  2-     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                               TVariantInParam ObjectsArray2/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  1-  2-     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                               TVariant* ObjectsArray2/*[out]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  ()   
  virtual HRESULT STDMETHODCALLTYPE AddObjects(TOLEBOOL ForArray1/*[in]*/, 
                                               TVariantInParam Objects/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL ForArray1/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]      
  virtual HRESULT STDMETHODCALLTYPE get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/, 
                                                     long* Count/*[out,retval]*/) = 0;
  // [6]       
  virtual HRESULT STDMETHODCALLTYPE GetObject(TOLEBOOL ForArray1/*[in]*/, long Index/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/) = 0;
  // [7] /     
  virtual HRESULT STDMETHODCALLTYPE get_AutoCheck(TOLEBOOL* CheckValue/*[out,retval]*/) = 0;
  // [7] /     
  virtual HRESULT STDMETHODCALLTYPE set_AutoCheck(TOLEBOOL CheckValue/*[in]*/) = 0;
  // [8]      -    SAFEARRAY VARIANT_BOOL - VT_ARRAY | VT_BOOL.
  virtual HRESULT STDMETHODCALLTYPE get_EdgesChecks(TVariant* Checks/*[out,retval]*/) = 0;
  // [8]      -    SAFEARRAY VARIANT_BOOL - VT_ARRAY | VT_BOOL.
  virtual HRESULT STDMETHODCALLTYPE set_EdgesChecks(TVariantInParam Checks/*[in]*/) = 0;
  // [9]       .
  virtual HRESULT STDMETHODCALLTYPE get_EdgesArraysCount(long* Count/*[out,retval]*/) = 0;
  // [10]         SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Edges(long Index/*[in]*/, TVariant* Edges/*[out,retval]*/) = 0;
  // [11]        
  virtual HRESULT STDMETHODCALLTYPE get_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                                   TOLEBOOL* CheckValue/*[out,retval]*/) = 0;
  // [11]        
  virtual HRESULT STDMETHODCALLTYPE set_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                                   TOLEBOOL CheckValue/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                 TVariantInParam ObjectsArray2/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetObjects(ObjectsArray1, ObjectsArray2, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetObjects(TVariant* ObjectsArray1/*[out]*/, TVariant* ObjectsArray2/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetObjects(ObjectsArray1, ObjectsArray2, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddObjects(TOLEBOOL ForArray1/*[in]*/, TVariantInParam Objects/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddObjects(ForArray1, Objects, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(TOLEBOOL ForArray1/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear(ForArray1, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/)
  {
    long Count;
    OLECHECK(this->get_ObjectsCount(ForArray1, (long*)&Count));
    return Count;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall GetObject(TOLEBOOL ForArray1/*[in]*/, 
                                                         long Index/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object;
    OLECHECK(this->GetObject(ForArray1, Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Object));
    return Object;
  }

  TOLEBOOL __fastcall get_AutoCheck(void)
  {
    TOLEBOOL CheckValue;
    OLECHECK(this->get_AutoCheck((TOLEBOOL*)&CheckValue));
    return CheckValue;
  }

  TVariant __fastcall get_EdgesChecks(void)
  {
    TVariant Checks;
    OLECHECK(this->get_EdgesChecks((TVariant*)&Checks));
    return Checks;
  }

  long __fastcall get_EdgesArraysCount(void)
  {
    long Count;
    OLECHECK(this->get_EdgesArraysCount((long*)&Count));
    return Count;
  }

  TVariant __fastcall get_Edges(long Index/*[in]*/)
  {
    TVariant Edges;
    OLECHECK(this->get_Edges(Index, (TVariant*)&Edges));
    return Edges;
  }

  TOLEBOOL __fastcall get_EdgesCheck(long EdgesArrayIndex/*[in]*/)
  {
    TOLEBOOL CheckValue;
    OLECHECK(this->get_EdgesCheck(EdgesArrayIndex, (TOLEBOOL*)&CheckValue));
    return CheckValue;
  }


  __property   TOLEBOOL        AutoCheck = {read = get_AutoCheck, write = set_AutoCheck};
  __property   long            EdgesArraysCount = {read = get_EdgesArraysCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEquidistants3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8B94F332-EEFD-4610-9C55-20A1F7336122}
// *********************************************************************//
interface IEquidistants3D  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]   3D,   .
  virtual HRESULT STDMETHODCALLTYPE get_Equidistant3D(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/) = 0;
  // [2]   (  3D  ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IEquidistant3DPtr __fastcall get_Equidistant3D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IEquidistant3DPtr Result;
    OLECHECK(this->get_Equidistant3D(Index, (Kompasltapi7_tlb::IEquidistant3DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IEquidistant3DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IEquidistant3DPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IEquidistant3DPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEquidistant3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C25DDBF4-3CC1-467D-B996-E30ED4D529B6}
// *********************************************************************//
interface IEquidistant3D  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Edges(TVariant* PVal/*[out,retval]*/) = 0;
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE set_Edges(TVariantInParam PVal/*[in]*/) = 0;
  // [2]   /   .
  virtual HRESULT STDMETHODCALLTYPE set_OnFace(TOLEBOOL PVal/*[in]*/) = 0;
  // [2]   /   .
  virtual HRESULT STDMETHODCALLTYPE get_OnFace(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3] ,      ,     .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [3] ,      ,     .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Distance(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Distance(double* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_CutMode(ksEquidistant3DCutModeEnum PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_CutMode(ksEquidistant3DCutModeEnum* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_KeepRadius(TOLEBOOL PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_KeepRadius(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]      .
  virtual HRESULT STDMETHODCALLTYPE set_DirFromBegin(TOLEBOOL PVal/*[in]*/) = 0;
  // [8]      .
  virtual HRESULT STDMETHODCALLTYPE get_DirFromBegin(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Edges(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Edges((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_OnFace(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_OnFace((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Distance(void)
  {
    double PVal;
    OLECHECK(this->get_Distance((double*)&PVal));
    return PVal;
  }

  ksEquidistant3DCutModeEnum __fastcall get_CutMode(void)
  {
    ksEquidistant3DCutModeEnum PVal;
    OLECHECK(this->get_CutMode((ksEquidistant3DCutModeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_KeepRadius(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_KeepRadius((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DirFromBegin(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DirFromBegin((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        OnFace = {read = get_OnFace, write = set_OnFace};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Distance = {read = get_Distance, write = set_Distance};
  __property   ksEquidistant3DCutModeEnum CutMode = {read = get_CutMode, write = set_CutMode};
  __property   TOLEBOOL        KeepRadius = {read = get_KeepRadius, write = set_KeepRadius};
  __property   TOLEBOOL        DirFromBegin = {read = get_DirFromBegin, write = set_DirFromBegin};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILocalCSAxesDirectionParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {919DF6DB-0BA9-4EDD-B681-33E0B519834B}
// *********************************************************************//
interface ILocalCSAxesDirectionParam  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                       Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                        Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/) = 0;
  // [3]     
  virtual HRESULT STDMETHODCALLTYPE RotateAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]      .
  virtual HRESULT STDMETHODCALLTYPE set_AngleByOwnAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                       double Param2/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetDirectingObject(Axis, Object, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr Result;
    OLECHECK(this->get_DirectingObject(Axis, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall RotateAxis(ksObj3dTypeEnum Axis/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->RotateAxis(Axis, (TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILocalCSEulerParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AD261149-1455-49BD-BA0A-B1760A0C8CB0}
// *********************************************************************//
interface ILocalCSEulerParam  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_NutationAngle(double Result/*[in]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_NutationAngle(double* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_PrecessionAngle(double Result/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_PrecessionAngle(double* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_RotationAngle(double Result/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_RotationAngle(double* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_NutationAngle(void)
  {
    double Result;
    OLECHECK(this->get_NutationAngle((double*)&Result));
    return Result;
  }

  double __fastcall get_PrecessionAngle(void)
  {
    double Result;
    OLECHECK(this->get_PrecessionAngle((double*)&Result));
    return Result;
  }

  double __fastcall get_RotationAngle(void)
  {
    double Result;
    OLECHECK(this->get_RotationAngle((double*)&Result));
    return Result;
  }


  __property   double          NutationAngle = {read = get_NutationAngle, write = set_NutationAngle};
  __property   double          PrecessionAngle = {read = get_PrecessionAngle, write = set_PrecessionAngle};
  __property   double          RotationAngle = {read = get_RotationAngle, write = set_RotationAngle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRoughParams
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6C1943CE-8FDB-47D2-9B2F-95F7B851BE3D}
// *********************************************************************//
interface IRoughParams  : public IDispatch
{
public:
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE get_SignType(ksRoughSignEnum* Result/*[out,retval]*/) = 0;
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE set_SignType(ksRoughSignEnum Result/*[in]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE get_RoughParamText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1503]    ()   .
  virtual HRESULT STDMETHODCALLTYPE get_ProcessText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1504]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseLengthText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1505]    .
  virtual HRESULT STDMETHODCALLTYPE get_TrendText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1506]   .
  virtual HRESULT STDMETHODCALLTYPE get_ProcessingByContour(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1506]   .
  virtual HRESULT STDMETHODCALLTYPE set_ProcessingByContour(TOLEBOOL Result/*[in]*/) = 0;
  // [1507]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/) = 0;
  // [1507]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/) = 0;
  // [1508]   .
  virtual HRESULT STDMETHODCALLTYPE get_LeaderLength(double* Result/*[out,retval]*/) = 0;
  // [1508]   .
  virtual HRESULT STDMETHODCALLTYPE set_LeaderLength(double Result/*[in]*/) = 0;
  // [1509]    .
  virtual HRESULT STDMETHODCALLTYPE get_LeaderAngle(double* Result/*[out,retval]*/) = 0;
  // [1509]    .
  virtual HRESULT STDMETHODCALLTYPE set_LeaderAngle(double Result/*[in]*/) = 0;
  // [1510]   -.
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType(ksArrowEnum* Result/*[out,retval]*/) = 0;
  // [1510]   -.
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType(ksArrowEnum Result/*[in]*/) = 0;
  // [1511]   -(TRUE- , FALSE- ).
  virtual HRESULT STDMETHODCALLTYPE get_ArrowInside(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1511]   -(TRUE- , FALSE- ).
  virtual HRESULT STDMETHODCALLTYPE set_ArrowInside(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksRoughSignEnum __fastcall get_SignType(void)
  {
    ksRoughSignEnum Result;
    OLECHECK(this->get_SignType((ksRoughSignEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_RoughParamText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_RoughParamText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_ProcessText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_ProcessText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_BaseLengthText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_BaseLengthText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TrendText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TrendText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ProcessingByContour(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ProcessingByContour((TOLEBOOL*)&Result));
    return Result;
  }

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum Result;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
    return Result;
  }

  double __fastcall get_LeaderLength(void)
  {
    double Result;
    OLECHECK(this->get_LeaderLength((double*)&Result));
    return Result;
  }

  double __fastcall get_LeaderAngle(void)
  {
    double Result;
    OLECHECK(this->get_LeaderAngle((double*)&Result));
    return Result;
  }

  ksArrowEnum __fastcall get_ArrowType(void)
  {
    ksArrowEnum Result;
    OLECHECK(this->get_ArrowType((ksArrowEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ArrowInside(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ArrowInside((TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksRoughSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   Kompasltapi7_tlb::ITextPtr RoughParamText = {read = get_RoughParamText};
  __property   Kompasltapi7_tlb::ITextPtr ProcessText = {read = get_ProcessText};
  __property   Kompasltapi7_tlb::ITextPtr BaseLengthText = {read = get_BaseLengthText};
  __property   Kompasltapi7_tlb::ITextPtr TrendText = {read = get_TrendText};
  __property   TOLEBOOL        ProcessingByContour = {read = get_ProcessingByContour, write = set_ProcessingByContour};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          LeaderLength = {read = get_LeaderLength, write = set_LeaderLength};
  __property   double          LeaderAngle = {read = get_LeaderAngle, write = set_LeaderAngle};
  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   TOLEBOOL        ArrowInside = {read = get_ArrowInside, write = set_ArrowInside};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBranchs3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AFE08AEC-F751-42D9-A6F5-3C004E4D41A6}
// *********************************************************************//
interface IBranchs3D  : public IDispatch
{
public:
  // [5001]  .
  virtual HRESULT STDMETHODCALLTYPE get_BranchCount(long* Result/*[out,retval]*/) = 0;
  // [5002]      .
  virtual HRESULT STDMETHODCALLTYPE GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                        double* Z/*[out]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5003]      .
  virtual HRESULT STDMETHODCALLTYPE SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                        double Z/*[in]*/, 
                                                        TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5004]    .
  virtual HRESULT STDMETHODCALLTYPE GetBranchEndPoint(long Index/*[in]*/, double* X/*[out]*/, 
                                                      double* Y/*[out]*/, double* Z/*[out]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5005]    .
  virtual HRESULT STDMETHODCALLTYPE SetBranchEndPoint(long Index/*[in]*/, double X/*[in]*/, 
                                                      double Y/*[in]*/, double Z/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5006]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchPoints(long Index/*[in]*/, 
                                                     TVariantInParam PVal/*[in]*/) = 0;
  // [5006]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPoints(long Index/*[in]*/, 
                                                     TVariant* PVal/*[out,retval]*/) = 0;
  // [5007]    .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPointsCount(long Index/*[in]*/, 
                                                          long* Result/*[out,retval]*/) = 0;
  // [5008]  .
  virtual HRESULT STDMETHODCALLTYPE AddBranch(TVariantInParam Points/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr Object, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5009]   .
  virtual HRESULT STDMETHODCALLTYPE AddBranchByPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                     double Z/*[in]*/, 
                                                     Kompasltapi7_tlb::IModelObjectPtr Object, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5010]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteBranch(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5011]     .
  virtual HRESULT STDMETHODCALLTYPE get_BranchObject(long Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/) = 0;
  // [5012]  SAFEARRAY     .
  virtual HRESULT STDMETHODCALLTYPE get_BranchObjects(TVariant* PVal/*[out,retval]*/) = 0;
  // [5013]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchEndPoints(TVariant* Points/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_BranchCount(void)
  {
    long Result;
    OLECHECK(this->get_BranchCount((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBranchBeginPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetBranchBeginPoint(X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetBranchEndPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                        double* Z/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBranchEndPoint(Index, X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetBranchEndPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                        double Z/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetBranchEndPoint(Index, X, Y, Z, (TOLEBOOL*)&Result));
    return Result;
  }

  TVariant __fastcall get_BranchPoints(long Index/*[in]*/)
  {
    TVariant PVal;
    OLECHECK(this->get_BranchPoints(Index, (TVariant*)&PVal));
    return PVal;
  }

  long __fastcall get_BranchPointsCount(long Index/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_BranchPointsCount(Index, (long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddBranch(TVariantInParam Points/*[in]*/, 
                                Kompasltapi7_tlb::IModelObjectPtr Object)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranch(Points, Object, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddBranchByPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr Object)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranchByPoint(X, Y, Z, Object, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteBranch(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteBranch(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BranchObject(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::IModelObjectPtr PVal;
    OLECHECK(this->get_BranchObject(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_BranchObjects(void)
  {
    TVariant PVal;
    OLECHECK(this->get_BranchObjects((TVariant*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_BranchEndPoints(void)
  {
    TVariant Points;
    OLECHECK(this->get_BranchEndPoints((TVariant*)&Points));
    return Points;
  }


  __property   long            BranchCount = {read = get_BranchCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILocalCSOrientByObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {618485E7-D88A-4DCC-8896-7EA04D831DBB}
// *********************************************************************//
interface ILocalCSOrientByObjectParam  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  ,  .
  virtual HRESULT STDMETHODCALLTYPE SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                         TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  ,  .
  virtual HRESULT STDMETHODCALLTYPE get_OrientationObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetOrientationObject(Object, (TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_OrientationObject(void)
  {
    Kompasltapi7_tlb::IModelObjectPtr Object;
    OLECHECK(this->get_OrientationObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object));
    return Object;
  }


  __property   Kompasltapi7_tlb::IModelObjectPtr OrientationObject = {read = get_OrientationObject};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILocalCSObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {116F7E59-F175-47D2-8346-EB3C87D60578}
// *********************************************************************//
interface ILocalCSObject  : public IDispatch
{
public:
  // [901]   .
  virtual HRESULT STDMETHODCALLTYPE set_ModelObjectParamType(ksModelObjectParamTypeEnum PVal/*[in]*/) = 0;
  // [901]   .
  virtual HRESULT STDMETHODCALLTYPE get_ModelObjectParamType(ksModelObjectParamTypeEnum* PVal/*[out,retval]*/) = 0;
  // [902]  .
  virtual HRESULT STDMETHODCALLTYPE get_LocalCoordinateSystem(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksModelObjectParamTypeEnum __fastcall get_ModelObjectParamType(void)
  {
    ksModelObjectParamTypeEnum PVal;
    OLECHECK(this->get_ModelObjectParamType((ksModelObjectParamTypeEnum*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall get_LocalCoordinateSystem(void)
  {
    Kompasltapi7_tlb::ILocalCoordinateSystemPtr PVal;
    OLECHECK(this->get_LocalCoordinateSystem((Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&PVal));
    return PVal;
  }


  __property   ksModelObjectParamTypeEnum ModelObjectParamType = {read = get_ModelObjectParamType, write = set_ModelObjectParamType};
  __property   Kompasltapi7_tlb::ILocalCoordinateSystemPtr LocalCoordinateSystem = {read = get_LocalCoordinateSystem};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISurfaceContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2FE3B199-A6B2-4644-9950-F9905250FF0D}
// *********************************************************************//
interface ISurfaceContainer  : public IDispatch
{
public:
  // [15001]  ,     .
  virtual HRESULT STDMETHODCALLTYPE get_SurfacePatches(Kompasltapi7_tlb::ISurfacePatchesPtr* PVal/*[out,retval]*/) = 0;
  // [15002]    ,     .
  virtual HRESULT STDMETHODCALLTYPE get_FaceRemovers(Kompasltapi7_tlb::IFaceRemoversPtr* PVal/*[out,retval]*/) = 0;
  // [15003]    ,     .
  virtual HRESULT STDMETHODCALLTYPE get_SurfaceSewers(Kompasltapi7_tlb::ISurfaceSewersPtr* PVal/*[out,retval]*/) = 0;
  // [15004]  NURBS-,     .
  virtual HRESULT STDMETHODCALLTYPE get_NurbsSurfaces(Kompasltapi7_tlb::INurbsSurfacesPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISurfacePatchesPtr __fastcall get_SurfacePatches(void)
  {
    Kompasltapi7_tlb::ISurfacePatchesPtr PVal;
    OLECHECK(this->get_SurfacePatches((Kompasltapi7_tlb::ISurfacePatchesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IFaceRemoversPtr __fastcall get_FaceRemovers(void)
  {
    Kompasltapi7_tlb::IFaceRemoversPtr PVal;
    OLECHECK(this->get_FaceRemovers((Kompasltapi7_tlb::IFaceRemoversPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ISurfaceSewersPtr __fastcall get_SurfaceSewers(void)
  {
    Kompasltapi7_tlb::ISurfaceSewersPtr PVal;
    OLECHECK(this->get_SurfaceSewers((Kompasltapi7_tlb::ISurfaceSewersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::INurbsSurfacesPtr __fastcall get_NurbsSurfaces(void)
  {
    Kompasltapi7_tlb::INurbsSurfacesPtr PVal;
    OLECHECK(this->get_NurbsSurfaces((Kompasltapi7_tlb::INurbsSurfacesPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ISurfacePatchesPtr SurfacePatches = {read = get_SurfacePatches};
  __property   Kompasltapi7_tlb::IFaceRemoversPtr FaceRemovers = {read = get_FaceRemovers};
  __property   Kompasltapi7_tlb::ISurfaceSewersPtr SurfaceSewers = {read = get_SurfaceSewers};
  __property   Kompasltapi7_tlb::INurbsSurfacesPtr NurbsSurfaces = {read = get_NurbsSurfaces};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISurfacePatches
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DEE5B135-4D8E-4AD8-AEA4-E763F68290B2}
// *********************************************************************//
interface ISurfacePatches  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_SurfacePatch(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISurfacePatchPtr __fastcall get_SurfacePatch(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISurfacePatchPtr Result;
    OLECHECK(this->get_SurfacePatch(Index, (Kompasltapi7_tlb::ISurfacePatchPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISurfacePatchPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISurfacePatchPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISurfacePatchPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISurfacePatch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B6330040-7ABA-4ECD-8C92-5B441AF11C3B}
// *********************************************************************//
interface ISurfacePatch  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Edges(TVariant* PVal/*[out,retval]*/) = 0;
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE set_Edges(TVariantInParam PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Edges(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Edges((TVariant*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IFaceRemovers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6E177627-05D6-40B4-B955-9203F00656B5}
// *********************************************************************//
interface IFaceRemovers  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_FaceRemover(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IFaceRemoverPtr __fastcall get_FaceRemover(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IFaceRemoverPtr Result;
    OLECHECK(this->get_FaceRemover(Index, (Kompasltapi7_tlb::IFaceRemoverPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IFaceRemoverPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IFaceRemoverPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IFaceRemoverPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IFaceRemover
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4CAE21E3-4183-47A6-94B8-8AD14D5775EE}
// *********************************************************************//
interface IFaceRemover  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Faces(TVariant* PVal/*[out,retval]*/) = 0;
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE set_Faces(TVariantInParam PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Faces(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Faces((TVariant*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISurfaceSewers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {70AE0BA0-2059-4EAB-BE41-A6E8C8ACFA8A}
// *********************************************************************//
interface ISurfaceSewers  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_SurfaceSewer(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall get_SurfaceSewer(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ISurfaceSewerPtr Result;
    OLECHECK(this->get_SurfaceSewer(Index, (Kompasltapi7_tlb::ISurfaceSewerPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ISurfaceSewerPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ISurfaceSewerPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISurfaceSewer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {031FD1C7-9CB6-4E49-A27D-73B8D0B648D4}
// *********************************************************************//
interface ISurfaceSewer  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_Shells(TVariant* PVal/*[out,retval]*/) = 0;
  // [1]     SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE set_Shells(TVariantInParam PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Precision(double* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Precision(double Result/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_CreateBody(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_CreateBody(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Shells(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Shells((TVariant*)&PVal));
    return PVal;
  }

  double __fastcall get_Precision(void)
  {
    double Result;
    OLECHECK(this->get_Precision((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_CreateBody(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_CreateBody((TOLEBOOL*)&Result));
    return Result;
  }


  __property   double          Precision = {read = get_Precision, write = set_Precision};
  __property   TOLEBOOL        CreateBody = {read = get_CreateBody, write = set_CreateBody};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: INurbsSurfaces
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DB184867-6207-4FB7-9B3F-882BEAA16B4D}
// *********************************************************************//
interface INurbsSurfaces  : public Kompasltapi7_tlb::IModelObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_NurbsSurface(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::INurbsSurfacePtr __fastcall get_NurbsSurface(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::INurbsSurfacePtr Result;
    OLECHECK(this->get_NurbsSurface(Index, (Kompasltapi7_tlb::INurbsSurfacePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::INurbsSurfacePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::INurbsSurfacePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::INurbsSurfacePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: INurbsSurface
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5DAFC690-B3A7-4771-8E98-F83B5BF0D454}
// *********************************************************************//
interface INurbsSurface  : public Kompasltapi7_tlb::IModelObject
{
public:
  // [1]   NURBS-.
  virtual HRESULT STDMETHODCALLTYPE GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, 
                                                   TOLEBOOL ClosedU/*[in]*/, long* DegreeV/*[out]*/, 
                                                   long* DegreeU/*[out]*/, long* NPV/*[out]*/, 
                                                   long* NPU/*[out]*/, TVariant* Points/*[out]*/, 
                                                   TVariant* Weights/*[out]*/, 
                                                   TVariant* KnotsV/*[out]*/, 
                                                   TVariant* KnotsU/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   NURBS-.
  virtual HRESULT STDMETHODCALLTYPE SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, 
                                                   TOLEBOOL ClosedU/*[in]*/, long DegreeV/*[in]*/, 
                                                   long DegreeU/*[in]*/, long NPV/*[in]*/, 
                                                   long NPU/*[in]*/, TVariantInParam Points/*[in]*/, 
                                                   TVariantInParam Weights/*[in]*/, 
                                                   TVariantInParam KnotsV/*[in]*/, 
                                                   TVariantInParam KnotsU/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/, 
                                                    TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]     U.
  virtual HRESULT STDMETHODCALLTYPE get_ClosedU(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]     U.
  virtual HRESULT STDMETHODCALLTYPE set_ClosedU(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]     V.
  virtual HRESULT STDMETHODCALLTYPE get_ClosedV(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]     V.
  virtual HRESULT STDMETHODCALLTYPE set_ClosedV(TOLEBOOL PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_BoundaryCount(long* PVal/*[out,retval]*/) = 0;
  // [7]    NURBS-.
  virtual HRESULT STDMETHODCALLTYPE AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                                long Degree/*[in]*/, TVariantInParam Points/*[in]*/, 
                                                TVariantInParam Weights/*[in]*/, 
                                                TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                                double TMax/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]   NURBS- .
  virtual HRESULT STDMETHODCALLTYPE GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                                long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                                TVariant* Points/*[out]*/, 
                                                TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                                double* TMin/*[out]*/, double* TMax/*[out]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteBoundary(long BoundaryIndex/*[in]*/, 
                                                   TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                     long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                     long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                     TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                     TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, 
                                  KnotsV, KnotsU, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                     long DegreeV/*[in]*/, long DegreeU/*[in]*/, long NPV/*[in]*/, 
                                     long NPU/*[in]*/, TVariantInParam Points/*[in]*/, 
                                     TVariantInParam Weights/*[in]*/, TVariantInParam KnotsV/*[in]*/, 
                                     TVariantInParam KnotsU/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, 
                                  KnotsV, KnotsU, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->InitParamByFace(Face, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ClosedU(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ClosedU((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ClosedV(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ClosedV((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_BoundaryCount(void)
  {
    long PVal;
    OLECHECK(this->get_BoundaryCount((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                  TVariantInParam Points/*[in]*/, TVariantInParam Weights/*[in]*/, 
                                  TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                  double TMax/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBoundary(UV, Closed, Degree, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                  long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                  TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                  TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                  double* TMax/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetBoundary(UV, Closed, BoundaryIndex, Degree, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteBoundary(long BoundaryIndex/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->DeleteBoundary(BoundaryIndex, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        ClosedU = {read = get_ClosedU, write = set_ClosedU};
  __property   TOLEBOOL        ClosedV = {read = get_ClosedV, write = set_ClosedV};
  __property   long            BoundaryCount = {read = get_BoundaryCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IColorParam7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BE6A80EE-38FE-4432-8331-BF864830761C}
// *********************************************************************//
interface IColorParam7  : public IDispatch
{
public:
  // [6001]   ( ,  ,  ).
  virtual HRESULT STDMETHODCALLTYPE get_UseColor(ksUseColorEnum* PVal/*[out,retval]*/) = 0;
  // [6001]   ( ,  ,  ).
  virtual HRESULT STDMETHODCALLTYPE set_UseColor(ksUseColorEnum PVal/*[in]*/) = 0;
  // [6002] .
  virtual HRESULT STDMETHODCALLTYPE get_Color(long* PVal/*[out,retval]*/) = 0;
  // [6002] .
  virtual HRESULT STDMETHODCALLTYPE set_Color(long PVal/*[in]*/) = 0;
  // [6003]  .
  virtual HRESULT STDMETHODCALLTYPE get_Ambient(double* PVal/*[out,retval]*/) = 0;
  // [6003]  .
  virtual HRESULT STDMETHODCALLTYPE set_Ambient(double PVal/*[in]*/) = 0;
  // [6004]  .
  virtual HRESULT STDMETHODCALLTYPE get_Diffuse(double* PVal/*[out,retval]*/) = 0;
  // [6004]  .
  virtual HRESULT STDMETHODCALLTYPE set_Diffuse(double PVal/*[in]*/) = 0;
  // [6005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Specularity(double* PVal/*[out,retval]*/) = 0;
  // [6005]  .
  virtual HRESULT STDMETHODCALLTYPE set_Specularity(double PVal/*[in]*/) = 0;
  // [6006]  .
  virtual HRESULT STDMETHODCALLTYPE get_Shininess(double* PVal/*[out,retval]*/) = 0;
  // [6006]  .
  virtual HRESULT STDMETHODCALLTYPE set_Shininess(double PVal/*[in]*/) = 0;
  // [6007]  .
  virtual HRESULT STDMETHODCALLTYPE get_Transparency(double* PVal/*[out,retval]*/) = 0;
  // [6007]  .
  virtual HRESULT STDMETHODCALLTYPE set_Transparency(double PVal/*[in]*/) = 0;
  // [6008]  .
  virtual HRESULT STDMETHODCALLTYPE get_Emission(double* PVal/*[out,retval]*/) = 0;
  // [6008]  .
  virtual HRESULT STDMETHODCALLTYPE set_Emission(double PVal/*[in]*/) = 0;
  // [6009]    .
  virtual HRESULT STDMETHODCALLTYPE GetAdvancedColor(long* Color/*[out]*/, double* Ambient/*[out]*/, 
                                                     double* Diffuse/*[out]*/, 
                                                     double* Specularity/*[out]*/, 
                                                     double* Shininess/*[out]*/, 
                                                     double* Transparency/*[out]*/, 
                                                     double* Emission/*[out]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6010]    .
  virtual HRESULT STDMETHODCALLTYPE SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                                     double Diffuse/*[in]*/, 
                                                     double Specularity/*[in]*/, 
                                                     double Shininess/*[in]*/, 
                                                     double Transparency/*[in]*/, 
                                                     double Emission/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksUseColorEnum __fastcall get_UseColor(void)
  {
    ksUseColorEnum PVal;
    OLECHECK(this->get_UseColor((ksUseColorEnum*)&PVal));
    return PVal;
  }

  long __fastcall get_Color(void)
  {
    long PVal;
    OLECHECK(this->get_Color((long*)&PVal));
    return PVal;
  }

  double __fastcall get_Ambient(void)
  {
    double PVal;
    OLECHECK(this->get_Ambient((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Diffuse(void)
  {
    double PVal;
    OLECHECK(this->get_Diffuse((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Specularity(void)
  {
    double PVal;
    OLECHECK(this->get_Specularity((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Shininess(void)
  {
    double PVal;
    OLECHECK(this->get_Shininess((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Transparency(void)
  {
    double PVal;
    OLECHECK(this->get_Transparency((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Emission(void)
  {
    double PVal;
    OLECHECK(this->get_Emission((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetAdvancedColor(long* Color/*[out]*/, double* Ambient/*[out]*/, 
                                       double* Diffuse/*[out]*/, double* Specularity/*[out]*/, 
                                       double* Shininess/*[out]*/, double* Transparency/*[out]*/, 
                                       double* Emission/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, 
                                    Emission, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                       double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                       double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                       double Emission/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, 
                                    Emission, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksUseColorEnum UseColor = {read = get_UseColor, write = set_UseColor};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   double          Ambient = {read = get_Ambient, write = set_Ambient};
  __property   double          Diffuse = {read = get_Diffuse, write = set_Diffuse};
  __property   double          Specularity = {read = get_Specularity, write = set_Specularity};
  __property   double          Shininess = {read = get_Shininess, write = set_Shininess};
  __property   double          Transparency = {read = get_Transparency, write = set_Transparency};
  __property   double          Emission = {read = get_Emission, write = set_Emission};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E32E5703-0141-41CF-9917-9565648FE331}
// *********************************************************************//
interface IDrawingText  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_X(double* Result/*[out,retval]*/) = 0;
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE set_X(double Result/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* Result/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double Result/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_Height(double* Result/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE set_Height(double Result/*[in]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* Result/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double Result/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/) = 0;
  // [7]   (FALSE-   TRUE-  ).
  virtual HRESULT STDMETHODCALLTYPE get_VFormat(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]   (FALSE-   TRUE-  ).
  virtual HRESULT STDMETHODCALLTYPE set_VFormat(TOLEBOOL Result/*[in]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE get_Allocation(ksAllocationEnum* Result/*[out,retval]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE set_Allocation(ksAllocationEnum Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double Result;
    OLECHECK(this->get_X((double*)&Result));
    return Result;
  }

  double __fastcall get_Y(void)
  {
    double Result;
    OLECHECK(this->get_Y((double*)&Result));
    return Result;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Height(void)
  {
    double Result;
    OLECHECK(this->get_Height((double*)&Result));
    return Result;
  }

  double __fastcall get_Width(void)
  {
    double Result;
    OLECHECK(this->get_Width((double*)&Result));
    return Result;
  }

  ksTextHorizontalFormatEnum __fastcall get_HFormat(void)
  {
    ksTextHorizontalFormatEnum Result;
    OLECHECK(this->get_HFormat((ksTextHorizontalFormatEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_VFormat(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_VFormat((TOLEBOOL*)&Result));
    return Result;
  }

  ksAllocationEnum __fastcall get_Allocation(void)
  {
    ksAllocationEnum Result;
    OLECHECK(this->get_Allocation((ksAllocationEnum*)&Result));
    return Result;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksTextHorizontalFormatEnum HFormat = {read = get_HFormat, write = set_HFormat};
  __property   TOLEBOOL        VFormat = {read = get_VFormat, write = set_VFormat};
  __property   ksAllocationEnum Allocation = {read = get_Allocation, write = set_Allocation};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingTexts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C72E0E9D-7078-4AA7-95E4-E8C75CA9BCEC}
// *********************************************************************//
interface IDrawingTexts  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingText(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IDrawingTextPtr* Result/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IDrawingTextPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingTextPtr __fastcall get_DrawingText(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDrawingTextPtr Result;
    OLECHECK(this->get_DrawingText(Index, (Kompasltapi7_tlb::IDrawingTextPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingTextPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IDrawingTextPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IDrawingTextPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D603FEC9-75B7-4FA5-918F-47074C45B848}
// *********************************************************************//
interface IDrawingContainer  : public IDispatch
{
public:
  // [5001]  SAFEARRAY ,     .
  virtual HRESULT STDMETHODCALLTYPE get_Objects(TVariantInParam ObjType/*[in]*/, 
                                                TVariant* Result/*[out,retval]*/) = 0;
  // [5002]    .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingTexts(Kompasltapi7_tlb::IDrawingTextsPtr* PVal/*[out,retval]*/) = 0;
  // [5003]  .
  virtual HRESULT STDMETHODCALLTYPE get_LineSegments(Kompasltapi7_tlb::ILineSegmentsPtr* PVal/*[out,retval]*/) = 0;
  // [5004]  .
  virtual HRESULT STDMETHODCALLTYPE get_Arcs(Kompasltapi7_tlb::IArcsPtr* PVal/*[out,retval]*/) = 0;
  // [5005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Multilines(Kompasltapi7_tlb::IMultilinesPtr* PVal/*[out,retval]*/) = 0;
  // [5006]  .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingContours(Kompasltapi7_tlb::IDrawingContoursPtr* PVal/*[out,retval]*/) = 0;
  // [5007]  .
  virtual HRESULT STDMETHODCALLTYPE get_Circles(Kompasltapi7_tlb::ICirclesPtr* PVal/*[out,retval]*/) = 0;
  // [5008]  .
  virtual HRESULT STDMETHODCALLTYPE get_Points(Kompasltapi7_tlb::IPointsPtr* PVal/*[out,retval]*/) = 0;
  // [5009]  Bezier .
  virtual HRESULT STDMETHODCALLTYPE get_Beziers(Kompasltapi7_tlb::IBeziersPtr* PVal/*[out,retval]*/) = 0;
  // [5010]  .
  virtual HRESULT STDMETHODCALLTYPE get_MacroObjects(Kompasltapi7_tlb::IMacroObjectsPtr* PVal/*[out,retval]*/) = 0;
  // [5011]  .
  virtual HRESULT STDMETHODCALLTYPE get_Lines(Kompasltapi7_tlb::ILinesPtr* PVal/*[out,retval]*/) = 0;
  // [5012]  2D .
  virtual HRESULT STDMETHODCALLTYPE get_PolyLines2D(Kompasltapi7_tlb::IPolyLines2DPtr* PVal/*[out,retval]*/) = 0;
  // [5013]  Nurbs-.
  virtual HRESULT STDMETHODCALLTYPE get_Nurbses(Kompasltapi7_tlb::INurbsesPtr* PVal/*[out,retval]*/) = 0;
  // [5014]   .
  virtual HRESULT STDMETHODCALLTYPE get_Rasters(Kompasltapi7_tlb::IRastersPtr* PVal/*[out,retval]*/) = 0;
  // [5015]  OLE-.
  virtual HRESULT STDMETHODCALLTYPE get_OleDrawingObjects(Kompasltapi7_tlb::IOleDrawingObjectsPtr* PVal/*[out,retval]*/) = 0;
  // [5016]  .
  virtual HRESULT STDMETHODCALLTYPE get_Ellipses(Kompasltapi7_tlb::IEllipsesPtr* PVal/*[out,retval]*/) = 0;
  // [5017]   .
  virtual HRESULT STDMETHODCALLTYPE get_EllipseArcs(Kompasltapi7_tlb::IEllipseArcsPtr* PVal/*[out,retval]*/) = 0;
  // [5018]  .
  virtual HRESULT STDMETHODCALLTYPE get_Rectangles(Kompasltapi7_tlb::IRectanglesPtr* PVal/*[out,retval]*/) = 0;
  // [5019]  .
  virtual HRESULT STDMETHODCALLTYPE get_RegularPolygons(Kompasltapi7_tlb::IRegularPolygonsPtr* PVal/*[out,retval]*/) = 0;
  // [5020]  .
  virtual HRESULT STDMETHODCALLTYPE get_Equidistants(Kompasltapi7_tlb::IEquidistantsPtr* PVal/*[out,retval]*/) = 0;
  // [5021]       .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionObjects(Kompasltapi7_tlb::IInsertionObjectsPtr* PVal/*[out,retval]*/) = 0;
  // [5022]  .
  virtual HRESULT STDMETHODCALLTYPE get_Hatches(Kompasltapi7_tlb::IHatchesPtr* PVal/*[out,retval]*/) = 0;
  // [5023]  .
  virtual HRESULT STDMETHODCALLTYPE get_Colourings(Kompasltapi7_tlb::IColouringsPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Objects(TVariantInParam ObjType/*[in]*/)
  {
    TVariant Result;
    OLECHECK(this->get_Objects(ObjType, (TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingTextsPtr __fastcall get_DrawingTexts(void)
  {
    Kompasltapi7_tlb::IDrawingTextsPtr PVal;
    OLECHECK(this->get_DrawingTexts((Kompasltapi7_tlb::IDrawingTextsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILineSegmentsPtr __fastcall get_LineSegments(void)
  {
    Kompasltapi7_tlb::ILineSegmentsPtr PVal;
    OLECHECK(this->get_LineSegments((Kompasltapi7_tlb::ILineSegmentsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IArcsPtr __fastcall get_Arcs(void)
  {
    Kompasltapi7_tlb::IArcsPtr PVal;
    OLECHECK(this->get_Arcs((Kompasltapi7_tlb::IArcsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMultilinesPtr __fastcall get_Multilines(void)
  {
    Kompasltapi7_tlb::IMultilinesPtr PVal;
    OLECHECK(this->get_Multilines((Kompasltapi7_tlb::IMultilinesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingContoursPtr __fastcall get_DrawingContours(void)
  {
    Kompasltapi7_tlb::IDrawingContoursPtr PVal;
    OLECHECK(this->get_DrawingContours((Kompasltapi7_tlb::IDrawingContoursPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ICirclesPtr __fastcall get_Circles(void)
  {
    Kompasltapi7_tlb::ICirclesPtr PVal;
    OLECHECK(this->get_Circles((Kompasltapi7_tlb::ICirclesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPointsPtr __fastcall get_Points(void)
  {
    Kompasltapi7_tlb::IPointsPtr PVal;
    OLECHECK(this->get_Points((Kompasltapi7_tlb::IPointsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IBeziersPtr __fastcall get_Beziers(void)
  {
    Kompasltapi7_tlb::IBeziersPtr PVal;
    OLECHECK(this->get_Beziers((Kompasltapi7_tlb::IBeziersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMacroObjectsPtr __fastcall get_MacroObjects(void)
  {
    Kompasltapi7_tlb::IMacroObjectsPtr PVal;
    OLECHECK(this->get_MacroObjects((Kompasltapi7_tlb::IMacroObjectsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILinesPtr __fastcall get_Lines(void)
  {
    Kompasltapi7_tlb::ILinesPtr PVal;
    OLECHECK(this->get_Lines((Kompasltapi7_tlb::ILinesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IPolyLines2DPtr __fastcall get_PolyLines2D(void)
  {
    Kompasltapi7_tlb::IPolyLines2DPtr PVal;
    OLECHECK(this->get_PolyLines2D((Kompasltapi7_tlb::IPolyLines2DPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::INurbsesPtr __fastcall get_Nurbses(void)
  {
    Kompasltapi7_tlb::INurbsesPtr PVal;
    OLECHECK(this->get_Nurbses((Kompasltapi7_tlb::INurbsesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRastersPtr __fastcall get_Rasters(void)
  {
    Kompasltapi7_tlb::IRastersPtr PVal;
    OLECHECK(this->get_Rasters((Kompasltapi7_tlb::IRastersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IOleDrawingObjectsPtr __fastcall get_OleDrawingObjects(void)
  {
    Kompasltapi7_tlb::IOleDrawingObjectsPtr PVal;
    OLECHECK(this->get_OleDrawingObjects((Kompasltapi7_tlb::IOleDrawingObjectsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IEllipsesPtr __fastcall get_Ellipses(void)
  {
    Kompasltapi7_tlb::IEllipsesPtr PVal;
    OLECHECK(this->get_Ellipses((Kompasltapi7_tlb::IEllipsesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IEllipseArcsPtr __fastcall get_EllipseArcs(void)
  {
    Kompasltapi7_tlb::IEllipseArcsPtr PVal;
    OLECHECK(this->get_EllipseArcs((Kompasltapi7_tlb::IEllipseArcsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRectanglesPtr __fastcall get_Rectangles(void)
  {
    Kompasltapi7_tlb::IRectanglesPtr PVal;
    OLECHECK(this->get_Rectangles((Kompasltapi7_tlb::IRectanglesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRegularPolygonsPtr __fastcall get_RegularPolygons(void)
  {
    Kompasltapi7_tlb::IRegularPolygonsPtr PVal;
    OLECHECK(this->get_RegularPolygons((Kompasltapi7_tlb::IRegularPolygonsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IEquidistantsPtr __fastcall get_Equidistants(void)
  {
    Kompasltapi7_tlb::IEquidistantsPtr PVal;
    OLECHECK(this->get_Equidistants((Kompasltapi7_tlb::IEquidistantsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IInsertionObjectsPtr __fastcall get_InsertionObjects(void)
  {
    Kompasltapi7_tlb::IInsertionObjectsPtr PVal;
    OLECHECK(this->get_InsertionObjects((Kompasltapi7_tlb::IInsertionObjectsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IHatchesPtr __fastcall get_Hatches(void)
  {
    Kompasltapi7_tlb::IHatchesPtr PVal;
    OLECHECK(this->get_Hatches((Kompasltapi7_tlb::IHatchesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IColouringsPtr __fastcall get_Colourings(void)
  {
    Kompasltapi7_tlb::IColouringsPtr PVal;
    OLECHECK(this->get_Colourings((Kompasltapi7_tlb::IColouringsPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IDrawingTextsPtr DrawingTexts = {read = get_DrawingTexts};
  __property   Kompasltapi7_tlb::ILineSegmentsPtr LineSegments = {read = get_LineSegments};
  __property   Kompasltapi7_tlb::IArcsPtr Arcs = {read = get_Arcs};
  __property   Kompasltapi7_tlb::IMultilinesPtr Multilines = {read = get_Multilines};
  __property   Kompasltapi7_tlb::IDrawingContoursPtr DrawingContours = {read = get_DrawingContours};
  __property   Kompasltapi7_tlb::ICirclesPtr Circles = {read = get_Circles};
  __property   Kompasltapi7_tlb::IPointsPtr Points = {read = get_Points};
  __property   Kompasltapi7_tlb::IBeziersPtr Beziers = {read = get_Beziers};
  __property   Kompasltapi7_tlb::IMacroObjectsPtr MacroObjects = {read = get_MacroObjects};
  __property   Kompasltapi7_tlb::ILinesPtr Lines = {read = get_Lines};
  __property   Kompasltapi7_tlb::IPolyLines2DPtr PolyLines2D = {read = get_PolyLines2D};
  __property   Kompasltapi7_tlb::INurbsesPtr Nurbses = {read = get_Nurbses};
  __property   Kompasltapi7_tlb::IRastersPtr Rasters = {read = get_Rasters};
  __property   Kompasltapi7_tlb::IOleDrawingObjectsPtr OleDrawingObjects = {read = get_OleDrawingObjects};
  __property   Kompasltapi7_tlb::IEllipsesPtr Ellipses = {read = get_Ellipses};
  __property   Kompasltapi7_tlb::IEllipseArcsPtr EllipseArcs = {read = get_EllipseArcs};
  __property   Kompasltapi7_tlb::IRectanglesPtr Rectangles = {read = get_Rectangles};
  __property   Kompasltapi7_tlb::IRegularPolygonsPtr RegularPolygons = {read = get_RegularPolygons};
  __property   Kompasltapi7_tlb::IEquidistantsPtr Equidistants = {read = get_Equidistants};
  __property   Kompasltapi7_tlb::IInsertionObjectsPtr InsertionObjects = {read = get_InsertionObjects};
  __property   Kompasltapi7_tlb::IHatchesPtr Hatches = {read = get_Hatches};
  __property   Kompasltapi7_tlb::IColouringsPtr Colourings = {read = get_Colourings};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILineSegments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B211C782-A830-468E-9F4F-C499A77078D8}
// *********************************************************************//
interface ILineSegments  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_LineSegment(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILineSegmentPtr __fastcall get_LineSegment(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILineSegmentPtr Result;
    OLECHECK(this->get_LineSegment(Index, (Kompasltapi7_tlb::ILineSegmentPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILineSegmentPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ILineSegmentPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ILineSegmentPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILineSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {64ACC86F-4B10-4897-8552-BC0A556D228B}
// *********************************************************************//
interface ILineSegment  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IArcs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4FCB4C17-3B9E-45E8-B83C-9284027BAA0D}
// *********************************************************************//
interface IArcs  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Arc(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IArcPtr __fastcall get_Arc(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IArcPtr Result;
    OLECHECK(this->get_Arc(Index, (Kompasltapi7_tlb::IArcPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IArcPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IArcPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IArcPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A22DFB7E-21E0-4B28-9CA1-29B7950CF256}
// *********************************************************************//
interface IArc  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [2] . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [2] . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [3]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [4]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [4]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [9]        X.
  virtual HRESULT STDMETHODCALLTYPE set_X3(double PVal/*[in]*/) = 0;
  // [9]        X.
  virtual HRESULT STDMETHODCALLTYPE get_X3(double* PVal/*[out,retval]*/) = 0;
  // [10]        Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y3(double PVal/*[in]*/) = 0;
  // [10]        Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y3(double* PVal/*[out,retval]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle1(double PVal/*[in]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle1(double* PVal/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle2(double PVal/*[in]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle2(double* PVal/*[out,retval]*/) = 0;
  // [13] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [13] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X3(void)
  {
    double PVal;
    OLECHECK(this->get_X3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y3(void)
  {
    double PVal;
    OLECHECK(this->get_Y3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle1(void)
  {
    double PVal;
    OLECHECK(this->get_Angle1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle2(void)
  {
    double PVal;
    OLECHECK(this->get_Angle2((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMultilines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {968D7B84-2BC1-4354-AAFE-73192E405546}
// *********************************************************************//
interface IMultilines  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Multiline(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IMultilinePtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IMultilinePtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IMultilinePtr __fastcall get_Multiline(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IMultilinePtr Result;
    OLECHECK(this->get_Multiline(Index, (Kompasltapi7_tlb::IMultilinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IMultilinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IMultilinePtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IMultilinePtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMultiline
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6CCB098-5710-44E3-8198-8FAFD56C7A6F}
// *********************************************************************//
interface IMultiline  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Closed(TOLEBOOL Result/*[in]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Closed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseContour(Kompasltapi7_tlb::IContourPtr* Result/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_TrackingType(long VertexIndex/*[in]*/, 
                                                     ksMlVertexTrackingEnum* Val/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_TrackingType(long VertexIndex/*[in]*/, 
                                                     ksMlVertexTrackingEnum Val/*[in]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_VertexLimiter(long VertexIndex/*[in]*/, 
                                                      ksMlVertexLimiterEnum* PVal/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE set_VertexLimiter(long VertexIndex/*[in]*/, 
                                                      ksMlVertexLimiterEnum PVal/*[in]*/) = 0;
  // [5]     true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE get_VertexDirection(long VertexIndex/*[in]*/, 
                                                        TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]     true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE set_VertexDirection(long VertexIndex/*[in]*/, 
                                                        TOLEBOOL PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_VertexRadius(long VertexIndex/*[in]*/, double PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_VertexRadius(long VertexIndex/*[in]*/, 
                                                     double* PVal/*[out,retval]*/) = 0;
  // [7] C    .
  virtual HRESULT STDMETHODCALLTYPE get_VertexStyle(long VertexIndex/*[in]*/, 
                                                    long* Result/*[out,retval]*/) = 0;
  // [7] C    .
  virtual HRESULT STDMETHODCALLTYPE set_VertexStyle(long VertexIndex/*[in]*/, long Result/*[in]*/) = 0;
  // [8]     .
  virtual HRESULT STDMETHODCALLTYPE get_VertexCount(long* PVal/*[out,retval]*/) = 0;
  // [9]     .
  virtual HRESULT STDMETHODCALLTYPE get_EndLimiter(TOLEBOOL First/*[in]*/, 
                                                   ksMlEndLimiterEnum* PVal/*[out,retval]*/) = 0;
  // [9]     .
  virtual HRESULT STDMETHODCALLTYPE set_EndLimiter(TOLEBOOL First/*[in]*/, 
                                                   ksMlEndLimiterEnum PVal/*[in]*/) = 0;
  // [10]    %(0-100).
  virtual HRESULT STDMETHODCALLTYPE set_EndParameter(TOLEBOOL First/*[in]*/, double PVal/*[in]*/) = 0;
  // [10]    %(0-100).
  virtual HRESULT STDMETHODCALLTYPE get_EndParameter(TOLEBOOL First/*[in]*/, 
                                                     double* PVal/*[out,retval]*/) = 0;
  // [11] C    .
  virtual HRESULT STDMETHODCALLTYPE get_EndStyle(TOLEBOOL First/*[in]*/, 
                                                 long* Result/*[out,retval]*/) = 0;
  // [11] C    .
  virtual HRESULT STDMETHODCALLTYPE set_EndStyle(TOLEBOOL First/*[in]*/, long Result/*[in]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE AddLine(double Offset/*[in]*/, long Style/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteLine(long LineIndex/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [14]  .
  virtual HRESULT STDMETHODCALLTYPE get_LineCount(long* PVal/*[out,retval]*/) = 0;
  // [15]  .
  virtual HRESULT STDMETHODCALLTYPE set_LineOffset(long LineIndex/*[in]*/, double PVal/*[in]*/) = 0;
  // [15]  .
  virtual HRESULT STDMETHODCALLTYPE get_LineOffset(long LineIndex/*[in]*/, 
                                                   double* PVal/*[out,retval]*/) = 0;
  // [16] C .
  virtual HRESULT STDMETHODCALLTYPE get_LineStyle(long LineIndex/*[in]*/, 
                                                  long* Result/*[out,retval]*/) = 0;
  // [16] C .
  virtual HRESULT STDMETHODCALLTYPE set_LineStyle(long LineIndex/*[in]*/, long Result/*[in]*/) = 0;
  // [17]     .
  virtual HRESULT STDMETHODCALLTYPE FindLine(double Offset/*[in]*/, long* Result/*[out,retval]*/) = 0;
  // [18]     SAFEARRAY' double - VT_ARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE get_LineOffsets(TVariant* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Closed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IContourPtr __fastcall get_BaseContour(void)
  {
    Kompasltapi7_tlb::IContourPtr Result;
    OLECHECK(this->get_BaseContour((Kompasltapi7_tlb::IContourPtr*)&Result));
    return Result;
  }

  ksMlVertexTrackingEnum __fastcall get_TrackingType(long VertexIndex/*[in]*/)
  {
    ksMlVertexTrackingEnum Val;
    OLECHECK(this->get_TrackingType(VertexIndex, (ksMlVertexTrackingEnum*)&Val));
    return Val;
  }

  ksMlVertexLimiterEnum __fastcall get_VertexLimiter(long VertexIndex/*[in]*/)
  {
    ksMlVertexLimiterEnum PVal;
    OLECHECK(this->get_VertexLimiter(VertexIndex, (ksMlVertexLimiterEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_VertexDirection(long VertexIndex/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_VertexDirection(VertexIndex, (TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_VertexRadius(long VertexIndex/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_VertexRadius(VertexIndex, (double*)&PVal));
    return PVal;
  }

  long __fastcall get_VertexStyle(long VertexIndex/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_VertexStyle(VertexIndex, (long*)&Result));
    return Result;
  }

  long __fastcall get_VertexCount(void)
  {
    long PVal;
    OLECHECK(this->get_VertexCount((long*)&PVal));
    return PVal;
  }

  ksMlEndLimiterEnum __fastcall get_EndLimiter(TOLEBOOL First/*[in]*/)
  {
    ksMlEndLimiterEnum PVal;
    OLECHECK(this->get_EndLimiter(First, (ksMlEndLimiterEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_EndParameter(TOLEBOOL First/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_EndParameter(First, (double*)&PVal));
    return PVal;
  }

  long __fastcall get_EndStyle(TOLEBOOL First/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_EndStyle(First, (long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddLine(double Offset/*[in]*/, long Style/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddLine(Offset, Style, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteLine(long LineIndex/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteLine(LineIndex, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_LineCount(void)
  {
    long PVal;
    OLECHECK(this->get_LineCount((long*)&PVal));
    return PVal;
  }

  double __fastcall get_LineOffset(long LineIndex/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_LineOffset(LineIndex, (double*)&PVal));
    return PVal;
  }

  long __fastcall get_LineStyle(long LineIndex/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_LineStyle(LineIndex, (long*)&Result));
    return Result;
  }

  long __fastcall FindLine(double Offset/*[in]*/)
  {
    long Result;
    OLECHECK(this->FindLine(Offset, (long*)&Result));
    return Result;
  }

  TVariant __fastcall get_LineOffsets(void)
  {
    TVariant Result;
    OLECHECK(this->get_LineOffsets((TVariant*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   Kompasltapi7_tlb::IContourPtr BaseContour = {read = get_BaseContour};
  __property   long            VertexCount = {read = get_VertexCount};
  __property   long            LineCount = {read = get_LineCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IContour
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E79F5A53-F456-4996-B620-16B725F134FB}
// *********************************************************************//
interface IContour  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE set_Closed(TOLEBOOL Result/*[in]*/) = 0;
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE get_Closed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE AddSegment(ksContourSegmentEnum Type/*[in]*/, 
                                               Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;
  // [2003]  .
  virtual HRESULT STDMETHODCALLTYPE get_Segment(long Index/*[in]*/, 
                                                Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                              TOLEBOOL DeleteSource/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* PVal/*[out,retval]*/) = 0;
  // [2006]       SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_TmpObjects(TVariant* Result/*[out,retval]*/) = 0;
  // [2007]         SAFEARRAY' DISPATCH - VT_ARRAY | VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE CopySegments(TVariantInParam Val/*[in]*/, 
                                                 TOLEBOOL DeleteSource/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2008]  
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Closed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall AddSegment(ksContourSegmentEnum Type/*[in]*/)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->AddSegment(Type, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Segment(long Index/*[in]*/)
  {
    Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
    OLECHECK(this->get_Segment(Index, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                TOLEBOOL DeleteSource/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->CopyCurve(Curve, DeleteSource, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_Count(void)
  {
    long PVal;
    OLECHECK(this->get_Count((long*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_TmpObjects(void)
  {
    TVariant Result;
    OLECHECK(this->get_TmpObjects((TVariant*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->CopySegments(Val, DeleteSource, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingContours
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DBA3626C-12BE-4BFF-8D42-B01A78666BC9}
// *********************************************************************//
interface IDrawingContours  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingContour(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::IDrawingContourPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IDrawingContourPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingContourPtr __fastcall get_DrawingContour(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDrawingContourPtr Result;
    OLECHECK(this->get_DrawingContour(Index, (Kompasltapi7_tlb::IDrawingContourPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingContourPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IDrawingContourPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IDrawingContourPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingContour
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {25509C3A-7B46-4E3F-B0E8-0E61B7548664}
// *********************************************************************//
interface IDrawingContour  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [1] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICircles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C8CA9255-E5FE-4396-9C3F-75EE7377C508}
// *********************************************************************//
interface ICircles  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Circle(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ICirclePtr __fastcall get_Circle(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICirclePtr Result;
    OLECHECK(this->get_Circle(Index, (Kompasltapi7_tlb::ICirclePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICirclePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ICirclePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ICirclePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICircle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C952F95-DFED-4EEE-B39A-6699EDE08676}
// *********************************************************************//
interface ICircle  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [3]      X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [3]      X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [4]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [4]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [6] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [6] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8C6846A4-EE3B-4C00-A708-5C0FD01E21B7}
// *********************************************************************//
interface IPoints  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  2D ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Point(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/) = 0;
  // [2]  2D  (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPointPtr __fastcall get_Point(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPointPtr Result;
    OLECHECK(this->get_Point(Index, (Kompasltapi7_tlb::IPointPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPointPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IPointPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IPointPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D0C19C87-14E7-401D-AEF5-A2E88E899F6E}
// *********************************************************************//
interface IPoint  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [1]  X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [2]  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [2]  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [3]       ksSpecSymbolEnum.
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [3]       ksSpecSymbolEnum.
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [4] C.
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* PVal/*[out,retval]*/) = 0;
  // [4] C.
  virtual HRESULT STDMETHODCALLTYPE set_Style(long PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long PVal;
    OLECHECK(this->get_Style((long*)&PVal));
    return PVal;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBeziers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {57944ECC-5491-4551-9DB9-FABC45125A63}
// *********************************************************************//
interface IBeziers  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Bezier(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBezierPtr __fastcall get_Bezier(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBezierPtr Result;
    OLECHECK(this->get_Bezier(Index, (Kompasltapi7_tlb::IBezierPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBezierPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IBezierPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IBezierPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBezier
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6D51EC19-200C-47A2-AE55-0593AD746851}
// *********************************************************************//
interface IBezier  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Closed(TOLEBOOL Result/*[in]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Closed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_PointsCount(long* Result/*[out,retval]*/) = 0;
  // [3]     SAFEARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE set_Points(TOLEBOOL AllPoints/*[in]*/, 
                                               TVariantInParam Points/*[in]*/) = 0;
  // [3]     SAFEARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE get_Points(TOLEBOOL AllPoints/*[in]*/, 
                                               TVariant* Points/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE AddPoint(long Index/*[in]*/, double XBase/*[in]*/, 
                                             double YBase/*[in]*/, double* XLeft/*[in]*/, 
                                             double* YLeft/*[in]*/, double* XRight/*[in]*/, 
                                             double* YRight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, 
                                             double* YBase/*[out]*/, double* XLeft/*[out]*/, 
                                             double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                                             double* YRight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [8] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Closed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_PointsCount(void)
  {
    long Result;
    OLECHECK(this->get_PointsCount((long*)&Result));
    return Result;
  }

  TVariant __fastcall get_Points(TOLEBOOL AllPoints/*[in]*/)
  {
    TVariant Points;
    OLECHECK(this->get_Points(AllPoints, (TVariant*)&Points));
    return Points;
  }

  TOLEBOOL __fastcall AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                               double* XLeft/*[in]*/, double* YLeft/*[in]*/, double* XRight/*[in]*/, 
                               double* YRight/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->AddPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, double* YBase/*[out]*/, 
                               double* XLeft/*[out]*/, double* YLeft/*[out]*/, 
                               double* XRight/*[out]*/, double* YRight/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall DeletePoint(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeletePoint(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMacroObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5B3F5454-160A-4981-B093-890E9A719AE3}
// *********************************************************************//
interface IMacroObjects  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]    ,    reference.
  virtual HRESULT STDMETHODCALLTYPE get_MacroObject(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IMacroObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE Add(TOLEBOOL MultyLayer/*[in,def,opt]*/, 
                                        Kompasltapi7_tlb::IMacroObjectPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IMacroObjectPtr __fastcall get_MacroObject(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IMacroObjectPtr Result;
    OLECHECK(this->get_MacroObject(Index, (Kompasltapi7_tlb::IMacroObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IMacroObjectPtr __fastcall Add(TOLEBOOL MultyLayer/*[in,def,opt]*/)
  {
    Kompasltapi7_tlb::IMacroObjectPtr Value;
    OLECHECK(this->Add(MultyLayer, (Kompasltapi7_tlb::IMacroObjectPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {889A9B9C-7533-4EC5-8E2C-5ECF8228B06F}
// *********************************************************************//
interface ILines  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Line(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILinePtr __fastcall get_Line(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILinePtr Result;
    OLECHECK(this->get_Line(Index, (Kompasltapi7_tlb::ILinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ILinePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ILinePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EA0DA9B-F2C0-40C4-BE36-7103509A9389}
// *********************************************************************//
interface ILine  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5]    OX  .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [5]    OX  .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPolyLines2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D1A9CB2D-A259-4CCC-9CD4-FA006494BCA7}
// *********************************************************************//
interface IPolyLines2D  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_PolyLine2D(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IPolyLine2DPtr __fastcall get_PolyLine2D(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IPolyLine2DPtr Result;
    OLECHECK(this->get_PolyLine2D(Index, (Kompasltapi7_tlb::IPolyLine2DPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IPolyLine2DPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IPolyLine2DPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IPolyLine2DPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPolyLine2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D0DA413-9507-4795-896F-E049FA6E44DD}
// *********************************************************************//
interface IPolyLine2D  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Closed(TOLEBOOL Result/*[in]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Closed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_PointsCount(long* Result/*[out,retval]*/) = 0;
  // [3]  SAFEARRAY  .
  virtual HRESULT STDMETHODCALLTYPE set_Points(TVariantInParam Points/*[in]*/) = 0;
  // [3]  SAFEARRAY  .
  virtual HRESULT STDMETHODCALLTYPE get_Points(TVariant* Points/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                             TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE GetPoint(long Index/*[in]*/, double* X/*[out]*/, 
                                             double* Y/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [8] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Closed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_PointsCount(void)
  {
    long Result;
    OLECHECK(this->get_PointsCount((long*)&Result));
    return Result;
  }

  TVariant __fastcall get_Points(void)
  {
    TVariant Points;
    OLECHECK(this->get_Points((TVariant*)&Points));
    return Points;
  }

  TOLEBOOL __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->AddPoint(Index, X, Y, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetPoint(Index, X, Y, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall DeletePoint(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeletePoint(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: INurbses
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88ECED7C-181C-4D9F-84DE-44B2E360F278}
// *********************************************************************//
interface INurbses  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  NURBS-,   .
  virtual HRESULT STDMETHODCALLTYPE get_Nurbs(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/) = 0;
  // [2]  NURBS- ( NURBS-  ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/) = 0;
  // [3]    NURBS- ( NURBS-  ).
  virtual HRESULT STDMETHODCALLTYPE Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                            Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::INurbsPtr __fastcall get_Nurbs(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::INurbsPtr Result;
    OLECHECK(this->get_Nurbs(Index, (Kompasltapi7_tlb::INurbsPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::INurbsPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::INurbsPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::INurbsPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::INurbsPtr __fastcall Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/)
  {
    Kompasltapi7_tlb::INurbsPtr Result;
    OLECHECK(this->Convert(Curve, (Kompasltapi7_tlb::INurbsPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: INurbs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE1AB9F4-B127-4303-A30D-C3509F6D10CD}
// *********************************************************************//
interface INurbs  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Closed(TOLEBOOL Result/*[in]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Closed(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Degree(long Result/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Degree(long* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Periodic(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_PointsCount(long* Result/*[out,retval]*/) = 0;
  // [5]   NURBS-    SAFEARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE SetNurbsParams(TVariantInParam Points/*[in]*/, 
                                                   TVariantInParam Weight/*[in]*/, 
                                                   TVariantInParam Knots/*[in]*/, 
                                                   long Degree/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]   NURBS-    SAFEARRAY | VT_R8.
  virtual HRESULT STDMETHODCALLTYPE GetNurbsParams(TVariant* Points/*[out]*/, 
                                                   TVariant* Weight/*[out]*/, 
                                                   TVariant* Knots/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                             double Weight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE GetPoint(long Index/*[in]*/, double* X/*[out]*/, 
                                             double* Y/*[out]*/, double* Weight/*[out]*/, 
                                             TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [11] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_Closed(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_Degree(void)
  {
    long Result;
    OLECHECK(this->get_Degree((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Periodic(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Periodic((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_PointsCount(void)
  {
    long Result;
    OLECHECK(this->get_PointsCount((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetNurbsParams(TVariantInParam Points/*[in]*/, TVariantInParam Weight/*[in]*/, 
                                     TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                                     TOLEBOOL Closed/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetNurbsParams(Points, Weight, Knots, Degree, Closed, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                                     TVariant* Knots/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetNurbsParams(Points, Weight, Knots, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                               double Weight/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->AddPoint(Index, X, Y, Weight, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                               double* Weight/*[out]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->GetPoint(Index, X, Y, Weight, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall DeletePoint(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeletePoint(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            Degree = {read = get_Degree, write = set_Degree};
  __property   TOLEBOOL        Periodic = {read = get_Periodic};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRasters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C6E4E32D-E077-4B14-B9DE-041BD628C38C}
// *********************************************************************//
interface IRasters  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Raster(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRasterPtr __fastcall get_Raster(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRasterPtr Result;
    OLECHECK(this->get_Raster(Index, (Kompasltapi7_tlb::IRasterPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRasterPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRasterPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRasterPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRaster
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DEED8D7B-404B-4F17-B42A-2F5E64818D0A}
// *********************************************************************//
interface IRaster  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Angle/*[out]*/, 
                                                 TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE SetPlacement(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Angle/*[in]*/, 
                                                 TOLEBOOL MirrorSymmetry/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Scale(double PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Scale(double* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE set_FileName(BSTR PVal/*[in]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [5]  . TRUE -   , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE set_InsertionType(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]  . TRUE -   , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_Resolution(double PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_Resolution(double* PVal/*[out,retval]*/) = 0;
  // [7]  . TRUE -  .FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE set_DisplayModePartial(TOLEBOOL PVal/*[in]*/) = 0;
  // [7]  . TRUE -  .FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE get_DisplayModePartial(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(double* PVal/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(double PVal/*[in]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double PVal/*[in]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE get_SourceHeight(double* PVal/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_SourceWidth(double* PVal/*[out,retval]*/) = 0;
  // [12]  . ( .)
  virtual HRESULT STDMETHODCALLTYPE get_Palette(long* PVal/*[out,retval]*/) = 0;
  // [13]   .
  virtual HRESULT STDMETHODCALLTYPE get_IsEnableChangeResolution(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE get_IsCutBoundarySet(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL MirrorSymmetry/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_Scale(void)
  {
    double PVal;
    OLECHECK(this->get_Scale((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_InsertionType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_InsertionType((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Resolution(void)
  {
    double PVal;
    OLECHECK(this->get_Resolution((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DisplayModePartial(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DisplayModePartial((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Height(void)
  {
    double PVal;
    OLECHECK(this->get_Height((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Width(void)
  {
    double PVal;
    OLECHECK(this->get_Width((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SourceHeight(void)
  {
    double PVal;
    OLECHECK(this->get_SourceHeight((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SourceWidth(void)
  {
    double PVal;
    OLECHECK(this->get_SourceWidth((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Palette(void)
  {
    long PVal;
    OLECHECK(this->get_Palette((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_IsEnableChangeResolution(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_IsEnableChangeResolution((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_IsCutBoundarySet(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_IsCutBoundarySet((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        InsertionType = {read = get_InsertionType, write = set_InsertionType};
  __property   double          Resolution = {read = get_Resolution, write = set_Resolution};
  __property   TOLEBOOL        DisplayModePartial = {read = get_DisplayModePartial, write = set_DisplayModePartial};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          SourceHeight = {read = get_SourceHeight};
  __property   double          SourceWidth = {read = get_SourceWidth};
  __property   long            Palette = {read = get_Palette};
  __property   TOLEBOOL        IsEnableChangeResolution = {read = get_IsEnableChangeResolution};
  __property   TOLEBOOL        IsCutBoundarySet = {read = get_IsCutBoundarySet};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IOleDrawingObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E7A8DD07-CD6B-45A6-B6AF-155A674BC7E4}
// *********************************************************************//
interface IOleDrawingObjects  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  Ole ,   .
  virtual HRESULT STDMETHODCALLTYPE get_OleDrawingObject(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]  OLE- ( Ole   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall get_OleDrawingObject(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IOleDrawingObjectPtr Result;
    OLECHECK(this->get_OleDrawingObject(Index, (Kompasltapi7_tlb::IOleDrawingObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IOleDrawingObjectPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IOleDrawingObjectPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IOleDrawingObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9A0ECE23-7B60-44E0-9728-C56CAAA455A2}
// *********************************************************************//
interface IOleDrawingObject  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Angle/*[out]*/, 
                                                 TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE SetPlacement(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Angle/*[in]*/, 
                                                 TOLEBOOL MirrorSymmetry/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Scale(double PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Scale(double* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_ClassId(BSTR PVal/*[in,def,opt]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_ClassId(BSTR* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_FileName(BSTR PVal/*[in,def,opt]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_Link(TOLEBOOL PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_Link(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]  . TRUE -   , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE set_InsertionType(TOLEBOOL PVal/*[in]*/) = 0;
  // [7]  . TRUE -   , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [8]    Ole-.
  virtual HRESULT STDMETHODCALLTYPE DoVerb(long iVerb/*[in]*/, LPDISPATCH* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE Close(TOLEBOOL Save/*[in]*/, TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL MirrorSymmetry/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_Scale(void)
  {
    double PVal;
    OLECHECK(this->get_Scale((double*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ClassId(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ClassId((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Link(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Link((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_InsertionType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_InsertionType((TOLEBOOL*)&PVal));
    return PVal;
  }

  LPDISPATCH __fastcall DoVerb(long iVerb/*[in]*/)
  {
    LPDISPATCH Result;
    OLECHECK(this->DoVerb(iVerb, (LPDISPATCH*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Close(TOLEBOOL Save/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->Close(Save, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   BSTR            ClassId = {read = get_ClassId, write = set_ClassId};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        Link = {read = get_Link, write = set_Link};
  __property   TOLEBOOL        InsertionType = {read = get_InsertionType, write = set_InsertionType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEllipses
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {47633C44-93BB-4F41-A6CA-4F8CCAEA0659}
// *********************************************************************//
interface IEllipses  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Ellipse(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IEllipsePtr __fastcall get_Ellipse(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IEllipsePtr Result;
    OLECHECK(this->get_Ellipse(Index, (Kompasltapi7_tlb::IEllipsePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IEllipsePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IEllipsePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IEllipsePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEllipse
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F60C9107-D8E2-433C-A0E3-A4E508D09353}
// *********************************************************************//
interface IEllipse  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [3]      X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [3]      X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [4]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [4]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [5]      X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [5]      X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [6]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [6]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_SemiAxisA(double PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_SemiAxisA(double* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE set_SemiAxisB(double PVal/*[in]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_SemiAxisB(double* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [10] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [10] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SemiAxisA(void)
  {
    double PVal;
    OLECHECK(this->get_SemiAxisA((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SemiAxisB(void)
  {
    double PVal;
    OLECHECK(this->get_SemiAxisB((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          SemiAxisA = {read = get_SemiAxisA, write = set_SemiAxisA};
  __property   double          SemiAxisB = {read = get_SemiAxisB, write = set_SemiAxisB};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEllipseArcs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CC5B7FCB-B887-4A47-AE6B-2522DFA24433}
// *********************************************************************//
interface IEllipseArcs  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_EllipseArc(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IEllipseArcPtr __fastcall get_EllipseArc(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IEllipseArcPtr Result;
    OLECHECK(this->get_EllipseArc(Index, (Kompasltapi7_tlb::IEllipseArcPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IEllipseArcPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IEllipseArcPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IEllipseArcPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEllipseArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {320D837F-0B27-45B0-98B4-9D21156E9857}
// *********************************************************************//
interface IEllipseArc  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]      X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [1]      X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [2]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [2]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_T1(double PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_T1(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE set_T2(double PVal/*[in]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_T2(double* PVal/*[out,retval]*/) = 0;
  // [5]      a.
  virtual HRESULT STDMETHODCALLTYPE set_Angle1(double PVal/*[in]*/) = 0;
  // [5]      a.
  virtual HRESULT STDMETHODCALLTYPE get_Angle1(double* PVal/*[out,retval]*/) = 0;
  // [6]      a.
  virtual HRESULT STDMETHODCALLTYPE set_Angle2(double PVal/*[in]*/) = 0;
  // [6]      a.
  virtual HRESULT STDMETHODCALLTYPE get_Angle2(double* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_SemiAxisA(double PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_SemiAxisA(double* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE set_SemiAxisB(double PVal/*[in]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_SemiAxisB(double* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [11] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [11] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_T1(void)
  {
    double PVal;
    OLECHECK(this->get_T1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_T2(void)
  {
    double PVal;
    OLECHECK(this->get_T2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle1(void)
  {
    double PVal;
    OLECHECK(this->get_Angle1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle2(void)
  {
    double PVal;
    OLECHECK(this->get_Angle2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SemiAxisA(void)
  {
    double PVal;
    OLECHECK(this->get_SemiAxisA((double*)&PVal));
    return PVal;
  }

  double __fastcall get_SemiAxisB(void)
  {
    double PVal;
    OLECHECK(this->get_SemiAxisB((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          T1 = {read = get_T1, write = set_T1};
  __property   double          T2 = {read = get_T2, write = set_T2};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          SemiAxisA = {read = get_SemiAxisA, write = set_SemiAxisA};
  __property   double          SemiAxisB = {read = get_SemiAxisB, write = set_SemiAxisB};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRectangles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D6BC2EE9-249F-4961-89A7-88DA854F35FE}
// *********************************************************************//
interface IRectangles  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Rectangle(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRectanglePtr __fastcall get_Rectangle(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRectanglePtr Result;
    OLECHECK(this->get_Rectangle(Index, (Kompasltapi7_tlb::IRectanglePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRectanglePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRectanglePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRectanglePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRectangle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42F9FC58-FEA0-4E52-A604-1A00985AB772}
// *********************************************************************//
interface IRectangle  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [3]    ,    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [3]    ,    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(double* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* PVal/*[out,retval]*/) = 0;
  // [6] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [6] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [7]   / .
  virtual HRESULT STDMETHODCALLTYPE GetCorner(long Index/*[in]*/, 
                                              ksCornerTypeEnum* Type/*[out]*/, 
                                              double* L1/*[out]*/, double* L2/*[out]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]   / .
  virtual HRESULT STDMETHODCALLTYPE SetCorner(long Index/*[in]*/, 
                                              ksCornerTypeEnum Type/*[in]*/, 
                                              double L1/*[in]*/, double L2/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Height(void)
  {
    double PVal;
    OLECHECK(this->get_Height((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Width(void)
  {
    double PVal;
    OLECHECK(this->get_Width((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetCorner(long Index/*[in]*/, 
                                ksCornerTypeEnum* Type/*[out]*/, 
                                double* L1/*[out]*/, double* L2/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCorner(long Index/*[in]*/, 
                                ksCornerTypeEnum Type/*[in]*/, 
                                double L1/*[in]*/, double L2/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRegularPolygons
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {80377CB2-073E-4C38-8532-C42A078BA719}
// *********************************************************************//
interface IRegularPolygons  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_RegularPolygon(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRegularPolygonPtr __fastcall get_RegularPolygon(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRegularPolygonPtr Result;
    OLECHECK(this->get_RegularPolygon(Index, (Kompasltapi7_tlb::IRegularPolygonPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRegularPolygonPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRegularPolygonPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRegularPolygonPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRegularPolygon
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {51968648-F264-4904-A07F-653676AE1D35}
// *********************************************************************//
interface IRegularPolygon  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_Count(long PVal/*[in]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* PVal/*[out,retval]*/) = 0;
  // [2]         X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [2]         X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [3]         Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [3]         Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [4]  -,      .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [4]  -,      .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE set_Describe(TOLEBOOL PVal/*[in]*/) = 0;
  // [6]       .
  virtual HRESULT STDMETHODCALLTYPE get_Describe(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [8]   / .
  virtual HRESULT STDMETHODCALLTYPE GetCorner(long Index/*[in]*/, 
                                              ksCornerTypeEnum* Type/*[out]*/, 
                                              double* L1/*[out]*/, double* L2/*[out]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]   / .
  virtual HRESULT STDMETHODCALLTYPE SetCorner(long Index/*[in]*/, 
                                              ksCornerTypeEnum Type/*[in]*/, 
                                              double L1/*[in]*/, double L2/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_Count(void)
  {
    long PVal;
    OLECHECK(this->get_Count((long*)&PVal));
    return PVal;
  }

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Describe(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Describe((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetCorner(long Index/*[in]*/, 
                                ksCornerTypeEnum* Type/*[out]*/, 
                                double* L1/*[out]*/, double* L2/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetCorner(long Index/*[in]*/, 
                                ksCornerTypeEnum Type/*[in]*/, 
                                double L1/*[in]*/, double L2/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            Count = {read = get_Count, write = set_Count};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Describe = {read = get_Describe, write = set_Describe};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEquidistants
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {86182E5E-8FA3-4283-9DC5-43D1673C80DA}
// *********************************************************************//
interface IEquidistants  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Equidistant(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IEquidistantPtr __fastcall get_Equidistant(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IEquidistantPtr Result;
    OLECHECK(this->get_Equidistant(Index, (Kompasltapi7_tlb::IEquidistantPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IEquidistantPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IEquidistantPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IEquidistantPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IEquidistant
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE6713F9-AD9A-466D-9FB9-D19235E42C95}
// *********************************************************************//
interface IEquidistant  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_Side(ksEquidistantTypeEnum PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_Side(ksEquidistantTypeEnum* PVal/*[out,retval]*/) = 0;
  // [3]  (TRUE -  , FALSE -  ).
  virtual HRESULT STDMETHODCALLTYPE set_CutMode(TOLEBOOL PVal/*[in]*/) = 0;
  // [3]  (TRUE -  , FALSE -  ).
  virtual HRESULT STDMETHODCALLTYPE get_CutMode(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]    . TRUE -   
  virtual HRESULT STDMETHODCALLTYPE set_DegenerateSegment(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]    . TRUE -   
  virtual HRESULT STDMETHODCALLTYPE get_DegenerateSegment(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_LeftRadius(double PVal/*[in]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_LeftRadius(double* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_RightRadius(double PVal/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_RightRadius(double* PVal/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Result;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
    return Result;
  }

  ksEquidistantTypeEnum __fastcall get_Side(void)
  {
    ksEquidistantTypeEnum PVal;
    OLECHECK(this->get_Side((ksEquidistantTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CutMode(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CutMode((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DegenerateSegment(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DegenerateSegment((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_LeftRadius(void)
  {
    double PVal;
    OLECHECK(this->get_LeftRadius((double*)&PVal));
    return PVal;
  }

  double __fastcall get_RightRadius(void)
  {
    double PVal;
    OLECHECK(this->get_RightRadius((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   ksEquidistantTypeEnum Side = {read = get_Side, write = set_Side};
  __property   TOLEBOOL        CutMode = {read = get_CutMode, write = set_CutMode};
  __property   TOLEBOOL        DegenerateSegment = {read = get_DegenerateSegment, write = set_DegenerateSegment};
  __property   double          LeftRadius = {read = get_LeftRadius, write = set_LeftRadius};
  __property   double          RightRadius = {read = get_RightRadius, write = set_RightRadius};
  __property   long            Style = {read = get_Style, write = set_Style};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertionObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C485550B-29E3-4F2A-A85C-C2795E0F1F86}
// *********************************************************************//
interface IInsertionObjects  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]        ,    reference.
  virtual HRESULT STDMETHODCALLTYPE get_InsertionObject(TVariantInParam Index/*[in]*/, 
                                                        Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/) = 0;
  // [2]        .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/, 
                                        Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IInsertionObjectPtr __fastcall get_InsertionObject(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IInsertionObjectPtr Result;
    OLECHECK(this->get_InsertionObject(Index, (Kompasltapi7_tlb::IInsertionObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IInsertionObjectPtr __fastcall Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/)
  {
    Kompasltapi7_tlb::IInsertionObjectPtr Result;
    OLECHECK(this->Add(Definition, (Kompasltapi7_tlb::IInsertionObjectPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertionObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9E9CE68-371D-4600-9233-84D89A015C55}
// *********************************************************************//
interface IInsertionObject  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Angle/*[out]*/, 
                                                 TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE SetPlacement(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Angle/*[in]*/, 
                                                 TOLEBOOL MirrorSymmetry/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_Name(BSTR PVal/*[in,def,opt]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_FileName(BSTR* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionType(ksInsertionTypeEnum* PVal/*[out,retval]*/) = 0;
  // [6] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE set_DimensionLineScale(TOLEBOOL PVal/*[in]*/) = 0;
  // [6] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL MirrorSymmetry/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
    return Result;
  }

  BSTR __fastcall get_Name(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Name((BSTR*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_FileName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_FileName((BSTR*)&PVal));
    return PVal;
  }

  ksInsertionTypeEnum __fastcall get_InsertionType(void)
  {
    ksInsertionTypeEnum PVal;
    OLECHECK(this->get_InsertionType((ksInsertionTypeEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DimensionLineScale(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DimensionLineScale((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(void)
  {
    Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
    OLECHECK(this->get_InsertionDefinition((Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal));
    return PVal;
  }


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            FileName = {read = get_FileName};
  __property   ksInsertionTypeEnum InsertionType = {read = get_InsertionType};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   Kompasltapi7_tlb::IInsertionDefinitionPtr InsertionDefinition = {read = get_InsertionDefinition, write = set_InsertionDefinition};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IHatches
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B7E776B0-9524-4254-9D1F-0CF8E0314A1B}
// *********************************************************************//
interface IHatches  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Hatch(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/) = 0;
  // [2]   (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IHatchPtr __fastcall get_Hatch(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IHatchPtr Result;
    OLECHECK(this->get_Hatch(Index, (Kompasltapi7_tlb::IHatchPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IHatchPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IHatchPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IHatchPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IHatch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {826C0B5B-0146-417A-8128-E581F8430F37}
// *********************************************************************//
interface IHatch  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_X(double* Result/*[out,retval]*/) = 0;
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE set_X(double Result/*[in]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE set_Y(double Result/*[in]*/) = 0;
  // [3]  . TRUE -  1.
  virtual HRESULT STDMETHODCALLTYPE get_Side(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [3]  . TRUE -  1.
  virtual HRESULT STDMETHODCALLTYPE set_Side(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double Result;
    OLECHECK(this->get_X((double*)&Result));
    return Result;
  }

  double __fastcall get_Y(void)
  {
    double Result;
    OLECHECK(this->get_Y((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Side(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Side((TOLEBOOL*)&Result));
    return Result;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        Side = {read = get_Side, write = set_Side};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IColourings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {60437DAD-2688-4146-B765-3FCC55C39D0F}
// *********************************************************************//
interface IColourings  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_Colouring(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/) = 0;
  // [2]   (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IColouringPtr __fastcall get_Colouring(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IColouringPtr Result;
    OLECHECK(this->get_Colouring(Index, (Kompasltapi7_tlb::IColouringPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IColouringPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IColouringPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IColouringPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IColouring
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1E0EF1B5-08D3-40B6-893E-3EE7E4FAEC98}
// *********************************************************************//
interface IColouring  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_ColouringType(ksColouringTypeEnum* Result/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_ColouringType(ksColouringTypeEnum Result/*[in]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE get_Color1(long* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE set_Color1(long Result/*[in]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE get_Color2(long* Result/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE set_Color2(long Result/*[in]*/) = 0;
  // [4]   %.
  virtual HRESULT STDMETHODCALLTYPE get_Transparency1(long* PVal/*[out,retval]*/) = 0;
  // [4]   %.
  virtual HRESULT STDMETHODCALLTYPE set_Transparency1(long PVal/*[in]*/) = 0;
  // [5]   %.
  virtual HRESULT STDMETHODCALLTYPE get_Transparency2(long* PVal/*[out,retval]*/) = 0;
  // [5]   %.
  virtual HRESULT STDMETHODCALLTYPE set_Transparency2(long PVal/*[in]*/) = 0;
  // [6] TRUE -    FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE get_GradientType(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6] TRUE -    FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE set_GradientType(TOLEBOOL Result/*[in]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_GradientCount(long* Result/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE set_GradientCount(long Result/*[in]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE get_GradientAngle(double* Result/*[out,retval]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE set_GradientAngle(double Result/*[in]*/) = 0;
  // [9]     %   .
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* Result/*[out,retval]*/) = 0;
  // [9]     %   .
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double Result/*[in]*/) = 0;
  // [10]     %   .
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* Result/*[out,retval]*/) = 0;
  // [10]     %   .
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double Result/*[in]*/) = 0;
  // [11]    .
  virtual HRESULT STDMETHODCALLTYPE GetGradations(TVariant* Positions/*[out]*/, 
                                                  TVariant* Colors/*[out]*/, 
                                                  TVariant* Transparences/*[out]*/, 
                                                  TVariant* Interpolations/*[out]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE SetGradations(TVariantInParam Positions/*[in]*/, 
                                                  TVariantInParam Colors/*[in]*/, 
                                                  TVariantInParam Transparences/*[in]*/, 
                                                  TVariantInParam Interpolations/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]   .
  virtual HRESULT STDMETHODCALLTYPE AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                                 long Transparency/*[in]*/, 
                                                 TOLEBOOL Interpolation/*[in]*/, 
                                                 long* Result/*[out,retval]*/) = 0;
  // [14]    .
  virtual HRESULT STDMETHODCALLTYPE ClearGradations(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [15]   .
  virtual HRESULT STDMETHODCALLTYPE get_GradationsCount(long* Result/*[out,retval]*/) = 0;
  // [16]      .
  virtual HRESULT STDMETHODCALLTYPE GetGradation(long Index/*[in]*/, long* Position/*[out]*/, 
                                                 long* Color/*[out]*/, long* Transparency/*[out]*/, 
                                                 TOLEBOOL* Interpolation/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [17]      .
  virtual HRESULT STDMETHODCALLTYPE SetGradation(long Index/*[in]*/, long Position/*[in]*/, 
                                                 long Color/*[in]*/, long Transparency/*[in]*/, 
                                                 TOLEBOOL Interpolation/*[in]*/, 
                                                 long* Result/*[out,retval]*/) = 0;
  // [18]     .
  virtual HRESULT STDMETHODCALLTYPE DeleteGradation(long Index/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [19]   .
  virtual HRESULT STDMETHODCALLTYPE FindPosition(long Position/*[in]*/, long* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksColouringTypeEnum __fastcall get_ColouringType(void)
  {
    ksColouringTypeEnum Result;
    OLECHECK(this->get_ColouringType((ksColouringTypeEnum*)&Result));
    return Result;
  }

  long __fastcall get_Color1(void)
  {
    long Result;
    OLECHECK(this->get_Color1((long*)&Result));
    return Result;
  }

  long __fastcall get_Color2(void)
  {
    long Result;
    OLECHECK(this->get_Color2((long*)&Result));
    return Result;
  }

  long __fastcall get_Transparency1(void)
  {
    long PVal;
    OLECHECK(this->get_Transparency1((long*)&PVal));
    return PVal;
  }

  long __fastcall get_Transparency2(void)
  {
    long PVal;
    OLECHECK(this->get_Transparency2((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_GradientType(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_GradientType((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_GradientCount(void)
  {
    long Result;
    OLECHECK(this->get_GradientCount((long*)&Result));
    return Result;
  }

  double __fastcall get_GradientAngle(void)
  {
    double Result;
    OLECHECK(this->get_GradientAngle((double*)&Result));
    return Result;
  }

  double __fastcall get_Xc(void)
  {
    double Result;
    OLECHECK(this->get_Xc((double*)&Result));
    return Result;
  }

  double __fastcall get_Yc(void)
  {
    double Result;
    OLECHECK(this->get_Yc((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                    TVariant* Transparences/*[out]*/, 
                                    TVariant* Interpolations/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetGradations(Positions, Colors, Transparences, Interpolations, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetGradations(TVariantInParam Positions/*[in]*/, 
                                    TVariantInParam Colors/*[in]*/, 
                                    TVariantInParam Transparences/*[in]*/, 
                                    TVariantInParam Interpolations/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetGradations(Positions, Colors, Transparences, Interpolations, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall AddGradation(long Position/*[in]*/, long Color/*[in]*/, long Transparency/*[in]*/, 
                               TOLEBOOL Interpolation/*[in]*/)
  {
    long Result;
    OLECHECK(this->AddGradation(Position, Color, Transparency, Interpolation, (long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall ClearGradations(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->ClearGradations((TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall get_GradationsCount(void)
  {
    long Result;
    OLECHECK(this->get_GradationsCount((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall GetGradation(long Index/*[in]*/, long* Position/*[out]*/, long* Color/*[out]*/, 
                                   long* Transparency/*[out]*/, TOLEBOOL* Interpolation/*[out]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->GetGradation(Index, Position, Color, Transparency, Interpolation, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall SetGradation(long Index/*[in]*/, long Position/*[in]*/, long Color/*[in]*/, 
                               long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/)
  {
    long Result;
    OLECHECK(this->SetGradation(Index, Position, Color, Transparency, Interpolation, (long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteGradation(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteGradation(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  long __fastcall FindPosition(long Position/*[in]*/)
  {
    long Result;
    OLECHECK(this->FindPosition(Position, (long*)&Result));
    return Result;
  }


  __property   ksColouringTypeEnum ColouringType = {read = get_ColouringType, write = set_ColouringType};
  __property   long            Color1 = {read = get_Color1, write = set_Color1};
  __property   long            Color2 = {read = get_Color2, write = set_Color2};
  __property   long            Transparency1 = {read = get_Transparency1, write = set_Transparency1};
  __property   long            Transparency2 = {read = get_Transparency2, write = set_Transparency2};
  __property   TOLEBOOL        GradientType = {read = get_GradientType, write = set_GradientType};
  __property   long            GradientCount = {read = get_GradientCount, write = set_GradientCount};
  __property   double          GradientAngle = {read = get_GradientAngle, write = set_GradientAngle};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   long            GradationsCount = {read = get_GradationsCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMark
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B5D1A0BE-8F3C-4143-B9C5-66F0CF0FE74D}
// *********************************************************************//
interface IMark  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [2001]      X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* Result/*[out,retval]*/) = 0;
  // [2001]      X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double Result/*[in]*/) = 0;
  // [2002]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* Result/*[out,retval]*/) = 0;
  // [2002]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double Result/*[in]*/) = 0;
  // [2003]     .
  virtual HRESULT STDMETHODCALLTYPE get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2003]     .
  virtual HRESULT STDMETHODCALLTYPE set_AutoNumber(TOLEBOOL Result/*[in]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2006]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2007]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2008]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2009] .
  virtual HRESULT STDMETHODCALLTYPE get_Comment(BSTR* Result/*[out,retval]*/) = 0;
  // [2009] .
  virtual HRESULT STDMETHODCALLTYPE set_Comment(BSTR Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double Result;
    OLECHECK(this->get_X((double*)&Result));
    return Result;
  }

  double __fastcall get_Y(void)
  {
    double Result;
    OLECHECK(this->get_Y((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoNumber(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoNumber((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Name(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Name((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Number(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Number((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnder(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUnder((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_Comment(void)
  {
    BSTR Result = 0;
    OLECHECK(this->get_Comment((BSTR*)&Result));
    return Result;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoNumber = {read = get_AutoNumber, write = set_AutoNumber};
  __property   Kompasltapi7_tlb::ITextPtr Name = {read = get_Name};
  __property   Kompasltapi7_tlb::ITextPtr Number = {read = get_Number};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   Kompasltapi7_tlb::ITextPtr TextUnder = {read = get_TextUnder};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMarks
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {47585370-56BD-4419-82D9-DB7CBFB1A252}
// *********************************************************************//
interface IMarks  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   ,     .
  virtual HRESULT STDMETHODCALLTYPE get_Mark(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE Add(DrawingObjectTypeEnum MarkType/*[in]*/, 
                                        Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IMarkPtr __fastcall get_Mark(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IMarkPtr Result;
    OLECHECK(this->get_Mark(Index, (Kompasltapi7_tlb::IMarkPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IMarkPtr __fastcall Add(DrawingObjectTypeEnum MarkType/*[in]*/)
  {
    Kompasltapi7_tlb::IMarkPtr Result;
    OLECHECK(this->Add(MarkType, (Kompasltapi7_tlb::IMarkPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMarkInsideForm
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E5C5A0FF-6CAB-4179-9BF3-868D96BF6AEA}
// *********************************************************************//
interface IMarkInsideForm  : public Kompasltapi7_tlb::IMark
{
public:
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* Result/*[out,retval]*/) = 0;
  // [1] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double Result/*[in]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE set_Form(ksMarkInsideFormEnum NewVal/*[in]*/) = 0;
  // [2] .
  virtual HRESULT STDMETHODCALLTYPE get_Form(ksMarkInsideFormEnum* NewVal/*[out,retval]*/) = 0;
  // [3]  (, ).
  virtual HRESULT STDMETHODCALLTYPE set_FormGabarit(double PVal/*[in]*/) = 0;
  // [3]  (, ).
  virtual HRESULT STDMETHODCALLTYPE get_FormGabarit(double* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_FormHeight(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_FormHeight(double* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_FormStyle(long PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_FormStyle(long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Angle(void)
  {
    double Result;
    OLECHECK(this->get_Angle((double*)&Result));
    return Result;
  }

  ksMarkInsideFormEnum __fastcall get_Form(void)
  {
    ksMarkInsideFormEnum NewVal;
    OLECHECK(this->get_Form((ksMarkInsideFormEnum*)&NewVal));
    return NewVal;
  }

  double __fastcall get_FormGabarit(void)
  {
    double PVal;
    OLECHECK(this->get_FormGabarit((double*)&PVal));
    return PVal;
  }

  double __fastcall get_FormHeight(void)
  {
    double PVal;
    OLECHECK(this->get_FormHeight((double*)&PVal));
    return PVal;
  }

  long __fastcall get_FormStyle(void)
  {
    long PVal;
    OLECHECK(this->get_FormStyle((long*)&PVal));
    return PVal;
  }


  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksMarkInsideFormEnum Form = {read = get_Form, write = set_Form};
  __property   double          FormGabarit = {read = get_FormGabarit, write = set_FormGabarit};
  __property   double          FormHeight = {read = get_FormHeight, write = set_FormHeight};
  __property   long            FormStyle = {read = get_FormStyle, write = set_FormStyle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMarkOnLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A1540F9-7388-466F-A13C-EB1133423DD9}
// *********************************************************************//
interface IMarkOnLine  : public Kompasltapi7_tlb::IMark
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_Position(ksMarkOnLinePosTypeEnum* Result/*[out,retval]*/) = 0;
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE set_Position(ksMarkOnLinePosTypeEnum Result/*[in]*/) = 0;
  // [2] ,    .
  virtual HRESULT STDMETHODCALLTYPE get_Line(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/) = 0;
  // [2] ,    .
  virtual HRESULT STDMETHODCALLTYPE set_Line(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksMarkOnLinePosTypeEnum __fastcall get_Position(void)
  {
    ksMarkOnLinePosTypeEnum Result;
    OLECHECK(this->get_Position((ksMarkOnLinePosTypeEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Line(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Result;
    OLECHECK(this->get_Line((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
    return Result;
  }


  __property   ksMarkOnLinePosTypeEnum Position = {read = get_Position, write = set_Position};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr Line = {read = get_Line, write = set_Line};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMarkOnLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F3D7E6A6-26EA-4D68-AD58-4DE194C47B4E}
// *********************************************************************//
interface IMarkOnLeader  : public Kompasltapi7_tlb::IMark
{
public:
  // [1]   -.
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType(ksArrowEnum* PVal/*[out,retval]*/) = 0;
  // [1]   -.
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType(ksArrowEnum PVal/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_ParallelBranch(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_BranchCount(long* PVal/*[out,retval]*/) = 0;
  // [5]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchPoints(long Index/*[in]*/, 
                                                     TVariantInParam PVal/*[in]*/) = 0;
  // [5]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPoints(long Index/*[in]*/, 
                                                     TVariant* PVal/*[out,retval]*/) = 0;
  // [6]  : TRUE -   , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/) = 0;
  // [6]  : TRUE -   , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchBegin(long Index/*[in]*/, 
                                                    TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]      X.
  virtual HRESULT STDMETHODCALLTYPE set_BranchX(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [7]      X.
  virtual HRESULT STDMETHODCALLTYPE get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [8]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_BranchY(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [8]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPointsCount(long Index/*[in]*/, 
                                                          long* Result/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                              TVariantInParam Points/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                                     double X/*[in]*/, double Y/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteBranch(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksArrowEnum __fastcall get_ArrowType(void)
  {
    ksArrowEnum PVal;
    OLECHECK(this->get_ArrowType((ksArrowEnum*)&PVal));
    return PVal;
  }

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum PVal;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ParallelBranch(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ParallelBranch((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_BranchCount(void)
  {
    long PVal;
    OLECHECK(this->get_BranchCount((long*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_BranchPoints(long Index/*[in]*/)
  {
    TVariant PVal;
    OLECHECK(this->get_BranchPoints(Index, (TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_BranchBegin(long Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_BranchBegin(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_BranchX(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_BranchX(Index, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_BranchY(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_BranchY(Index, (double*)&PVal));
    return PVal;
  }

  long __fastcall get_BranchPointsCount(long Index/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_BranchPointsCount(Index, (long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                TVariantInParam Points/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranch(Index, Begin, Points, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, double X/*[in]*/, 
                                       double Y/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranchByPoint(Index, Begin, X, Y, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteBranch(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteBranch(Index, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        ParallelBranch = {read = get_ParallelBranch, write = set_ParallelBranch};
  __property   long            BranchCount = {read = get_BranchCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBuildingAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {123C45BF-14DE-433E-B3B0-2FB642A9A418}
// *********************************************************************//
interface IBuildingAxis  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [2001]   (TRUE   FALSE ).
  virtual HRESULT STDMETHODCALLTYPE set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [2001]   (TRUE   FALSE ).
  virtual HRESULT STDMETHODCALLTYPE get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE set_MarkSize(double PVal/*[in]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE get_MarkSize(double* PVal/*[out,retval]*/) = 0;
  // [2003]  .
  virtual HRESULT STDMETHODCALLTYPE set_DottedLength(double PVal/*[in]*/) = 0;
  // [2003]  .
  virtual HRESULT STDMETHODCALLTYPE get_DottedLength(double* PVal/*[out,retval]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE set_Interval(double PVal/*[in]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE get_Interval(double* PVal/*[out,retval]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE set_Stroke(double PVal/*[in]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Stroke(double* PVal/*[out,retval]*/) = 0;
  // [2006] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2007]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2008]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [2009]   .
  virtual HRESULT STDMETHODCALLTYPE set_AutoStroke(TOLEBOOL PVal/*[in]*/) = 0;
  // [2009]   .
  virtual HRESULT STDMETHODCALLTYPE get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2010]       .
  virtual HRESULT STDMETHODCALLTYPE GetInsertionPoints(TOLEBOOL First/*[in]*/, 
                                                       TVariant* Points/*[out]*/, 
                                                       TVariant* Directions/*[out]*/, 
                                                       TVariant* Nodes/*[out]*/, 
                                                       TOLEBOOL* RetVal/*[out,retval]*/) = 0;
  // [2011]     .
  virtual HRESULT STDMETHODCALLTYPE GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                   double Limit/*[in]*/, 
                                                   Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/) = 0;
  // [2012]     .
  virtual HRESULT STDMETHODCALLTYPE AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                                   double X/*[in]*/, double Y/*[in]*/, 
                                                   Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_DoubleMark(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DoubleMark((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_MarkSize(void)
  {
    double PVal;
    OLECHECK(this->get_MarkSize((double*)&PVal));
    return PVal;
  }

  double __fastcall get_DottedLength(void)
  {
    double PVal;
    OLECHECK(this->get_DottedLength((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Interval(void)
  {
    double PVal;
    OLECHECK(this->get_Interval((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Stroke(void)
  {
    double PVal;
    OLECHECK(this->get_Stroke((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoStroke(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoStroke((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                         TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/)
  {
    TOLEBOOL RetVal;
    OLECHECK(this->GetInsertionPoints(First, Points, Directions, Nodes, (TOLEBOOL*)&RetVal));
    return RetVal;
  }

  Kompasltapi7_tlb::IMarkNodePtr __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                           double Limit/*[in]*/)
  {
    Kompasltapi7_tlb::IMarkNodePtr PVal;
    OLECHECK(this->GetNodeByPoint(X, Y, Limit, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMarkNodePtr __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                                           double X/*[in]*/, double Y/*[in]*/)
  {
    Kompasltapi7_tlb::IMarkNodePtr PVal;
    OLECHECK(this->AddNodeByPoint(Type, X, Y, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          MarkSize = {read = get_MarkSize, write = set_MarkSize};
  __property   double          DottedLength = {read = get_DottedLength, write = set_DottedLength};
  __property   double          Interval = {read = get_Interval, write = set_Interval};
  __property   double          Stroke = {read = get_Stroke, write = set_Stroke};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   TOLEBOOL        AutoStroke = {read = get_AutoStroke, write = set_AutoStroke};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMarkNode
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5AC48E97-80B1-459F-9709-1F3F374559BE}
// *********************************************************************//
interface IMarkNode  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_MarkType(ksMarkNodeEnum Val/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_MarkType(ksMarkNodeEnum* Val/*[out,retval]*/) = 0;
  // [2]   (TRUE   FALSE ).
  virtual HRESULT STDMETHODCALLTYPE set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [2]   (TRUE   FALSE ).
  virtual HRESULT STDMETHODCALLTYPE get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_RefLength(double PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_RefLength(double* PVal/*[out,retval]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [5] 	  Left = TRUE , Left = FALSE    .
  virtual HRESULT STDMETHODCALLTYPE get_MarkNodes(TOLEBOOL Left/*[in]*/, 
                                                  Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [7]       .
  virtual HRESULT STDMETHODCALLTYPE GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, 
                                                       TVariant* Points/*[out]*/, 
                                                       TVariant* Directions/*[out]*/, 
                                                       TOLEBOOL* RetVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksMarkNodeEnum __fastcall get_MarkType(void)
  {
    ksMarkNodeEnum Val;
    OLECHECK(this->get_MarkType((ksMarkNodeEnum*)&Val));
    return Val;
  }

  TOLEBOOL __fastcall get_DoubleMark(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DoubleMark((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_RefLength(void)
  {
    double PVal;
    OLECHECK(this->get_RefLength((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(TOLEBOOL Left/*[in]*/)
  {
    Kompasltapi7_tlb::IMarkNodesPtr PVal;
    OLECHECK(this->get_MarkNodes(Left, (Kompasltapi7_tlb::IMarkNodesPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Delete((TOLEBOOL*)&PRes));
    return PRes;
  }

  TOLEBOOL __fastcall GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                         TVariant* Directions/*[out]*/)
  {
    TOLEBOOL RetVal;
    OLECHECK(this->GetInsertionPoints(LeftJut, Points, Directions, (TOLEBOOL*)&RetVal));
    return RetVal;
  }


  __property   ksMarkNodeEnum MarkType = {read = get_MarkType, write = set_MarkType};
  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          RefLength = {read = get_RefLength, write = set_RefLength};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMarkNodes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EB8ACD77-8008-4F89-A311-2F4712462F72}
// *********************************************************************//
interface IMarkNodes  : public Kompasltapi7_tlb::IKompasCollection
{
public:
  // [0]       .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/) = 0;
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE Add(ksMarkNodeEnum Type/*[in]*/, 
                                        TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IMarkNodePtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IMarkNodePtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IMarkNodePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IMarkNodePtr __fastcall Add(ksMarkNodeEnum Type/*[in]*/, 
                                                TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IMarkNodePtr Result;
    OLECHECK(this->Add(Type, Index, (Kompasltapi7_tlb::IMarkNodePtr*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBuildingAxes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18072E1D-1802-41F5-A434-04BB9D3F157F}
// *********************************************************************//
interface IBuildingAxes  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_BuildingAxis(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/) = 0;
  // [2]   (   ).
  virtual HRESULT STDMETHODCALLTYPE Add(DrawingObjectTypeEnum AxisType/*[in]*/, 
                                        Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBuildingAxisPtr __fastcall get_BuildingAxis(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBuildingAxisPtr Result;
    OLECHECK(this->get_BuildingAxis(Index, (Kompasltapi7_tlb::IBuildingAxisPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBuildingAxisPtr __fastcall Add(DrawingObjectTypeEnum AxisType/*[in]*/)
  {
    Kompasltapi7_tlb::IBuildingAxisPtr Result;
    OLECHECK(this->Add(AxisType, (Kompasltapi7_tlb::IBuildingAxisPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IStraightAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7B2820E0-2CB7-4412-9B96-F291DD790448}
// *********************************************************************//
interface IStraightAxis  : public Kompasltapi7_tlb::IBuildingAxis
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [7]  .First = TRUE , First = FALSE .
  virtual HRESULT STDMETHODCALLTYPE get_Jut(TOLEBOOL First/*[in]*/, 
                                            Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAxisJutPtr __fastcall get_Jut(TOLEBOOL First/*[in]*/)
  {
    Kompasltapi7_tlb::IAxisJutPtr PRes;
    OLECHECK(this->get_Jut(First, (Kompasltapi7_tlb::IAxisJutPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(void)
  {
    Kompasltapi7_tlb::IMarkNodesPtr PVal;
    OLECHECK(this->get_MarkNodes((Kompasltapi7_tlb::IMarkNodesPtr*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   Kompasltapi7_tlb::IMarkNodesPtr MarkNodes = {read = get_MarkNodes};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAxisJut
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A22E024-F530-45DB-A3F2-CA0587BDA1B5}
// *********************************************************************//
interface IAxisJut  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [2] C .
  virtual HRESULT STDMETHODCALLTYPE set_MarkOffset(double PVal/*[in]*/) = 0;
  // [2] C .
  virtual HRESULT STDMETHODCALLTYPE get_MarkOffset(double* PVal/*[out,retval]*/) = 0;
  // [3] C  ( %   ).
  virtual HRESULT STDMETHODCALLTYPE set_BreakOffset(double PVal/*[in]*/) = 0;
  // [3] C  ( %   ).
  virtual HRESULT STDMETHODCALLTYPE get_BreakOffset(double* PVal/*[out,retval]*/) = 0;
  // [4]   (TRUE   FALSE ).
  virtual HRESULT STDMETHODCALLTYPE set_BreakDirection(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [4]   (TRUE   FALSE ).
  virtual HRESULT STDMETHODCALLTYPE get_BreakDirection(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  double __fastcall get_MarkOffset(void)
  {
    double PVal;
    OLECHECK(this->get_MarkOffset((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BreakOffset(void)
  {
    double PVal;
    OLECHECK(this->get_BreakOffset((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_BreakDirection(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_BreakDirection((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_MarkOn(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_MarkOn((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          MarkOffset = {read = get_MarkOffset, write = set_MarkOffset};
  __property   double          BreakOffset = {read = get_BreakOffset, write = set_BreakOffset};
  __property   TOLEBOOL        BreakDirection = {read = get_BreakDirection, write = set_BreakDirection};
  __property   TOLEBOOL        MarkOn = {read = get_MarkOn, write = set_MarkOn};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IArcAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DAA9755A-3971-4713-B281-15995CBF2E56}
// *********************************************************************//
interface IArcAxis  : public Kompasltapi7_tlb::IBuildingAxis
{
public:
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle1(double PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle1(double* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle2(double PVal/*[in]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle2(double* PVal/*[out,retval]*/) = 0;
  // [9] .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [9] .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [10] . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [10] . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [11]  .First = TRUE , First = FALSE .
  virtual HRESULT STDMETHODCALLTYPE get_Jut(TOLEBOOL First/*[in]*/, 
                                            Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/) = 0;
  // [13]      .
  virtual HRESULT STDMETHODCALLTYPE set_X3(double PVal/*[in]*/) = 0;
  // [13]      .
  virtual HRESULT STDMETHODCALLTYPE get_X3(double* PVal/*[out,retval]*/) = 0;
  // [14]      .
  virtual HRESULT STDMETHODCALLTYPE set_Y3(double PVal/*[in]*/) = 0;
  // [14]      .
  virtual HRESULT STDMETHODCALLTYPE get_Y3(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle1(void)
  {
    double PVal;
    OLECHECK(this->get_Angle1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle2(void)
  {
    double PVal;
    OLECHECK(this->get_Angle2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAxisJutPtr __fastcall get_Jut(TOLEBOOL First/*[in]*/)
  {
    Kompasltapi7_tlb::IAxisJutPtr PRes;
    OLECHECK(this->get_Jut(First, (Kompasltapi7_tlb::IAxisJutPtr*)&PRes));
    return PRes;
  }

  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(void)
  {
    Kompasltapi7_tlb::IMarkNodesPtr PVal;
    OLECHECK(this->get_MarkNodes((Kompasltapi7_tlb::IMarkNodesPtr*)&PVal));
    return PVal;
  }

  double __fastcall get_X3(void)
  {
    double PVal;
    OLECHECK(this->get_X3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y3(void)
  {
    double PVal;
    OLECHECK(this->get_Y3((double*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   Kompasltapi7_tlb::IMarkNodesPtr MarkNodes = {read = get_MarkNodes};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICircleAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D84358FB-674C-4A5D-93BA-EE5D3342097B}
// *********************************************************************//
interface ICircleAxis  : public Kompasltapi7_tlb::IBuildingAxis
{
public:
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_MarkAngle(double PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_MarkAngle(double* PVal/*[out,retval]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [4] .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_BaseMarkNode(Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_MarkAngle(void)
  {
    double PVal;
    OLECHECK(this->get_MarkAngle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_MarkOn(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_MarkOn((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMarkNodePtr __fastcall get_BaseMarkNode(void)
  {
    Kompasltapi7_tlb::IMarkNodePtr PVal;
    OLECHECK(this->get_BaseMarkNode((Kompasltapi7_tlb::IMarkNodePtr*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          MarkAngle = {read = get_MarkAngle, write = set_MarkAngle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        MarkOn = {read = get_MarkOn, write = set_MarkOn};
  __property   Kompasltapi7_tlb::IMarkNodePtr BaseMarkNode = {read = get_BaseMarkNode};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICutUnitMarking
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2EDA58EE-DBDA-44CC-AD10-6895006D498C}
// *********************************************************************//
interface ICutUnitMarking  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_StrokeCount(long* Result/*[out,retval]*/) = 0;
  // [2]      X.
  virtual HRESULT STDMETHODCALLTYPE set_StrokeX(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [2]      X.
  virtual HRESULT STDMETHODCALLTYPE get_StrokeX(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [3]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_StrokeY(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [3]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_StrokeY(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [4]  
  virtual HRESULT STDMETHODCALLTYPE set_Stroke(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [4]  
  virtual HRESULT STDMETHODCALLTYPE get_Stroke(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* Result/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double Result/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* Result/*[out,retval]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double Result/*[in]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* Result/*[out,retval]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double Result/*[in]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE AddStroke(double X/*[in]*/, double Y/*[in]*/, 
                                              double Length/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteStroke(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_StrokeCount(void)
  {
    long Result;
    OLECHECK(this->get_StrokeCount((long*)&Result));
    return Result;
  }

  double __fastcall get_StrokeX(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_StrokeX(Index, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_StrokeY(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_StrokeY(Index, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_Stroke(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_Stroke(Index, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double Result;
    OLECHECK(this->get_Angle((double*)&Result));
    return Result;
  }

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum Result;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
    return Result;
  }

  double __fastcall get_ShelfX(void)
  {
    double Result;
    OLECHECK(this->get_ShelfX((double*)&Result));
    return Result;
  }

  double __fastcall get_ShelfY(void)
  {
    double Result;
    OLECHECK(this->get_ShelfY((double*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddStroke(X, Y, Length, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteStroke(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteStroke(Index, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            StrokeCount = {read = get_StrokeCount};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICutUnitMarkings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {23B00F94-98D3-4AD7-8827-F4088F4A9E5C}
// *********************************************************************//
interface ICutUnitMarkings  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     ,   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_CutUnitMarking(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::ICutUnitMarkingPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ICutUnitMarkingPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall get_CutUnitMarking(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICutUnitMarkingPtr Result;
    OLECHECK(this->get_CutUnitMarking(Index, (Kompasltapi7_tlb::ICutUnitMarkingPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ICutUnitMarkingPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::ICutUnitMarkingPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IUnitMarking
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {86F46084-16A8-4B5C-99E9-F848216788F0}
// *********************************************************************//
interface IUnitMarking  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* Result/*[out,retval]*/) = 0;
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double Result/*[in]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* Result/*[out,retval]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double Result/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* Result/*[out,retval]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double Result/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_Height(double* Result/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_Height(double Result/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_Width(double* Result/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_Width(double Result/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* Result/*[out,retval]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double Result/*[in]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* Result/*[out,retval]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double Result/*[in]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_Form(ksContourFormEnum* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_Form(ksContourFormEnum Result/*[in]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE get_FilletRadius(double* Result/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE set_FilletRadius(double Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double Result;
    OLECHECK(this->get_Xc((double*)&Result));
    return Result;
  }

  double __fastcall get_Yc(void)
  {
    double Result;
    OLECHECK(this->get_Yc((double*)&Result));
    return Result;
  }

  double __fastcall get_Radius(void)
  {
    double Result;
    OLECHECK(this->get_Radius((double*)&Result));
    return Result;
  }

  double __fastcall get_Height(void)
  {
    double Result;
    OLECHECK(this->get_Height((double*)&Result));
    return Result;
  }

  double __fastcall get_Width(void)
  {
    double Result;
    OLECHECK(this->get_Width((double*)&Result));
    return Result;
  }

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum Result;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
    return Result;
  }

  double __fastcall get_ShelfX(void)
  {
    double Result;
    OLECHECK(this->get_ShelfX((double*)&Result));
    return Result;
  }

  double __fastcall get_ShelfY(void)
  {
    double Result;
    OLECHECK(this->get_ShelfY((double*)&Result));
    return Result;
  }

  ksContourFormEnum __fastcall get_Form(void)
  {
    ksContourFormEnum Result;
    OLECHECK(this->get_Form((ksContourFormEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  double __fastcall get_FilletRadius(void)
  {
    double Result;
    OLECHECK(this->get_FilletRadius((double*)&Result));
    return Result;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksContourFormEnum Form = {read = get_Form, write = set_Form};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};
  __property   double          FilletRadius = {read = get_FilletRadius, write = set_FilletRadius};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IUnitMarkings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {969AD901-FC09-47F5-94F5-1ABEB1A9C85C}
// *********************************************************************//
interface IUnitMarkings  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_UnitMarking(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IUnitMarkingPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IUnitMarkingPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IUnitMarkingPtr __fastcall get_UnitMarking(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IUnitMarkingPtr Result;
    OLECHECK(this->get_UnitMarking(Index, (Kompasltapi7_tlb::IUnitMarkingPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IUnitMarkingPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IUnitMarkingPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IUnitMarkingPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBuildingContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FD1FD236-F5BA-4FB0-A872-21FC13E6895F}
// *********************************************************************//
interface IBuildingContainer  : public IDispatch
{
public:
  // [5501]   .
  virtual HRESULT STDMETHODCALLTYPE get_BuildingAxes(Kompasltapi7_tlb::IBuildingAxesPtr* PVal/*[out,retval]*/) = 0;
  // [5502]   (   ).
  virtual HRESULT STDMETHODCALLTYPE get_Marks(Kompasltapi7_tlb::IMarksPtr* PVal/*[out,retval]*/) = 0;
  // [5503]     .
  virtual HRESULT STDMETHODCALLTYPE get_CutUnitMarkings(Kompasltapi7_tlb::ICutUnitMarkingsPtr* PVal/*[out,retval]*/) = 0;
  // [5504]   .
  virtual HRESULT STDMETHODCALLTYPE get_UnitMarkings(Kompasltapi7_tlb::IUnitMarkingsPtr* PVal/*[out,retval]*/) = 0;
  // [5505]      .
  virtual HRESULT STDMETHODCALLTYPE get_MultiTextLeaders(Kompasltapi7_tlb::IMultiTextLeadersPtr* PVal/*[out,retval]*/) = 0;
  // [5506]   .
  virtual HRESULT STDMETHODCALLTYPE get_UnitNumbers(Kompasltapi7_tlb::IUnitNumbersPtr* PVal/*[out,retval]*/) = 0;
  // [5507]   .
  virtual HRESULT STDMETHODCALLTYPE get_Braces(Kompasltapi7_tlb::IBracesPtr* PVal/*[out,retval]*/) = 0;
  // [5508]  / .
  virtual HRESULT STDMETHODCALLTYPE get_BuildingCutLines(Kompasltapi7_tlb::ICutLinesPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBuildingAxesPtr __fastcall get_BuildingAxes(void)
  {
    Kompasltapi7_tlb::IBuildingAxesPtr PVal;
    OLECHECK(this->get_BuildingAxes((Kompasltapi7_tlb::IBuildingAxesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMarksPtr __fastcall get_Marks(void)
  {
    Kompasltapi7_tlb::IMarksPtr PVal;
    OLECHECK(this->get_Marks((Kompasltapi7_tlb::IMarksPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ICutUnitMarkingsPtr __fastcall get_CutUnitMarkings(void)
  {
    Kompasltapi7_tlb::ICutUnitMarkingsPtr PVal;
    OLECHECK(this->get_CutUnitMarkings((Kompasltapi7_tlb::ICutUnitMarkingsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IUnitMarkingsPtr __fastcall get_UnitMarkings(void)
  {
    Kompasltapi7_tlb::IUnitMarkingsPtr PVal;
    OLECHECK(this->get_UnitMarkings((Kompasltapi7_tlb::IUnitMarkingsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IMultiTextLeadersPtr __fastcall get_MultiTextLeaders(void)
  {
    Kompasltapi7_tlb::IMultiTextLeadersPtr PVal;
    OLECHECK(this->get_MultiTextLeaders((Kompasltapi7_tlb::IMultiTextLeadersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IUnitNumbersPtr __fastcall get_UnitNumbers(void)
  {
    Kompasltapi7_tlb::IUnitNumbersPtr PVal;
    OLECHECK(this->get_UnitNumbers((Kompasltapi7_tlb::IUnitNumbersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IBracesPtr __fastcall get_Braces(void)
  {
    Kompasltapi7_tlb::IBracesPtr PVal;
    OLECHECK(this->get_Braces((Kompasltapi7_tlb::IBracesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ICutLinesPtr __fastcall get_BuildingCutLines(void)
  {
    Kompasltapi7_tlb::ICutLinesPtr PVal;
    OLECHECK(this->get_BuildingCutLines((Kompasltapi7_tlb::ICutLinesPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IBuildingAxesPtr BuildingAxes = {read = get_BuildingAxes};
  __property   Kompasltapi7_tlb::IMarksPtr Marks = {read = get_Marks};
  __property   Kompasltapi7_tlb::ICutUnitMarkingsPtr CutUnitMarkings = {read = get_CutUnitMarkings};
  __property   Kompasltapi7_tlb::IUnitMarkingsPtr UnitMarkings = {read = get_UnitMarkings};
  __property   Kompasltapi7_tlb::IMultiTextLeadersPtr MultiTextLeaders = {read = get_MultiTextLeaders};
  __property   Kompasltapi7_tlb::IUnitNumbersPtr UnitNumbers = {read = get_UnitNumbers};
  __property   Kompasltapi7_tlb::IBracesPtr Braces = {read = get_Braces};
  __property   Kompasltapi7_tlb::ICutLinesPtr BuildingCutLines = {read = get_BuildingCutLines};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMultiTextLeaders
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {233B2298-7A45-4CE1-AEF2-30B063FDB63C}
// *********************************************************************//
interface IMultiTextLeaders  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_MultiTextLeader(TVariantInParam Index/*[in]*/, 
                                                        Kompasltapi7_tlb::IMultiTextLeaderPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IMultiTextLeaderPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall get_MultiTextLeader(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IMultiTextLeaderPtr Result;
    OLECHECK(this->get_MultiTextLeader(Index, (Kompasltapi7_tlb::IMultiTextLeaderPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IMultiTextLeaderPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IMultiTextLeaderPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMultiTextLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1BFC5D3F-1483-4569-B4B5-7A12163A4655}
// *********************************************************************//
interface IMultiTextLeader  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]   -.
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType(ksArrowEnum* Result/*[out,retval]*/) = 0;
  // [1]   -.
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType(ksArrowEnum Result/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_BranchCount(long* Result/*[out,retval]*/) = 0;
  // [3]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchPoints(long Index/*[in]*/, 
                                                     TVariantInParam PVal/*[in]*/) = 0;
  // [3]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPoints(long Index/*[in]*/, 
                                                     TVariant* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPointsCount(long Index/*[in]*/, 
                                                          long* Result/*[out,retval]*/) = 0;
  // [5]      X.
  virtual HRESULT STDMETHODCALLTYPE set_BranchX(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [5]      X.
  virtual HRESULT STDMETHODCALLTYPE get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [6]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_BranchY(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [6]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, 
                                                     double Y/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteBranch(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10]     X.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* Result/*[out,retval]*/) = 0;
  // [10]     X.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double Result/*[in]*/) = 0;
  // [11]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* Result/*[out,retval]*/) = 0;
  // [11]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double Result/*[in]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/) = 0;
  // [13]   ( TRUE - , FALSE -  ).
  virtual HRESULT STDMETHODCALLTYPE get_TextDirection(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [13]   ( TRUE - , FALSE -  ).
  virtual HRESULT STDMETHODCALLTYPE set_TextDirection(TOLEBOOL Result/*[in]*/) = 0;
  // [14]   ( TRUE -  , FALSE -   ).
  virtual HRESULT STDMETHODCALLTYPE get_Form(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [14]   ( TRUE -  , FALSE -   ).
  virtual HRESULT STDMETHODCALLTYPE set_Form(TOLEBOOL Result/*[in]*/) = 0;
  // [15]  (TRUE -   , FALSE -    ).
  virtual HRESULT STDMETHODCALLTYPE get_Align(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [15]  (TRUE -   , FALSE -    ).
  virtual HRESULT STDMETHODCALLTYPE set_Align(TOLEBOOL Result/*[in]*/) = 0;
  // [16] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksArrowEnum __fastcall get_ArrowType(void)
  {
    ksArrowEnum Result;
    OLECHECK(this->get_ArrowType((ksArrowEnum*)&Result));
    return Result;
  }

  long __fastcall get_BranchCount(void)
  {
    long Result;
    OLECHECK(this->get_BranchCount((long*)&Result));
    return Result;
  }

  TVariant __fastcall get_BranchPoints(long Index/*[in]*/)
  {
    TVariant PVal;
    OLECHECK(this->get_BranchPoints(Index, (TVariant*)&PVal));
    return PVal;
  }

  long __fastcall get_BranchPointsCount(long Index/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_BranchPointsCount(Index, (long*)&Result));
    return Result;
  }

  double __fastcall get_BranchX(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_BranchX(Index, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_BranchY(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_BranchY(Index, (double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranch(Index, Points, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranchByPoint(Index, X, Y, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteBranch(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteBranch(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_ShelfX(void)
  {
    double Result;
    OLECHECK(this->get_ShelfX((double*)&Result));
    return Result;
  }

  double __fastcall get_ShelfY(void)
  {
    double Result;
    OLECHECK(this->get_ShelfY((double*)&Result));
    return Result;
  }

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum Result;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_TextDirection(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_TextDirection((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Form(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Form((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Align(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Align((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   long            BranchCount = {read = get_BranchCount};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        TextDirection = {read = get_TextDirection, write = set_TextDirection};
  __property   TOLEBOOL        Form = {read = get_Form, write = set_Form};
  __property   TOLEBOOL        Align = {read = get_Align, write = set_Align};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IUnitNumbers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {598E649B-970C-454B-9162-1BB6C9FBFCBF}
// *********************************************************************//
interface IUnitNumbers  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_UnitNumber(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IUnitNumberPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IUnitNumberPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IUnitNumberPtr __fastcall get_UnitNumber(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IUnitNumberPtr Result;
    OLECHECK(this->get_UnitNumber(Index, (Kompasltapi7_tlb::IUnitNumberPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IUnitNumberPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IUnitNumberPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IUnitNumberPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IUnitNumber
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FABAF607-CB92-47C4-9409-B7678162051D}
// *********************************************************************//
interface IUnitNumber  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1] X -   .
  virtual HRESULT STDMETHODCALLTYPE get_X(double* Result/*[out,retval]*/) = 0;
  // [1] X -   .
  virtual HRESULT STDMETHODCALLTYPE set_X(double Result/*[in]*/) = 0;
  // [2] Y -   .
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* Result/*[out,retval]*/) = 0;
  // [2] Y -   .
  virtual HRESULT STDMETHODCALLTYPE set_Y(double Result/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double Result;
    OLECHECK(this->get_X((double*)&Result));
    return Result;
  }

  double __fastcall get_Y(void)
  {
    double Result;
    OLECHECK(this->get_Y((double*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBraces
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {99F27BD6-6294-45D9-AF78-A9D52E9DD799}
// *********************************************************************//
interface IBraces  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_Brace(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IBracePtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IBracePtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBracePtr __fastcall get_Brace(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBracePtr Result;
    OLECHECK(this->get_Brace(Index, (Kompasltapi7_tlb::IBracePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBracePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IBracePtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IBracePtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBrace
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7F328D28-76E9-4E04-A35C-AD60339998E4}
// *********************************************************************//
interface IBrace  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* Result/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double Result/*[in]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/) = 0;
  // [8]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/) = 0;
  // [9]     X.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* Result/*[out,retval]*/) = 0;
  // [9]     X.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double Result/*[in]*/) = 0;
  // [10]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* Result/*[out,retval]*/) = 0;
  // [10]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double Result/*[in]*/) = 0;
  // [11]  (TRUE -  1, FALSE -  2).
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11]  (TRUE -  1, FALSE -  2).
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL Result/*[in]*/) = 0;
  // [12] .
  virtual HRESULT STDMETHODCALLTYPE get_Alignment(ksAlignmentTypeEnum* Result/*[out,retval]*/) = 0;
  // [12] .
  virtual HRESULT STDMETHODCALLTYPE set_Alignment(ksAlignmentTypeEnum Result/*[in]*/) = 0;
  // [13] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [13] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [14] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [15]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfPoints(TVariantInParam PVal/*[in]*/) = 0;
  // [15]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfPoints(TVariant* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double Result;
    OLECHECK(this->get_Radius((double*)&Result));
    return Result;
  }

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum Result;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
    return Result;
  }

  double __fastcall get_ShelfX(void)
  {
    double Result;
    OLECHECK(this->get_ShelfX((double*)&Result));
    return Result;
  }

  double __fastcall get_ShelfY(void)
  {
    double Result;
    OLECHECK(this->get_ShelfY((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Direction((TOLEBOOL*)&Result));
    return Result;
  }

  ksAlignmentTypeEnum __fastcall get_Alignment(void)
  {
    ksAlignmentTypeEnum Result;
    OLECHECK(this->get_Alignment((ksAlignmentTypeEnum*)&Result));
    return Result;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_ShelfPoints(void)
  {
    TVariant PVal;
    OLECHECK(this->get_ShelfPoints((TVariant*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   ksAlignmentTypeEnum Alignment = {read = get_Alignment, write = set_Alignment};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICutLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {666DA5B4-324C-493C-9A91-37D9E078EB4E}
// *********************************************************************//
interface ICutLines  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   /  .
  virtual HRESULT STDMETHODCALLTYPE get_CutLine(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ICutLinePtr* Result/*[out,retval]*/) = 0;
  // [2]   /  .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ICutLinePtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ICutLinePtr __fastcall get_CutLine(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICutLinePtr Result;
    OLECHECK(this->get_CutLine(Index, (Kompasltapi7_tlb::ICutLinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICutLinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ICutLinePtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::ICutLinePtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICutLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {26E86124-DC1C-41A2-8075-E73F3EAD8474}
// *********************************************************************//
interface ICutLine  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  (TRUE- , FALSE-    ).
  virtual HRESULT STDMETHODCALLTYPE get_ArrowPos(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1]  (TRUE- , FALSE-    ).
  virtual HRESULT STDMETHODCALLTYPE set_ArrowPos(TOLEBOOL Result/*[in]*/) = 0;
  // [2]      X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* Result/*[out,retval]*/) = 0;
  // [2]      X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double Result/*[in]*/) = 0;
  // [3]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* Result/*[out,retval]*/) = 0;
  // [3]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double Result/*[in]*/) = 0;
  // [4]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* Result/*[out,retval]*/) = 0;
  // [4]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double Result/*[in]*/) = 0;
  // [5]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* Result/*[out,retval]*/) = 0;
  // [5]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double Result/*[in]*/) = 0;
  // [6]  SAFEARRAY    /.
  virtual HRESULT STDMETHODCALLTYPE set_Points(TVariantInParam PVal/*[in]*/) = 0;
  // [6]  SAFEARRAY    /.
  virtual HRESULT STDMETHODCALLTYPE get_Points(TVariant* PVal/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSorted(TOLEBOOL Result/*[in]*/) = 0;
  // [8]    /.
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [9]    /.
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [10] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSheet(TOLEBOOL Result/*[in]*/) = 0;
  // [11] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoZone(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [11] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoZone(TOLEBOOL Result/*[in]*/) = 0;
  // [12]   (TRUE-   , FALSE-  ).
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalTextPos(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]   (TRUE-   , FALSE-  ).
  virtual HRESULT STDMETHODCALLTYPE set_AdditionalTextPos(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_ArrowPos(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ArrowPos((TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_X1(void)
  {
    double Result;
    OLECHECK(this->get_X1((double*)&Result));
    return Result;
  }

  double __fastcall get_Y1(void)
  {
    double Result;
    OLECHECK(this->get_Y1((double*)&Result));
    return Result;
  }

  double __fastcall get_X2(void)
  {
    double Result;
    OLECHECK(this->get_X2((double*)&Result));
    return Result;
  }

  double __fastcall get_Y2(void)
  {
    double Result;
    OLECHECK(this->get_Y2((double*)&Result));
    return Result;
  }

  TVariant __fastcall get_Points(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Points((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoSorted(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoSheet(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSheet((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoZone(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoZone((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AdditionalTextPos(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AdditionalTextPos((TOLEBOOL*)&Result));
    return Result;
  }


  __property   TOLEBOOL        ArrowPos = {read = get_ArrowPos, write = set_ArrowPos};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   TOLEBOOL        AdditionalTextPos = {read = get_AdditionalTextPos, write = set_AdditionalTextPos};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ISymbols2DContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F46B0086-17F2-4489-A5A7-0AA677610AFD}
// *********************************************************************//
interface ISymbols2DContainer  : public IDispatch
{
public:
  // [10001]  .
  virtual HRESULT STDMETHODCALLTYPE get_LineDimensions(Kompasltapi7_tlb::ILineDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10002]  .
  virtual HRESULT STDMETHODCALLTYPE get_RadialDimensions(Kompasltapi7_tlb::IRadialDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10003]  .
  virtual HRESULT STDMETHODCALLTYPE get_DiametralDimensions(Kompasltapi7_tlb::IDiametralDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10004]  .
  virtual HRESULT STDMETHODCALLTYPE get_AngleDimensions(Kompasltapi7_tlb::IAngleDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10005]    .
  virtual HRESULT STDMETHODCALLTYPE get_BreakLineDimensions(Kompasltapi7_tlb::IBreakLineDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10006]  .
  virtual HRESULT STDMETHODCALLTYPE get_HeightDimensions(Kompasltapi7_tlb::IHeightDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10007]   .
  virtual HRESULT STDMETHODCALLTYPE get_ArcDimensions(Kompasltapi7_tlb::IArcDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10008]    .
  virtual HRESULT STDMETHODCALLTYPE get_BreakRadialDimensions(Kompasltapi7_tlb::IBreakRadialDimensionsPtr* PVal/*[out,retval]*/) = 0;
  // [10009]  .
  virtual HRESULT STDMETHODCALLTYPE get_Roughs(Kompasltapi7_tlb::IRoughsPtr* PVal/*[out,retval]*/) = 0;
  // [10010]  .
  virtual HRESULT STDMETHODCALLTYPE get_Leaders(Kompasltapi7_tlb::ILeadersPtr* PVal/*[out,retval]*/) = 0;
  // [10011]  .
  virtual HRESULT STDMETHODCALLTYPE get_Bases(Kompasltapi7_tlb::IBasesPtr* PVal/*[out,retval]*/) = 0;
  // [10012]  .
  virtual HRESULT STDMETHODCALLTYPE get_Tolerances(Kompasltapi7_tlb::ITolerancesPtr* PVal/*[out,retval]*/) = 0;
  // [10013] .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingTables(Kompasltapi7_tlb::IDrawingTablesPtr* PVal/*[out,retval]*/) = 0;
  // [10014]  /.
  virtual HRESULT STDMETHODCALLTYPE get_CutLines(Kompasltapi7_tlb::ICutLinesPtr* PVal/*[out,retval]*/) = 0;
  // [10015]  .
  virtual HRESULT STDMETHODCALLTYPE get_ViewPointers(Kompasltapi7_tlb::IViewPointersPtr* PVal/*[out,retval]*/) = 0;
  // [10016]   .
  virtual HRESULT STDMETHODCALLTYPE get_CentreMarkers(Kompasltapi7_tlb::ICentreMarkersPtr* PVal/*[out,retval]*/) = 0;
  // [10017]   .
  virtual HRESULT STDMETHODCALLTYPE get_RemoteElements(Kompasltapi7_tlb::IRemoteElementsPtr* PVal/*[out,retval]*/) = 0;
  // [10018]   .
  virtual HRESULT STDMETHODCALLTYPE get_AxisLines(Kompasltapi7_tlb::IAxisLinesPtr* PVal/*[out,retval]*/) = 0;
  // [10019]   .
  virtual HRESULT STDMETHODCALLTYPE get_WaveLines(Kompasltapi7_tlb::IWaveLinesPtr* PVal/*[out,retval]*/) = 0;
  // [10020]     .
  virtual HRESULT STDMETHODCALLTYPE get_BrokenLines(Kompasltapi7_tlb::IBrokenLinesPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILineDimensionsPtr __fastcall get_LineDimensions(void)
  {
    Kompasltapi7_tlb::ILineDimensionsPtr PVal;
    OLECHECK(this->get_LineDimensions((Kompasltapi7_tlb::ILineDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRadialDimensionsPtr __fastcall get_RadialDimensions(void)
  {
    Kompasltapi7_tlb::IRadialDimensionsPtr PVal;
    OLECHECK(this->get_RadialDimensions((Kompasltapi7_tlb::IRadialDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDiametralDimensionsPtr __fastcall get_DiametralDimensions(void)
  {
    Kompasltapi7_tlb::IDiametralDimensionsPtr PVal;
    OLECHECK(this->get_DiametralDimensions((Kompasltapi7_tlb::IDiametralDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAngleDimensionsPtr __fastcall get_AngleDimensions(void)
  {
    Kompasltapi7_tlb::IAngleDimensionsPtr PVal;
    OLECHECK(this->get_AngleDimensions((Kompasltapi7_tlb::IAngleDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IBreakLineDimensionsPtr __fastcall get_BreakLineDimensions(void)
  {
    Kompasltapi7_tlb::IBreakLineDimensionsPtr PVal;
    OLECHECK(this->get_BreakLineDimensions((Kompasltapi7_tlb::IBreakLineDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IHeightDimensionsPtr __fastcall get_HeightDimensions(void)
  {
    Kompasltapi7_tlb::IHeightDimensionsPtr PVal;
    OLECHECK(this->get_HeightDimensions((Kompasltapi7_tlb::IHeightDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IArcDimensionsPtr __fastcall get_ArcDimensions(void)
  {
    Kompasltapi7_tlb::IArcDimensionsPtr PVal;
    OLECHECK(this->get_ArcDimensions((Kompasltapi7_tlb::IArcDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IBreakRadialDimensionsPtr __fastcall get_BreakRadialDimensions(void)
  {
    Kompasltapi7_tlb::IBreakRadialDimensionsPtr PVal;
    OLECHECK(this->get_BreakRadialDimensions((Kompasltapi7_tlb::IBreakRadialDimensionsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRoughsPtr __fastcall get_Roughs(void)
  {
    Kompasltapi7_tlb::IRoughsPtr PVal;
    OLECHECK(this->get_Roughs((Kompasltapi7_tlb::IRoughsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ILeadersPtr __fastcall get_Leaders(void)
  {
    Kompasltapi7_tlb::ILeadersPtr PVal;
    OLECHECK(this->get_Leaders((Kompasltapi7_tlb::ILeadersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IBasesPtr __fastcall get_Bases(void)
  {
    Kompasltapi7_tlb::IBasesPtr PVal;
    OLECHECK(this->get_Bases((Kompasltapi7_tlb::IBasesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITolerancesPtr __fastcall get_Tolerances(void)
  {
    Kompasltapi7_tlb::ITolerancesPtr PVal;
    OLECHECK(this->get_Tolerances((Kompasltapi7_tlb::ITolerancesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingTablesPtr __fastcall get_DrawingTables(void)
  {
    Kompasltapi7_tlb::IDrawingTablesPtr PVal;
    OLECHECK(this->get_DrawingTables((Kompasltapi7_tlb::IDrawingTablesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ICutLinesPtr __fastcall get_CutLines(void)
  {
    Kompasltapi7_tlb::ICutLinesPtr PVal;
    OLECHECK(this->get_CutLines((Kompasltapi7_tlb::ICutLinesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IViewPointersPtr __fastcall get_ViewPointers(void)
  {
    Kompasltapi7_tlb::IViewPointersPtr PVal;
    OLECHECK(this->get_ViewPointers((Kompasltapi7_tlb::IViewPointersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ICentreMarkersPtr __fastcall get_CentreMarkers(void)
  {
    Kompasltapi7_tlb::ICentreMarkersPtr PVal;
    OLECHECK(this->get_CentreMarkers((Kompasltapi7_tlb::ICentreMarkersPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IRemoteElementsPtr __fastcall get_RemoteElements(void)
  {
    Kompasltapi7_tlb::IRemoteElementsPtr PVal;
    OLECHECK(this->get_RemoteElements((Kompasltapi7_tlb::IRemoteElementsPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IAxisLinesPtr __fastcall get_AxisLines(void)
  {
    Kompasltapi7_tlb::IAxisLinesPtr PVal;
    OLECHECK(this->get_AxisLines((Kompasltapi7_tlb::IAxisLinesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IWaveLinesPtr __fastcall get_WaveLines(void)
  {
    Kompasltapi7_tlb::IWaveLinesPtr PVal;
    OLECHECK(this->get_WaveLines((Kompasltapi7_tlb::IWaveLinesPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IBrokenLinesPtr __fastcall get_BrokenLines(void)
  {
    Kompasltapi7_tlb::IBrokenLinesPtr PVal;
    OLECHECK(this->get_BrokenLines((Kompasltapi7_tlb::IBrokenLinesPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ILineDimensionsPtr LineDimensions = {read = get_LineDimensions};
  __property   Kompasltapi7_tlb::IRadialDimensionsPtr RadialDimensions = {read = get_RadialDimensions};
  __property   Kompasltapi7_tlb::IDiametralDimensionsPtr DiametralDimensions = {read = get_DiametralDimensions};
  __property   Kompasltapi7_tlb::IAngleDimensionsPtr AngleDimensions = {read = get_AngleDimensions};
  __property   Kompasltapi7_tlb::IBreakLineDimensionsPtr BreakLineDimensions = {read = get_BreakLineDimensions};
  __property   Kompasltapi7_tlb::IHeightDimensionsPtr HeightDimensions = {read = get_HeightDimensions};
  __property   Kompasltapi7_tlb::IArcDimensionsPtr ArcDimensions = {read = get_ArcDimensions};
  __property   Kompasltapi7_tlb::IBreakRadialDimensionsPtr BreakRadialDimensions = {read = get_BreakRadialDimensions};
  __property   Kompasltapi7_tlb::IRoughsPtr Roughs = {read = get_Roughs};
  __property   Kompasltapi7_tlb::ILeadersPtr Leaders = {read = get_Leaders};
  __property   Kompasltapi7_tlb::IBasesPtr Bases = {read = get_Bases};
  __property   Kompasltapi7_tlb::ITolerancesPtr Tolerances = {read = get_Tolerances};
  __property   Kompasltapi7_tlb::IDrawingTablesPtr DrawingTables = {read = get_DrawingTables};
  __property   Kompasltapi7_tlb::ICutLinesPtr CutLines = {read = get_CutLines};
  __property   Kompasltapi7_tlb::IViewPointersPtr ViewPointers = {read = get_ViewPointers};
  __property   Kompasltapi7_tlb::ICentreMarkersPtr CentreMarkers = {read = get_CentreMarkers};
  __property   Kompasltapi7_tlb::IRemoteElementsPtr RemoteElements = {read = get_RemoteElements};
  __property   Kompasltapi7_tlb::IAxisLinesPtr AxisLines = {read = get_AxisLines};
  __property   Kompasltapi7_tlb::IWaveLinesPtr WaveLines = {read = get_WaveLines};
  __property   Kompasltapi7_tlb::IBrokenLinesPtr BrokenLines = {read = get_BrokenLines};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILineDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6F6A18A-78FA-4A77-BB75-90647E0C545C}
// *********************************************************************//
interface ILineDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_LineDimension(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::ILineDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ILineDimensionPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ILineDimensionPtr __fastcall get_LineDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ILineDimensionPtr Result;
    OLECHECK(this->get_LineDimension(Index, (Kompasltapi7_tlb::ILineDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ILineDimensionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ILineDimensionPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::ILineDimensionPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILineDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A3767BDA-E605-4FC1-988D-81809DEB36F4}
// *********************************************************************//
interface ILineDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [1]     -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [2]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [2]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [3]     -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [3]     -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [4]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [4]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [5]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X3(double* PVal/*[out,retval]*/) = 0;
  // [5]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X3(double PVal/*[in]*/) = 0;
  // [6]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y3(double* PVal/*[out,retval]*/) = 0;
  // [6]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y3(double PVal/*[in]*/) = 0;
  // [7]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* PVal/*[out,retval]*/) = 0;
  // [7]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double PVal/*[in]*/) = 0;
  // [8]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* PVal/*[out,retval]*/) = 0;
  // [8]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double PVal/*[in]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_Orientation(ksLineDimensionOrientationEnum* PVal/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE set_Orientation(ksLineDimensionOrientationEnum PVal/*[in]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X3(void)
  {
    double PVal;
    OLECHECK(this->get_X3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y3(void)
  {
    double PVal;
    OLECHECK(this->get_Y3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfX(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfX((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfY(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfY((double*)&PVal));
    return PVal;
  }

  ksLineDimensionOrientationEnum __fastcall get_Orientation(void)
  {
    ksLineDimensionOrientationEnum PVal;
    OLECHECK(this->get_Orientation((ksLineDimensionOrientationEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksLineDimensionOrientationEnum Orientation = {read = get_Orientation, write = set_Orientation};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRadialDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {12D26993-449E-42E2-A909-B047AFD6E27D}
// *********************************************************************//
interface IRadialDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_RadialDimension(TVariantInParam Index/*[in]*/, 
                                                        Kompasltapi7_tlb::IRadialDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRadialDimensionPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRadialDimensionPtr __fastcall get_RadialDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRadialDimensionPtr Result;
    OLECHECK(this->get_RadialDimension(Index, (Kompasltapi7_tlb::IRadialDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRadialDimensionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRadialDimensionPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRadialDimensionPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRadialDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {712A9437-D772-4EAE-AF83-ABC9C22EB281}
// *********************************************************************//
interface IRadialDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [4]    (   ).
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]    (   ).
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DimensionType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDiametralDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8E45FEB9-7BCD-4C9F-9767-320736980662}
// *********************************************************************//
interface IDiametralDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_DiametralDimension(TVariantInParam Index/*[in]*/, 
                                                           Kompasltapi7_tlb::IDiametralDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IDiametralDimensionPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall get_DiametralDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDiametralDimensionPtr Result;
    OLECHECK(this->get_DiametralDimension(Index, (Kompasltapi7_tlb::IDiametralDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IDiametralDimensionPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IDiametralDimensionPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDiametralDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2B4CE92F-438D-4D3E-8F8D-4D14E5D0E214}
// *********************************************************************//
interface IDiametralDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [4]    (     ).
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [4]    (     ).
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [5]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DimensionType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAngleDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DF9ABB77-BBB6-4B29-A0E0-81DCFD525C2E}
// *********************************************************************//
interface IAngleDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_AngleDimension(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::IAngleDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                                        Kompasltapi7_tlb::IAngleDimensionPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAngleDimensionPtr __fastcall get_AngleDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAngleDimensionPtr Result;
    OLECHECK(this->get_AngleDimension(Index, (Kompasltapi7_tlb::IAngleDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAngleDimensionPtr __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/)
  {
    Kompasltapi7_tlb::IAngleDimensionPtr Value;
    OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IAngleDimensionPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAngleDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0F2CE9EC-5D2A-4B21-B96A-46201C120ED1}
// *********************************************************************//
interface IAngleDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [3]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE set_Angle1(double PVal/*[in]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_Angle1(double* PVal/*[out,retval]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE set_Angle2(double PVal/*[in]*/) = 0;
  // [5]     .
  virtual HRESULT STDMETHODCALLTYPE get_Angle2(double* PVal/*[out,retval]*/) = 0;
  // [6]        X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [6]        X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [7]        Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [7]        Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [8]        X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [8]        X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [9]        Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [9]        Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [10]   1.
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [10]   1.
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;
  // [11]   2.
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [11]   2.
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/) = 0;
  // [13]   .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* PVal/*[out,retval]*/) = 0;
  // [13]   .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double PVal/*[in]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* PVal/*[out,retval]*/) = 0;
  // [14]   .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double PVal/*[in]*/) = 0;
  // [15]   . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [15]   . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [16]      .
  virtual HRESULT STDMETHODCALLTYPE set_X3(double PVal/*[in]*/) = 0;
  // [16]      .
  virtual HRESULT STDMETHODCALLTYPE get_X3(double* PVal/*[out,retval]*/) = 0;
  // [17]      .
  virtual HRESULT STDMETHODCALLTYPE set_Y3(double PVal/*[in]*/) = 0;
  // [17]      .
  virtual HRESULT STDMETHODCALLTYPE get_Y3(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle1(void)
  {
    double PVal;
    OLECHECK(this->get_Angle1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle2(void)
  {
    double PVal;
    OLECHECK(this->get_Angle2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject1(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject1((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject2(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject2((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }

  ksAngleDimTypeEnum __fastcall get_DimensionType(void)
  {
    ksAngleDimTypeEnum PVal;
    OLECHECK(this->get_DimensionType((ksAngleDimTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfX(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfX((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfY(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfY((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_X3(void)
  {
    double PVal;
    OLECHECK(this->get_X3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y3(void)
  {
    double PVal;
    OLECHECK(this->get_Y3((double*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject1 = {read = get_BaseObject1, write = set_BaseObject1};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject2 = {read = get_BaseObject2, write = set_BaseObject2};
  __property   ksAngleDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBreakLineDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4125169F-3EA8-4AC0-9E1B-5582D62600C4}
// *********************************************************************//
interface IBreakLineDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_BreakLineDimension(TVariantInParam Index/*[in]*/, 
                                                           Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall get_BreakLineDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBreakLineDimensionPtr Result;
    OLECHECK(this->get_BreakLineDimension(Index, (Kompasltapi7_tlb::IBreakLineDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IBreakLineDimensionPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IBreakLineDimensionPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBreakLineDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {61164A26-855C-4220-88ED-C2BDAF49B2DB}
// *********************************************************************//
interface IBreakLineDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [1]     -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [2]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [2]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [3]     -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [3]     -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [4]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [4]     -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [5]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X3(double* PVal/*[out,retval]*/) = 0;
  // [5]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X3(double PVal/*[in]*/) = 0;
  // [6]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y3(double* PVal/*[out,retval]*/) = 0;
  // [6]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y3(double PVal/*[in]*/) = 0;
  // [7]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* PVal/*[out,retval]*/) = 0;
  // [7]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double PVal/*[in]*/) = 0;
  // [8]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* PVal/*[out,retval]*/) = 0;
  // [8]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double PVal/*[in]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X3(void)
  {
    double PVal;
    OLECHECK(this->get_X3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y3(void)
  {
    double PVal;
    OLECHECK(this->get_Y3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfX(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfX((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfY(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfY((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IHeightDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3A56D35C-3242-4C49-BA99-CF790EB10356}
// *********************************************************************//
interface IHeightDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]  ,   .
  virtual HRESULT STDMETHODCALLTYPE get_HeightDimension(TVariantInParam Index/*[in]*/, 
                                                        Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IHeightDimensionPtr __fastcall get_HeightDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IHeightDimensionPtr Result;
    OLECHECK(this->get_HeightDimension(Index, (Kompasltapi7_tlb::IHeightDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IHeightDimensionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IHeightDimensionPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IHeightDimensionPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IHeightDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {938BE57F-55FF-469F-82A5-B1CD6CCF8340}
// *********************************************************************//
interface IHeightDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(ksHeightDimTypeEnum* PVal/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(ksHeightDimTypeEnum PVal/*[in]*/) = 0;
  // [2]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [2]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [3]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [3]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [4]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [4]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [5]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [5]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [6]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [6]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [7]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [7]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksHeightDimTypeEnum __fastcall get_DimensionType(void)
  {
    ksHeightDimTypeEnum PVal;
    OLECHECK(this->get_DimensionType((ksHeightDimTypeEnum*)&PVal));
    return PVal;
  }

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }


  __property   ksHeightDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IArcDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FE2755D9-48E2-44CC-BC24-86CF86BE08E2}
// *********************************************************************//
interface IArcDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]    ,   .
  virtual HRESULT STDMETHODCALLTYPE get_ArcDimension(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IArcDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IArcDimensionPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IArcDimensionPtr __fastcall get_ArcDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IArcDimensionPtr Result;
    OLECHECK(this->get_ArcDimension(Index, (Kompasltapi7_tlb::IArcDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IArcDimensionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IArcDimensionPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IArcDimensionPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IArcDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {11487495-B18A-4877-9E85-3DC9016DF8BD}
// *********************************************************************//
interface IArcDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;
  // [2]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [2]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [3]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [3]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [8]     .
  virtual HRESULT STDMETHODCALLTYPE get_X3(double* PVal/*[out,retval]*/) = 0;
  // [8]     .
  virtual HRESULT STDMETHODCALLTYPE set_X3(double PVal/*[in]*/) = 0;
  // [9]     .
  virtual HRESULT STDMETHODCALLTYPE get_Y3(double* PVal/*[out,retval]*/) = 0;
  // [9]     .
  virtual HRESULT STDMETHODCALLTYPE set_Y3(double PVal/*[in]*/) = 0;
  // [10]    -  X.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* PVal/*[out,retval]*/) = 0;
  // [10]    -  X.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double PVal/*[in]*/) = 0;
  // [11]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* PVal/*[out,retval]*/) = 0;
  // [11]    -  Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double PVal/*[in]*/) = 0;
  // [12]   . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [12]   . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [13]   (     ).
  virtual HRESULT STDMETHODCALLTYPE get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [13]   (     ).
  virtual HRESULT STDMETHODCALLTYPE set_DimensionType(TOLEBOOL PVal/*[in]*/) = 0;
  // [14]     .
  virtual HRESULT STDMETHODCALLTYPE get_TextPointer(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [14]     .
  virtual HRESULT STDMETHODCALLTYPE set_TextPointer(TOLEBOOL PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X3(void)
  {
    double PVal;
    OLECHECK(this->get_X3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y3(void)
  {
    double PVal;
    OLECHECK(this->get_Y3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfX(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfX((double*)&PVal));
    return PVal;
  }

  double __fastcall get_ShelfY(void)
  {
    double PVal;
    OLECHECK(this->get_ShelfY((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DimensionType(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_TextPointer(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_TextPointer((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   TOLEBOOL        TextPointer = {read = get_TextPointer, write = set_TextPointer};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBreakRadialDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E2181A3E-5417-4D73-AB65-983DED3438E0}
// *********************************************************************//
interface IBreakRadialDimensions  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     ,   .
  virtual HRESULT STDMETHODCALLTYPE get_BreakRadialDimension(TVariantInParam Index/*[in]*/, 
                                                             Kompasltapi7_tlb::IBreakRadialDimensionPtr* Result/*[out,retval]*/) = 0;
  // [2]       .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IBreakRadialDimensionPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall get_BreakRadialDimension(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBreakRadialDimensionPtr Result;
    OLECHECK(this->get_BreakRadialDimension(Index, (Kompasltapi7_tlb::IBreakRadialDimensionPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IBreakRadialDimensionPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IBreakRadialDimensionPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBreakRadialDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88491537-9E93-42F3-861C-761A75BB89D6}
// *********************************************************************//
interface IBreakRadialDimension  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [1]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [2]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [3] .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE get_BreakLength(double* PVal/*[out,retval]*/) = 0;
  // [6]  .
  virtual HRESULT STDMETHODCALLTYPE set_BreakLength(double PVal/*[in]*/) = 0;
  // [7]    c  .
  virtual HRESULT STDMETHODCALLTYPE get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/) = 0;
  // [7]    c  .
  virtual HRESULT STDMETHODCALLTYPE set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_BreakLength(void)
  {
    double PVal;
    OLECHECK(this->get_BreakLength((double*)&PVal));
    return PVal;
  }

  ksDimensionTextPosEnum __fastcall get_TextOnLine(void)
  {
    ksDimensionTextPosEnum PVal;
    OLECHECK(this->get_TextOnLine((ksDimensionTextPosEnum*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          BreakLength = {read = get_BreakLength, write = set_BreakLength};
  __property   ksDimensionTextPosEnum TextOnLine = {read = get_TextOnLine, write = set_TextOnLine};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRoughs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {ACC42B32-27F3-4F74-B4A5-C97D4C7B289D}
// *********************************************************************//
interface IRoughs  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_Rough(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IRoughPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRoughPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRoughPtr __fastcall get_Rough(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRoughPtr Result;
    OLECHECK(this->get_Rough(Index, (Kompasltapi7_tlb::IRoughPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRoughPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRoughPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRoughPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRough
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0A192AC5-D8BC-43E9-8FC7-ACF32578DDB4}
// *********************************************************************//
interface IRough  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* NewObject/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr NewObject/*[in]*/) = 0;
  // [2]         .
  virtual HRESULT STDMETHODCALLTYPE get_X0(double* Result/*[out,retval]*/) = 0;
  // [2]         .
  virtual HRESULT STDMETHODCALLTYPE set_X0(double Result/*[in]*/) = 0;
  // [3]         Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y0(double* Result/*[out,retval]*/) = 0;
  // [3]         Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y0(double Result/*[in]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfX(double* Result/*[out,retval]*/) = 0;
  // [4]     .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfX(double Result/*[in]*/) = 0;
  // [5]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_ShelfY(double* Result/*[out,retval]*/) = 0;
  // [5]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_ShelfY(double Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr NewObject;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&NewObject));
    return NewObject;
  }

  double __fastcall get_X0(void)
  {
    double Result;
    OLECHECK(this->get_X0((double*)&Result));
    return Result;
  }

  double __fastcall get_Y0(void)
  {
    double Result;
    OLECHECK(this->get_Y0((double*)&Result));
    return Result;
  }

  double __fastcall get_ShelfX(void)
  {
    double Result;
    OLECHECK(this->get_ShelfX((double*)&Result));
    return Result;
  }

  double __fastcall get_ShelfY(void)
  {
    double Result;
    OLECHECK(this->get_ShelfY((double*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILeaders
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BA2D820C-0DB9-47C6-A32D-34C7D8BA1B2F}
// *********************************************************************//
interface ILeaders  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_Leader(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IBaseLeaderPtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                                        Kompasltapi7_tlb::IBaseLeaderPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBaseLeaderPtr __fastcall get_Leader(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBaseLeaderPtr Result;
    OLECHECK(this->get_Leader(Index, (Kompasltapi7_tlb::IBaseLeaderPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBaseLeaderPtr __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/)
  {
    Kompasltapi7_tlb::IBaseLeaderPtr Value;
    OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IBaseLeaderPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBaseLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1AF590A9-C339-477A-9F22-799C04D20BB4}
// *********************************************************************//
interface IBaseLeader  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [4001]   -.
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType(ksArrowEnum* Result/*[out,retval]*/) = 0;
  // [4001]   -.
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType(ksArrowEnum Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksArrowEnum __fastcall get_ArrowType(void)
  {
    ksArrowEnum Result;
    OLECHECK(this->get_ArrowType((ksArrowEnum*)&Result));
    return Result;
  }


  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBases
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C607727C-6B0A-4FB6-AFCA-ED9D83F5C6B7}
// *********************************************************************//
interface IBases  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_Base(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IBasePtr* Result/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IBasePtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBasePtr __fastcall get_Base(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBasePtr Result;
    OLECHECK(this->get_Base(Index, (Kompasltapi7_tlb::IBasePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBasePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IBasePtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IBasePtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBase
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {01CDFD67-69EA-4289-8F42-5B01BB9BF70B}
// *********************************************************************//
interface IBase  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/) = 0;
  // [2]  X    .
  virtual HRESULT STDMETHODCALLTYPE get_X0(double* Result/*[out,retval]*/) = 0;
  // [2]  X    .
  virtual HRESULT STDMETHODCALLTYPE set_X0(double Result/*[in]*/) = 0;
  // [3]  Y    .
  virtual HRESULT STDMETHODCALLTYPE get_Y0(double* Result/*[out,retval]*/) = 0;
  // [3]  Y    .
  virtual HRESULT STDMETHODCALLTYPE set_Y0(double Result/*[in]*/) = 0;
  // [4]  X   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchX(double* Result/*[out,retval]*/) = 0;
  // [4]  X   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchX(double Result/*[in]*/) = 0;
  // [5]  Y   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchY(double* Result/*[out,retval]*/) = 0;
  // [5]  Y   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchY(double Result/*[in]*/) = 0;
  // [6]    (TRUE-   , FALSE-  ).
  virtual HRESULT STDMETHODCALLTYPE get_DrawType(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]    (TRUE-   , FALSE-  ).
  virtual HRESULT STDMETHODCALLTYPE set_DrawType(TOLEBOOL Result/*[in]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSorted(TOLEBOOL Result/*[in]*/) = 0;
  // [8] .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Object1;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
    return Object1;
  }

  double __fastcall get_X0(void)
  {
    double Result;
    OLECHECK(this->get_X0((double*)&Result));
    return Result;
  }

  double __fastcall get_Y0(void)
  {
    double Result;
    OLECHECK(this->get_Y0((double*)&Result));
    return Result;
  }

  double __fastcall get_BranchX(void)
  {
    double Result;
    OLECHECK(this->get_BranchX((double*)&Result));
    return Result;
  }

  double __fastcall get_BranchY(void)
  {
    double Result;
    OLECHECK(this->get_BranchY((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_DrawType(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_DrawType((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoSorted(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   double          BranchX = {read = get_BranchX, write = set_BranchX};
  __property   double          BranchY = {read = get_BranchY, write = set_BranchY};
  __property   TOLEBOOL        DrawType = {read = get_DrawType, write = set_DrawType};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITolerances
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {97CDD55F-3C64-469B-B26E-A927D3300B6C}
// *********************************************************************//
interface ITolerances  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_Tolerance(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::ITolerancePtr* Result/*[out,retval]*/) = 0;
  // [2]      .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ITolerancePtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ITolerancePtr __fastcall get_Tolerance(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ITolerancePtr Result;
    OLECHECK(this->get_Tolerance(Index, (Kompasltapi7_tlb::ITolerancePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITolerancePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ITolerancePtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::ITolerancePtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ITolerance
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42DEF911-ADB2-478C-85F1-D5FEFA262EEC}
// *********************************************************************//
interface ITolerance  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]    ( TRUE / FALSE ).
  virtual HRESULT STDMETHODCALLTYPE get_ArrowType(long Index/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1]    ( TRUE / FALSE ).
  virtual HRESULT STDMETHODCALLTYPE set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPos(long Index/*[in]*/, 
                                                  ksTablePointEnum* Result/*[out,retval]*/) = 0;
  // [2]  .
  virtual HRESULT STDMETHODCALLTYPE set_BranchPos(long Index/*[in]*/, 
                                                  ksTablePointEnum Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_ArrowType(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ArrowType(Index, (TOLEBOOL*)&Result));
    return Result;
  }

  ksTablePointEnum __fastcall get_BranchPos(long Index/*[in]*/)
  {
    ksTablePointEnum Result;
    OLECHECK(this->get_BranchPos(Index, (ksTablePointEnum*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingTables
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DF92DACE-BDC6-4341-86DA-3A9C8DCFDEFE}
// *********************************************************************//
interface IDrawingTables  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]    .
  virtual HRESULT STDMETHODCALLTYPE get_DrawingTable(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IDrawingTablePtr* Result/*[out,retval]*/) = 0;
  // [2]    .
  virtual HRESULT STDMETHODCALLTYPE Add(long RowsCount/*[in]*/, long ColumnsCount/*[in]*/, 
                                        double RowHeigh/*[in]*/, double ColumnsWidth/*[in]*/, 
                                        ksTableTileLayoutEnum TitlePos/*[in]*/, 
                                        Kompasltapi7_tlb::IDrawingTablePtr* Value/*[out,retval]*/) = 0;
  // [3]    .
  virtual HRESULT STDMETHODCALLTYPE Load(BSTR FileName, 
                                         Kompasltapi7_tlb::IDrawingTablePtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingTablePtr __fastcall get_DrawingTable(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IDrawingTablePtr Result;
    OLECHECK(this->get_DrawingTable(Index, (Kompasltapi7_tlb::IDrawingTablePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IDrawingTablePtr __fastcall Add(long RowsCount/*[in]*/, 
                                                    long ColumnsCount/*[in]*/, 
                                                    double RowHeigh/*[in]*/, 
                                                    double ColumnsWidth/*[in]*/, 
                                                    ksTableTileLayoutEnum TitlePos/*[in]*/)
  {
    Kompasltapi7_tlb::IDrawingTablePtr Value;
    OLECHECK(this->Add(RowsCount, ColumnsCount, RowHeigh, ColumnsWidth, TitlePos, (Kompasltapi7_tlb::IDrawingTablePtr*)&Value));
    return Value;
  }

  Kompasltapi7_tlb::IDrawingTablePtr __fastcall Load(BSTR FileName)
  {
    Kompasltapi7_tlb::IDrawingTablePtr PVal;
    OLECHECK(this->Load(FileName, (Kompasltapi7_tlb::IDrawingTablePtr*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IDrawingTable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9B421BDA-0444-4A68-B69C-1C05D05C9D28}
// *********************************************************************//
interface IDrawingTable  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE get_X(double* Result/*[out,retval]*/) = 0;
  // [1]     .
  virtual HRESULT STDMETHODCALLTYPE set_X(double Result/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* Result/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double Result/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [3]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE set_FixedCellsSize(TOLEBOOL PVal/*[in]*/) = 0;
  // [4]   .
  virtual HRESULT STDMETHODCALLTYPE get_FixedCellsSize(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE set_FixedRowCount(TOLEBOOL PVal/*[in]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE get_FixedRowCount(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE set_FixedColumnCount(TOLEBOOL PVal/*[in]*/) = 0;
  // [6]    .
  virtual HRESULT STDMETHODCALLTYPE get_FixedColumnCount(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]   .
  virtual HRESULT STDMETHODCALLTYPE Save(BSTR FileName, TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X(void)
  {
    double Result;
    OLECHECK(this->get_X((double*)&Result));
    return Result;
  }

  double __fastcall get_Y(void)
  {
    double Result;
    OLECHECK(this->get_Y((double*)&Result));
    return Result;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FixedCellsSize(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FixedCellsSize((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FixedRowCount(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FixedRowCount((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_FixedColumnCount(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_FixedColumnCount((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall Save(BSTR FileName)
  {
    TOLEBOOL PVal;
    OLECHECK(this->Save(FileName, (TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        FixedCellsSize = {read = get_FixedCellsSize, write = set_FixedCellsSize};
  __property   TOLEBOOL        FixedRowCount = {read = get_FixedRowCount, write = set_FixedRowCount};
  __property   TOLEBOOL        FixedColumnCount = {read = get_FixedColumnCount, write = set_FixedColumnCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IViewPointers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {08B45C97-6F86-4809-BBC3-78F216BD0430}
// *********************************************************************//
interface IViewPointers  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   .
  virtual HRESULT STDMETHODCALLTYPE get_ViewPointer(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IViewPointerPtr* Result/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IViewPointerPtr* Value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IViewPointerPtr __fastcall get_ViewPointer(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IViewPointerPtr Result;
    OLECHECK(this->get_ViewPointer(Index, (Kompasltapi7_tlb::IViewPointerPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IViewPointerPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IViewPointerPtr Value;
    OLECHECK(this->Add((Kompasltapi7_tlb::IViewPointerPtr*)&Value));
    return Value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IViewPointer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EE98177-63E8-4C48-89AD-3D5CCCF84D72}
// *********************************************************************//
interface IViewPointer  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* Result/*[out,retval]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double Result/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* Result/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double Result/*[in]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* Result/*[out,retval]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double Result/*[in]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* Result/*[out,retval]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double Result/*[in]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE get_TextX(double* Result/*[out,retval]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE set_TextX(double Result/*[in]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_TextY(double* Result/*[out,retval]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_TextY(double Result/*[in]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSorted(TOLEBOOL Result/*[in]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSheet(TOLEBOOL Result/*[in]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE get_AutoZone(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE set_AutoZone(TOLEBOOL Result/*[in]*/) = 0;
  // [10]   .
  virtual HRESULT STDMETHODCALLTYPE get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double Result;
    OLECHECK(this->get_X1((double*)&Result));
    return Result;
  }

  double __fastcall get_Y1(void)
  {
    double Result;
    OLECHECK(this->get_Y1((double*)&Result));
    return Result;
  }

  double __fastcall get_X2(void)
  {
    double Result;
    OLECHECK(this->get_X2((double*)&Result));
    return Result;
  }

  double __fastcall get_Y2(void)
  {
    double Result;
    OLECHECK(this->get_Y2((double*)&Result));
    return Result;
  }

  double __fastcall get_TextX(void)
  {
    double Result;
    OLECHECK(this->get_TextX((double*)&Result));
    return Result;
  }

  double __fastcall get_TextY(void)
  {
    double Result;
    OLECHECK(this->get_TextY((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoSorted(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoSheet(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSheet((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoZone(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoZone((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          TextX = {read = get_TextX, write = set_TextX};
  __property   double          TextY = {read = get_TextY, write = set_TextY};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICentreMarkers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A0533211-CF52-4AB5-A172-3DC7D94276D1}
// *********************************************************************//
interface ICentreMarkers  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_CentreMarker(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ICentreMarkerPtr __fastcall get_CentreMarker(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::ICentreMarkerPtr Result;
    OLECHECK(this->get_CentreMarker(Index, (Kompasltapi7_tlb::ICentreMarkerPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICentreMarkerPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::ICentreMarkerPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::ICentreMarkerPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICentreMarker
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8FE1CADA-DE72-4A55-B303-EAF1F4748CF6}
// *********************************************************************//
interface ICentreMarker  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/) = 0;
  // [2]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X(double PVal/*[in]*/) = 0;
  // [2]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X(double* PVal/*[out,retval]*/) = 0;
  // [3]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y(double PVal/*[in]*/) = 0;
  // [3]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y(double* PVal/*[out,retval]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [4]    .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE set_SignType(ksCentreMarkerEnum PVal/*[in]*/) = 0;
  // [5]   .
  virtual HRESULT STDMETHODCALLTYPE get_SignType(ksCentreMarkerEnum* PVal/*[out,retval]*/) = 0;
  // [6] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE set_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                           TOLEBOOL PVal/*[in]*/) = 0;
  // [6] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                           TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE set_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                       double PVal/*[in]*/) = 0;
  // [7]  .
  virtual HRESULT STDMETHODCALLTYPE get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                       double* PVal/*[out,retval]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE set_CrosshairSize(double PVal/*[in]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_CrosshairSize(double* PVal/*[out,retval]*/) = 0;
  // [9]        .
  virtual HRESULT STDMETHODCALLTYPE set_CrosshairSizeModify(TOLEBOOL PVal/*[in]*/) = 0;
  // [9]        .
  virtual HRESULT STDMETHODCALLTYPE get_CrosshairSizeModify(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Result;
    OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
    return Result;
  }

  double __fastcall get_X(void)
  {
    double PVal;
    OLECHECK(this->get_X((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y(void)
  {
    double PVal;
    OLECHECK(this->get_Y((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  ksCentreMarkerEnum __fastcall get_SignType(void)
  {
    ksCentreMarkerEnum PVal;
    OLECHECK(this->get_SignType((ksCentreMarkerEnum*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SemiAxisAutoLength(AxisType, (TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_SemiAxisLength(AxisType, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_CrosshairSize(void)
  {
    double PVal;
    OLECHECK(this->get_CrosshairSize((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_CrosshairSizeModify(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_CrosshairSizeModify((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksCentreMarkerEnum SignType = {read = get_SignType, write = set_SignType};
  __property   double          CrosshairSize = {read = get_CrosshairSize, write = set_CrosshairSize};
  __property   TOLEBOOL        CrosshairSizeModify = {read = get_CrosshairSizeModify, write = set_CrosshairSizeModify};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRemoteElements
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88427A6B-00AF-46E2-9B95-BC8348C2162A}
// *********************************************************************//
interface IRemoteElements  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_RemoteElement(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IRemoteElementPtr __fastcall get_RemoteElement(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IRemoteElementPtr Result;
    OLECHECK(this->get_RemoteElement(Index, (Kompasltapi7_tlb::IRemoteElementPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IRemoteElementPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IRemoteElementPtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IRemoteElementPtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IRemoteElement
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A9D96CE2-9FE4-494E-87B2-20122EAC2AE4}
// *********************************************************************//
interface IRemoteElement  : public Kompasltapi7_tlb::IUnitMarking
{
public:
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSorted(TOLEBOOL Result/*[in]*/) = 0;
  // [2002] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2002] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoSheet(TOLEBOOL Result/*[in]*/) = 0;
  // [2003] .
  virtual HRESULT STDMETHODCALLTYPE get_AutoZone(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2003] .
  virtual HRESULT STDMETHODCALLTYPE set_AutoZone(TOLEBOOL Result/*[in]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_AutoSorted(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoSheet(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoSheet((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_AutoZone(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_AutoZone((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAxisLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C567E700-E163-4C8F-B329-931BB93D0223}
// *********************************************************************//
interface IAxisLines  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_AxisLine(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAxisLinePtr __fastcall get_AxisLine(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAxisLinePtr Result;
    OLECHECK(this->get_AxisLine(Index, (Kompasltapi7_tlb::IAxisLinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAxisLinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IAxisLinePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IAxisLinePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAxisLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C5CAEBD-70A9-41DB-9F74-F9760D822D95}
// *********************************************************************//
interface IAxisLine  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5]    OX  .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [5]    OX  .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Length = {read = get_Length, write = set_Length};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IWaveLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C1F0A911-8B4A-48B5-9611-5250D3FC2ACA}
// *********************************************************************//
interface IWaveLines  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]   ,   .
  virtual HRESULT STDMETHODCALLTYPE get_WaveLine(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/) = 0;
  // [2]    (    ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IWaveLinePtr __fastcall get_WaveLine(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IWaveLinePtr Result;
    OLECHECK(this->get_WaveLine(Index, (Kompasltapi7_tlb::IWaveLinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IWaveLinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IWaveLinePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IWaveLinePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IWaveLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA2012E1-A983-47D3-9D43-B8DC619AC554}
// *********************************************************************//
interface IWaveLine  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5]    OX  .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [5]    OX  .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [8] TRUE -  1.
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [8] TRUE -  1.
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE set_HalfWavesCount(long PVal/*[in]*/) = 0;
  // [9]  .
  virtual HRESULT STDMETHODCALLTYPE get_HalfWavesCount(long* PVal/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE set_WaveLength(double PVal/*[in]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE get_WaveLength(double* PVal/*[out,retval]*/) = 0;
  // [11]    . Representation == TRUE -     , FALSE  .
  virtual HRESULT STDMETHODCALLTYPE SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, 
                                                      double NewVal/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [12]  .
  virtual HRESULT STDMETHODCALLTYPE get_WavesAmplitude(double* PVal/*[out,retval]*/) = 0;
  // [13]    . TRUE -      , FALSE  .
  virtual HRESULT STDMETHODCALLTYPE get_WavesAmplitudeRepresentation(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [14]       .
  virtual HRESULT STDMETHODCALLTYPE set_AutoWavesAmplitude(TOLEBOOL PVal/*[in]*/) = 0;
  // [14]       .
  virtual HRESULT STDMETHODCALLTYPE get_AutoWavesAmplitude(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_HalfWavesCount(void)
  {
    long PVal;
    OLECHECK(this->get_HalfWavesCount((long*)&PVal));
    return PVal;
  }

  double __fastcall get_WaveLength(void)
  {
    double PVal;
    OLECHECK(this->get_WaveLength((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, double NewVal/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetWavesAmplitude(Representation, NewVal, (TOLEBOOL*)&Result));
    return Result;
  }

  double __fastcall get_WavesAmplitude(void)
  {
    double PVal;
    OLECHECK(this->get_WavesAmplitude((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_WavesAmplitudeRepresentation(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_WavesAmplitudeRepresentation((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoWavesAmplitude(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoWavesAmplitude((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   long            HalfWavesCount = {read = get_HalfWavesCount, write = set_HalfWavesCount};
  __property   double          WaveLength = {read = get_WaveLength, write = set_WaveLength};
  __property   double          WavesAmplitude = {read = get_WavesAmplitude};
  __property   TOLEBOOL        WavesAmplitudeRepresentation = {read = get_WavesAmplitudeRepresentation};
  __property   TOLEBOOL        AutoWavesAmplitude = {read = get_AutoWavesAmplitude, write = set_AutoWavesAmplitude};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBrokenLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2A7EADC0-5E79-4DDB-85D5-E3EDB743480D}
// *********************************************************************//
interface IBrokenLines  : public Kompasltapi7_tlb::IDrawingObjects
{
public:
  // [1]     ,   .
  virtual HRESULT STDMETHODCALLTYPE get_BrokenLine(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/) = 0;
  // [2]   (      ).
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IBrokenLinePtr __fastcall get_BrokenLine(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IBrokenLinePtr Result;
    OLECHECK(this->get_BrokenLine(Index, (Kompasltapi7_tlb::IBrokenLinePtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IBrokenLinePtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IBrokenLinePtr Result;
    OLECHECK(this->Add((Kompasltapi7_tlb::IBrokenLinePtr*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBrokenLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2482EB44-5625-4FB9-A46B-781426B02510}
// *********************************************************************//
interface IBrokenLine  : public Kompasltapi7_tlb::IDrawingObject
{
public:
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]  X  .
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]  Y  .
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [6]    OX  .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [6]    OX  .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE get_Style(long* Result/*[out,retval]*/) = 0;
  // [7] C .
  virtual HRESULT STDMETHODCALLTYPE set_Style(long Result/*[in]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE set_JutValue(double PVal/*[in]*/) = 0;
  // [8]   .
  virtual HRESULT STDMETHODCALLTYPE get_JutValue(double* PVal/*[out,retval]*/) = 0;
  // [9]       .
  virtual HRESULT STDMETHODCALLTYPE set_AutoJutValue(TOLEBOOL PVal/*[in]*/) = 0;
  // [9]       .
  virtual HRESULT STDMETHODCALLTYPE get_AutoJutValue(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE set_BreaksCount(long PVal/*[in]*/) = 0;
  // [10]  .
  virtual HRESULT STDMETHODCALLTYPE get_BreaksCount(long* PVal/*[out,retval]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE set_BreakAmplitude(double PVal/*[in]*/) = 0;
  // [11]  .
  virtual HRESULT STDMETHODCALLTYPE get_BreakAmplitude(double* PVal/*[out,retval]*/) = 0;
  // [12]       .
  virtual HRESULT STDMETHODCALLTYPE set_AutoBreakAmplitude(TOLEBOOL PVal/*[in]*/) = 0;
  // [12]       .
  virtual HRESULT STDMETHODCALLTYPE get_AutoBreakAmplitude(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE set_BreakDisplacement(double PVal/*[in]*/) = 0;
  // [13]  .
  virtual HRESULT STDMETHODCALLTYPE get_BreakDisplacement(double* PVal/*[out,retval]*/) = 0;
  // [14] TRUE -  1.
  virtual HRESULT STDMETHODCALLTYPE set_Type1(TOLEBOOL PVal/*[in]*/) = 0;
  // [14] TRUE -  1.
  virtual HRESULT STDMETHODCALLTYPE get_Type1(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Style(void)
  {
    long Result;
    OLECHECK(this->get_Style((long*)&Result));
    return Result;
  }

  double __fastcall get_JutValue(void)
  {
    double PVal;
    OLECHECK(this->get_JutValue((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoJutValue(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoJutValue((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_BreaksCount(void)
  {
    long PVal;
    OLECHECK(this->get_BreaksCount((long*)&PVal));
    return PVal;
  }

  double __fastcall get_BreakAmplitude(void)
  {
    double PVal;
    OLECHECK(this->get_BreakAmplitude((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoBreakAmplitude(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoBreakAmplitude((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_BreakDisplacement(void)
  {
    double PVal;
    OLECHECK(this->get_BreakDisplacement((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Type1(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Type1((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   double          JutValue = {read = get_JutValue, write = set_JutValue};
  __property   TOLEBOOL        AutoJutValue = {read = get_AutoJutValue, write = set_AutoJutValue};
  __property   long            BreaksCount = {read = get_BreaksCount, write = set_BreaksCount};
  __property   double          BreakAmplitude = {read = get_BreakAmplitude, write = set_BreakAmplitude};
  __property   TOLEBOOL        AutoBreakAmplitude = {read = get_AutoBreakAmplitude, write = set_AutoBreakAmplitude};
  __property   double          BreakDisplacement = {read = get_BreakDisplacement, write = set_BreakDisplacement};
  __property   TOLEBOOL        Type1 = {read = get_Type1, write = set_Type1};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBreakAngleDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6ED408A-C2A8-47DD-8EC3-011A7AD60335}
// *********************************************************************//
interface IBreakAngleDimension  : public Kompasltapi7_tlb::IAngleDimension
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBranchs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C8A55AB3-D6DD-49B8-95F0-716475855C10}
// *********************************************************************//
interface IBranchs  : public IDispatch
{
public:
  // [5001]        X.
  virtual HRESULT STDMETHODCALLTYPE get_X0(double* Result/*[out,retval]*/) = 0;
  // [5001]        X.
  virtual HRESULT STDMETHODCALLTYPE set_X0(double Result/*[in]*/) = 0;
  // [5002]        Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y0(double* Result/*[out,retval]*/) = 0;
  // [5002]        Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y0(double Result/*[in]*/) = 0;
  // [5003]  .
  virtual HRESULT STDMETHODCALLTYPE get_BranchCount(long* Result/*[out,retval]*/) = 0;
  // [5004]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchPoints(long Index/*[in]*/, 
                                                     TVariantInParam PVal/*[in]*/) = 0;
  // [5004]  SAFEARRAY   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPoints(long Index/*[in]*/, 
                                                     TVariant* PVal/*[out,retval]*/) = 0;
  // [5005]    .
  virtual HRESULT STDMETHODCALLTYPE get_BranchPointsCount(long Index/*[in]*/, 
                                                          long* Result/*[out,retval]*/) = 0;
  // [5006]      X.
  virtual HRESULT STDMETHODCALLTYPE set_BranchX(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [5006]      X.
  virtual HRESULT STDMETHODCALLTYPE get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [5007]      Y.
  virtual HRESULT STDMETHODCALLTYPE set_BranchY(long Index/*[in]*/, double PVal/*[in]*/) = 0;
  // [5007]      Y.
  virtual HRESULT STDMETHODCALLTYPE get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/) = 0;
  // [5008]  .
  virtual HRESULT STDMETHODCALLTYPE AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5009]   .
  virtual HRESULT STDMETHODCALLTYPE AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, 
                                                     double Y/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5010]  .
  virtual HRESULT STDMETHODCALLTYPE DeleteBranch(long Index/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X0(void)
  {
    double Result;
    OLECHECK(this->get_X0((double*)&Result));
    return Result;
  }

  double __fastcall get_Y0(void)
  {
    double Result;
    OLECHECK(this->get_Y0((double*)&Result));
    return Result;
  }

  long __fastcall get_BranchCount(void)
  {
    long Result;
    OLECHECK(this->get_BranchCount((long*)&Result));
    return Result;
  }

  TVariant __fastcall get_BranchPoints(long Index/*[in]*/)
  {
    TVariant PVal;
    OLECHECK(this->get_BranchPoints(Index, (TVariant*)&PVal));
    return PVal;
  }

  long __fastcall get_BranchPointsCount(long Index/*[in]*/)
  {
    long Result;
    OLECHECK(this->get_BranchPointsCount(Index, (long*)&Result));
    return Result;
  }

  double __fastcall get_BranchX(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_BranchX(Index, (double*)&PVal));
    return PVal;
  }

  double __fastcall get_BranchY(long Index/*[in]*/)
  {
    double PVal;
    OLECHECK(this->get_BranchY(Index, (double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranch(Index, Points, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBranchByPoint(Index, X, Y, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall DeleteBranch(long Index/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteBranch(Index, (TOLEBOOL*)&Result));
    return Result;
  }


  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   long            BranchCount = {read = get_BranchCount};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ILeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A7419920-06B8-4F34-AC1E-9D48E0ED9DCB}
// *********************************************************************//
interface ILeader  : public IDispatch
{
public:
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/) = 0;
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE get_SignType(ksLeaderSignEnum* Result/*[out,retval]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE set_SignType(ksLeaderSignEnum Result/*[in]*/) = 0;
  // [1503]    .
  virtual HRESULT STDMETHODCALLTYPE get_Arround(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1503]    .
  virtual HRESULT STDMETHODCALLTYPE set_Arround(TOLEBOOL Result/*[in]*/) = 0;
  // [1504]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextOnShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1505]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextUnderShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1506]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1507]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1508]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextAfterShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1509]  : TRUE -   , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/) = 0;
  // [1509]  : TRUE -   , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE get_BranchBegin(long Index/*[in]*/, 
                                                    TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1510]  .
  virtual HRESULT STDMETHODCALLTYPE get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1510]  .
  virtual HRESULT STDMETHODCALLTYPE set_ParallelBranch(TOLEBOOL PVal/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum Result;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
    return Result;
  }

  ksLeaderSignEnum __fastcall get_SignType(void)
  {
    ksLeaderSignEnum Result;
    OLECHECK(this->get_SignType((ksLeaderSignEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Arround(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Arround((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnShelf(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextOnShelf((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderShelf(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUnderShelf((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnBranch(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextOnBranch((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderBranch(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUnderBranch((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfterShelf(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextAfterShelf((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_BranchBegin(long Index/*[in]*/)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_BranchBegin(Index, (TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ParallelBranch(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ParallelBranch((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   ksLeaderSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   TOLEBOOL        Arround = {read = get_Arround, write = set_Arround};
  __property   Kompasltapi7_tlb::ITextPtr TextOnShelf = {read = get_TextOnShelf};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderShelf = {read = get_TextUnderShelf};
  __property   Kompasltapi7_tlb::ITextPtr TextOnBranch = {read = get_TextOnBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderBranch = {read = get_TextUnderBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextAfterShelf = {read = get_TextAfterShelf};
  __property   TOLEBOOL        ParallelBranch = {read = get_ParallelBranch, write = set_ParallelBranch};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMarkLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8A5D2A56-ECB6-4151-B1AC-F8548CD668CF}
// *********************************************************************//
interface IMarkLeader  : public IDispatch
{
public:
  // [1501]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1502]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1503] .
  virtual HRESULT STDMETHODCALLTYPE get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnBranch(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextOnBranch((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderBranch(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUnderBranch((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Designation(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Designation((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::ITextPtr TextOnBranch = {read = get_TextOnBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderBranch = {read = get_TextUnderBranch};
  __property   Kompasltapi7_tlb::ITextPtr Designation = {read = get_Designation};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPositionLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A8227628-4B9C-42C8-AE58-B3716A7EC1AF}
// *********************************************************************//
interface IPositionLeader  : public IDispatch
{
public:
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/) = 0;
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE get_ShelfVisible(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE set_ShelfVisible(TOLEBOOL Result/*[in]*/) = 0;
  // [1503]   ( TRUE - , FALSE -  ).
  virtual HRESULT STDMETHODCALLTYPE get_TextDirection(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1503]   ( TRUE - , FALSE -  ).
  virtual HRESULT STDMETHODCALLTYPE set_TextDirection(TOLEBOOL Result/*[in]*/) = 0;
  // [1504]  ).
  virtual HRESULT STDMETHODCALLTYPE get_Form(ksPositionLederFormEnum* Result/*[out,retval]*/) = 0;
  // [1504]  ).
  virtual HRESULT STDMETHODCALLTYPE set_Form(ksPositionLederFormEnum Result/*[in]*/) = 0;
  // [1505] .
  virtual HRESULT STDMETHODCALLTYPE get_Positions(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1506]   .
  virtual HRESULT STDMETHODCALLTYPE get_UnderPositionText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1507]   .
  virtual HRESULT STDMETHODCALLTYPE get_Horizontally(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1507]   .
  virtual HRESULT STDMETHODCALLTYPE set_Horizontally(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksShelfDirectionEnum __fastcall get_ShelfDirection(void)
  {
    ksShelfDirectionEnum Result;
    OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_ShelfVisible(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_ShelfVisible((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_TextDirection(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_TextDirection((TOLEBOOL*)&Result));
    return Result;
  }

  ksPositionLederFormEnum __fastcall get_Form(void)
  {
    ksPositionLederFormEnum Result;
    OLECHECK(this->get_Form((ksPositionLederFormEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Positions(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Positions((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_UnderPositionText(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_UnderPositionText((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Horizontally(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Horizontally((TOLEBOOL*)&Result));
    return Result;
  }


  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        ShelfVisible = {read = get_ShelfVisible, write = set_ShelfVisible};
  __property   TOLEBOOL        TextDirection = {read = get_TextDirection, write = set_TextDirection};
  __property   ksPositionLederFormEnum Form = {read = get_Form, write = set_Form};
  __property   Kompasltapi7_tlb::ITextPtr Positions = {read = get_Positions};
  __property   Kompasltapi7_tlb::ITextPtr UnderPositionText = {read = get_UnderPositionText};
  __property   TOLEBOOL        Horizontally = {read = get_Horizontally, write = set_Horizontally};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IChangeLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CCFBE87D-1A3C-4C8B-ABE3-1C2319694314}
// *********************************************************************//
interface IChangeLeader  : public IDispatch
{
public:
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE get_SignType(ksChangeLeaderSignEnum* Result/*[out,retval]*/) = 0;
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE set_SignType(ksChangeLeaderSignEnum Result/*[in]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE get_SignHeight(double* Result/*[out,retval]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE set_SignHeight(double Result/*[in]*/) = 0;
  // [1503]  .
  virtual HRESULT STDMETHODCALLTYPE get_LeaderLength(double* Result/*[out,retval]*/) = 0;
  // [1503]  .
  virtual HRESULT STDMETHODCALLTYPE set_LeaderLength(double Result/*[in]*/) = 0;
  // [1504]   .
  virtual HRESULT STDMETHODCALLTYPE get_FullLeaderLength(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1504]   .
  virtual HRESULT STDMETHODCALLTYPE set_FullLeaderLength(TOLEBOOL Result/*[in]*/) = 0;
  // [1505] .
  virtual HRESULT STDMETHODCALLTYPE get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksChangeLeaderSignEnum __fastcall get_SignType(void)
  {
    ksChangeLeaderSignEnum Result;
    OLECHECK(this->get_SignType((ksChangeLeaderSignEnum*)&Result));
    return Result;
  }

  double __fastcall get_SignHeight(void)
  {
    double Result;
    OLECHECK(this->get_SignHeight((double*)&Result));
    return Result;
  }

  double __fastcall get_LeaderLength(void)
  {
    double Result;
    OLECHECK(this->get_LeaderLength((double*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_FullLeaderLength(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_FullLeaderLength((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Designation(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Designation((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }


  __property   ksChangeLeaderSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   double          SignHeight = {read = get_SignHeight, write = set_SignHeight};
  __property   double          LeaderLength = {read = get_LeaderLength, write = set_LeaderLength};
  __property   TOLEBOOL        FullLeaderLength = {read = get_FullLeaderLength, write = set_FullLeaderLength};
  __property   Kompasltapi7_tlb::ITextPtr Designation = {read = get_Designation};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBrandLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EEF8366B-7C8D-448B-9944-BE63E82C1543}
// *********************************************************************//
interface IBrandLeader  : public IDispatch
{
public:
  // [1501]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1502]   .
  virtual HRESULT STDMETHODCALLTYPE get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1503] .
  virtual HRESULT STDMETHODCALLTYPE get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/) = 0;
  // [1504] .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1504] .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnBranch(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextOnBranch((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderBranch(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_TextUnderBranch((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::ITextPtr __fastcall get_Designation(void)
  {
    Kompasltapi7_tlb::ITextPtr PVal;
    OLECHECK(this->get_Designation((Kompasltapi7_tlb::ITextPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Direction((TOLEBOOL*)&Result));
    return Result;
  }


  __property   Kompasltapi7_tlb::ITextPtr TextOnBranch = {read = get_TextOnBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderBranch = {read = get_TextUnderBranch};
  __property   Kompasltapi7_tlb::ITextPtr Designation = {read = get_Designation};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IToleranceParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {46E2F216-6BCE-4863-9DDC-CC08DC0016F7}
// *********************************************************************//
interface IToleranceParam  : public IDispatch
{
public:
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE get_BasePointPos(ksTablePointEnum* Result/*[out,retval]*/) = 0;
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE set_BasePointPos(ksTablePointEnum Result/*[in]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE get_Vertical(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE set_Vertical(TOLEBOOL Result/*[in]*/) = 0;
  // [1503]  .
  virtual HRESULT STDMETHODCALLTYPE get_Table(Kompasltapi7_tlb::ITablePtr* PVal/*[out,retval]*/) = 0;
  // [1504]  .
  virtual HRESULT STDMETHODCALLTYPE get_Sign(long* Result/*[out,retval]*/) = 0;
  // [1504]  .
  virtual HRESULT STDMETHODCALLTYPE set_Sign(long Result/*[in]*/) = 0;
  // [1505]    .
  virtual HRESULT STDMETHODCALLTYPE get_PrefixSign(ksTolerancePrefixSignEnum* Result/*[out,retval]*/) = 0;
  // [1505]    .
  virtual HRESULT STDMETHODCALLTYPE set_PrefixSign(ksTolerancePrefixSignEnum Result/*[in]*/) = 0;
  // [1506]    .
  virtual HRESULT STDMETHODCALLTYPE get_Value(BSTR* PVal/*[out,retval]*/) = 0;
  // [1506]    .
  virtual HRESULT STDMETHODCALLTYPE set_Value(BSTR PVal/*[in]*/) = 0;
  // [1507]    .
  virtual HRESULT STDMETHODCALLTYPE get_SuffixSign(ksToleranceSuffixSignEnum* Result/*[out,retval]*/) = 0;
  // [1507]    .
  virtual HRESULT STDMETHODCALLTYPE set_SuffixSign(ksToleranceSuffixSignEnum Result/*[in]*/) = 0;
  // [1508]  1.
  virtual HRESULT STDMETHODCALLTYPE get_BaseValue1(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [1509]   1.
  virtual HRESULT STDMETHODCALLTYPE get_BaseSign1(ksToleranceSuffixSignEnum* Result/*[out,retval]*/) = 0;
  // [1509]   1.
  virtual HRESULT STDMETHODCALLTYPE set_BaseSign1(ksToleranceSuffixSignEnum Result/*[in]*/) = 0;
  // [1510]  2.
  virtual HRESULT STDMETHODCALLTYPE get_BaseValue2(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/) = 0;
  // [1511]   2.
  virtual HRESULT STDMETHODCALLTYPE get_BaseSign2(ksToleranceSuffixSignEnum* Result/*[out,retval]*/) = 0;
  // [1511]   2.
  virtual HRESULT STDMETHODCALLTYPE set_BaseSign2(ksToleranceSuffixSignEnum Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksTablePointEnum __fastcall get_BasePointPos(void)
  {
    ksTablePointEnum Result;
    OLECHECK(this->get_BasePointPos((ksTablePointEnum*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall get_Vertical(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->get_Vertical((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITablePtr __fastcall get_Table(void)
  {
    Kompasltapi7_tlb::ITablePtr PVal;
    OLECHECK(this->get_Table((Kompasltapi7_tlb::ITablePtr*)&PVal));
    return PVal;
  }

  long __fastcall get_Sign(void)
  {
    long Result;
    OLECHECK(this->get_Sign((long*)&Result));
    return Result;
  }

  ksTolerancePrefixSignEnum __fastcall get_PrefixSign(void)
  {
    ksTolerancePrefixSignEnum Result;
    OLECHECK(this->get_PrefixSign((ksTolerancePrefixSignEnum*)&Result));
    return Result;
  }

  BSTR __fastcall get_Value(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_Value((BSTR*)&PVal));
    return PVal;
  }

  ksToleranceSuffixSignEnum __fastcall get_SuffixSign(void)
  {
    ksToleranceSuffixSignEnum Result;
    OLECHECK(this->get_SuffixSign((ksToleranceSuffixSignEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_BaseValue1(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_BaseValue1((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  ksToleranceSuffixSignEnum __fastcall get_BaseSign1(void)
  {
    ksToleranceSuffixSignEnum Result;
    OLECHECK(this->get_BaseSign1((ksToleranceSuffixSignEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ITextLinePtr __fastcall get_BaseValue2(void)
  {
    Kompasltapi7_tlb::ITextLinePtr PVal;
    OLECHECK(this->get_BaseValue2((Kompasltapi7_tlb::ITextLinePtr*)&PVal));
    return PVal;
  }

  ksToleranceSuffixSignEnum __fastcall get_BaseSign2(void)
  {
    ksToleranceSuffixSignEnum Result;
    OLECHECK(this->get_BaseSign2((ksToleranceSuffixSignEnum*)&Result));
    return Result;
  }


  __property   ksTablePointEnum BasePointPos = {read = get_BasePointPos, write = set_BasePointPos};
  __property   TOLEBOOL        Vertical = {read = get_Vertical, write = set_Vertical};
  __property   Kompasltapi7_tlb::ITablePtr Table = {read = get_Table};
  __property   long            Sign = {read = get_Sign, write = set_Sign};
  __property   ksTolerancePrefixSignEnum PrefixSign = {read = get_PrefixSign, write = set_PrefixSign};
  __property   BSTR            Value = {read = get_Value, write = set_Value};
  __property   ksToleranceSuffixSignEnum SuffixSign = {read = get_SuffixSign, write = set_SuffixSign};
  __property   Kompasltapi7_tlb::ITextLinePtr BaseValue1 = {read = get_BaseValue1};
  __property   ksToleranceSuffixSignEnum BaseSign1 = {read = get_BaseSign1, write = set_BaseSign1};
  __property   Kompasltapi7_tlb::ITextLinePtr BaseValue2 = {read = get_BaseValue2};
  __property   ksToleranceSuffixSignEnum BaseSign2 = {read = get_BaseSign2, write = set_BaseSign2};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IContourSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AA485B32-FF45-4035-BFC4-AEE54E638344}
// *********************************************************************//
interface IContourSegment  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksContourSegmentEnum __fastcall get_SegmentType(void)
  {
    ksContourSegmentEnum Result;
    OLECHECK(this->get_SegmentType((ksContourSegmentEnum*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::ICurve2DPtr __fastcall get_Curve2D(void)
  {
    Kompasltapi7_tlb::ICurve2DPtr Result;
    OLECHECK(this->get_Curve2D((Kompasltapi7_tlb::ICurve2DPtr*)&Result));
    return Result;
  }


  __property   ksContourSegmentEnum SegmentType = {read = get_SegmentType};
  __property   Kompasltapi7_tlb::ICurve2DPtr Curve2D = {read = get_Curve2D};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IContourLineSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FB2432F1-8AE7-4D43-AFF2-A3A3BE226CFA}
// *********************************************************************//
interface IContourLineSegment  : public Kompasltapi7_tlb::IContourSegment
{
public:
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [1]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [2]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [3]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [4]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE set_Length(double PVal/*[in]*/) = 0;
  // [5] .
  virtual HRESULT STDMETHODCALLTYPE get_Length(double* PVal/*[out,retval]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE set_Angle(double PVal/*[in]*/) = 0;
  // [6] .
  virtual HRESULT STDMETHODCALLTYPE get_Angle(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Length(void)
  {
    double PVal;
    OLECHECK(this->get_Length((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle(void)
  {
    double PVal;
    OLECHECK(this->get_Angle((double*)&PVal));
    return PVal;
  }


  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IContourArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {ED4A6D97-4543-4842-B2C3-973FB0E90E87}
// *********************************************************************//
interface IContourArc  : public Kompasltapi7_tlb::IContourSegment
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double PVal/*[in]*/) = 0;
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* PVal/*[out,retval]*/) = 0;
  // [2] . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE set_Direction(TOLEBOOL PVal/*[in]*/) = 0;
  // [2] . true  -   ; false -   .
  virtual HRESULT STDMETHODCALLTYPE get_Direction(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [3]    X.
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double PVal/*[in]*/) = 0;
  // [3]    X.
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* PVal/*[out,retval]*/) = 0;
  // [4]    Y.
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double PVal/*[in]*/) = 0;
  // [4]    Y.
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* PVal/*[out,retval]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X1(double PVal/*[in]*/) = 0;
  // [5]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X1(double* PVal/*[out,retval]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y1(double PVal/*[in]*/) = 0;
  // [6]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y1(double* PVal/*[out,retval]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE set_X2(double PVal/*[in]*/) = 0;
  // [7]     X.
  virtual HRESULT STDMETHODCALLTYPE get_X2(double* PVal/*[out,retval]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y2(double PVal/*[in]*/) = 0;
  // [8]     Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y2(double* PVal/*[out,retval]*/) = 0;
  // [9]        X.
  virtual HRESULT STDMETHODCALLTYPE set_X3(double PVal/*[in]*/) = 0;
  // [9]        X.
  virtual HRESULT STDMETHODCALLTYPE get_X3(double* PVal/*[out,retval]*/) = 0;
  // [10]        Y.
  virtual HRESULT STDMETHODCALLTYPE set_Y3(double PVal/*[in]*/) = 0;
  // [10]        Y.
  virtual HRESULT STDMETHODCALLTYPE get_Y3(double* PVal/*[out,retval]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle1(double PVal/*[in]*/) = 0;
  // [11]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle1(double* PVal/*[out,retval]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE set_Angle2(double PVal/*[in]*/) = 0;
  // [12]   .
  virtual HRESULT STDMETHODCALLTYPE get_Angle2(double* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Radius(void)
  {
    double PVal;
    OLECHECK(this->get_Radius((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_Direction(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_Xc(void)
  {
    double PVal;
    OLECHECK(this->get_Xc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Yc(void)
  {
    double PVal;
    OLECHECK(this->get_Yc((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X1(void)
  {
    double PVal;
    OLECHECK(this->get_X1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y1(void)
  {
    double PVal;
    OLECHECK(this->get_Y1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X2(void)
  {
    double PVal;
    OLECHECK(this->get_X2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y2(void)
  {
    double PVal;
    OLECHECK(this->get_Y2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_X3(void)
  {
    double PVal;
    OLECHECK(this->get_X3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Y3(void)
  {
    double PVal;
    OLECHECK(this->get_Y3((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle1(void)
  {
    double PVal;
    OLECHECK(this->get_Angle1((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Angle2(void)
  {
    double PVal;
    OLECHECK(this->get_Angle2((double*)&PVal));
    return PVal;
  }


  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertionFragment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3D99B82C-CD88-406D-A946-2D8C8E94EE73}
// *********************************************************************//
interface IInsertionFragment  : public Kompasltapi7_tlb::IInsertionObject
{
public:
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE set_Scale(double PVal/*[in]*/) = 0;
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE get_Scale(double* PVal/*[out,retval]*/) = 0;
  // [2002] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE set_MultiLayer(TOLEBOOL PVal/*[in]*/) = 0;
  // [2002] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE get_MultiLayer(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2003]       SAFEARRAY VT_DISPATCH
  virtual HRESULT STDMETHODCALLTYPE get_Variables(TVariant* Result/*[out,retval]*/) = 0;
  // [2004]     ,     
  virtual HRESULT STDMETHODCALLTYPE get_Variable(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/) = 0;
  // [2005]    .
  virtual HRESULT STDMETHODCALLTYPE get_VariablesCount(long* Result/*[out,retval]*/) = 0;
  // [2006]  .
  virtual HRESULT STDMETHODCALLTYPE get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Scale(void)
  {
    double PVal;
    OLECHECK(this->get_Scale((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_MultiLayer(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_MultiLayer((TOLEBOOL*)&PVal));
    return PVal;
  }

  TVariant __fastcall get_Variables(void)
  {
    TVariant Result;
    OLECHECK(this->get_Variables((TVariant*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IVariable7Ptr Result;
    OLECHECK(this->get_Variable(Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result));
    return Result;
  }

  long __fastcall get_VariablesCount(void)
  {
    long Result;
    OLECHECK(this->get_VariablesCount((long*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IVariableTablePtr __fastcall get_VariableTable(void)
  {
    Kompasltapi7_tlb::IVariableTablePtr Result;
    OLECHECK(this->get_VariableTable((Kompasltapi7_tlb::IVariableTablePtr*)&Result));
    return Result;
  }


  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   TOLEBOOL        MultiLayer = {read = get_MultiLayer, write = set_MultiLayer};
  __property   long            VariablesCount = {read = get_VariablesCount};
  __property   Kompasltapi7_tlb::IVariableTablePtr VariableTable = {read = get_VariableTable};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertionView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0C8FC5A9-57A8-4971-8E6C-68933269D42E}
// *********************************************************************//
interface IInsertionView  : public Kompasltapi7_tlb::IInsertionObject
{
public:
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE set_ViewNumber(long PVal/*[in]*/) = 0;
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE get_ViewNumber(long* PVal/*[out,retval]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE get_ViewName(BSTR* PVal/*[out,retval]*/) = 0;
  // [2003]   .
  virtual HRESULT STDMETHODCALLTYPE set_ThinLines(TOLEBOOL PVal/*[in]*/) = 0;
  // [2003]   .
  virtual HRESULT STDMETHODCALLTYPE get_ThinLines(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2004] TRUE -     , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE set_OwnerDocumentParams(TOLEBOOL PVal/*[in]*/) = 0;
  // [2004] TRUE -     , FALSE -  .
  virtual HRESULT STDMETHODCALLTYPE get_OwnerDocumentParams(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_ViewNumber(void)
  {
    long PVal;
    OLECHECK(this->get_ViewNumber((long*)&PVal));
    return PVal;
  }

  BSTR __fastcall get_ViewName(void)
  {
    BSTR PVal = 0;
    OLECHECK(this->get_ViewName((BSTR*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ThinLines(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ThinLines((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_OwnerDocumentParams(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_OwnerDocumentParams((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   long            ViewNumber = {read = get_ViewNumber, write = set_ViewNumber};
  __property   BSTR            ViewName = {read = get_ViewName};
  __property   TOLEBOOL        ThinLines = {read = get_ThinLines, write = set_ThinLines};
  __property   TOLEBOOL        OwnerDocumentParams = {read = get_OwnerDocumentParams, write = set_OwnerDocumentParams};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IInsertionsManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B43FA13A-9488-422C-A9F3-D279FDA296BB}
// *********************************************************************//
interface IInsertionsManager  : public IDispatch
{
public:
  // [501]     SAFEARRAY|VT_DISPATCH.
  virtual HRESULT STDMETHODCALLTYPE get_InsertionDefinitions(ksInsertionTypeEnum Type/*[in]*/, 
                                                             TVariant* PVal/*[out,retval]*/) = 0;
  // [502]      .
  virtual HRESULT STDMETHODCALLTYPE get_InsertionDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                                            TVariantInParam Index/*[in]*/, 
                                                            Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/) = 0;
  // [503]       .
  virtual HRESULT STDMETHODCALLTYPE AddDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                                  BSTR Name/*[in]*/, BSTR FileName/*[in]*/, 
                                                  Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/) = 0;
  // [504]  .
  virtual HRESULT STDMETHODCALLTYPE get_DefinitionsCount(ksInsertionTypeEnum Type/*[in]*/, 
                                                         long* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_InsertionDefinitions(ksInsertionTypeEnum Type/*[in]*/)
  {
    TVariant PVal;
    OLECHECK(this->get_InsertionDefinitions(Type, (TVariant*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                                                               TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
    OLECHECK(this->get_InsertionDefinition(Type, Index, (Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall AddDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                                                     BSTR Name/*[in]*/, 
                                                                     BSTR FileName/*[in]*/)
  {
    Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
    OLECHECK(this->AddDefinition(Type, Name, FileName, (Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal));
    return PVal;
  }

  long __fastcall get_DefinitionsCount(ksInsertionTypeEnum Type/*[in]*/)
  {
    long PVal;
    OLECHECK(this->get_DefinitionsCount(Type, (long*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAxisLineParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {620CC8EB-A5C0-4978-BD98-38344DC6ADC0}
// *********************************************************************//
interface IAxisLineParam  : public IDispatch
{
public:
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE set_JutLength(double PVal/*[in]*/) = 0;
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE get_JutLength(double* PVal/*[out,retval]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE set_DottedLength(double PVal/*[in]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE get_DottedLength(double* PVal/*[out,retval]*/) = 0;
  // [1503] .
  virtual HRESULT STDMETHODCALLTYPE set_Interval(double PVal/*[in]*/) = 0;
  // [1503] .
  virtual HRESULT STDMETHODCALLTYPE get_Interval(double* PVal/*[out,retval]*/) = 0;
  // [1504] /   .
  virtual HRESULT STDMETHODCALLTYPE set_AutoDetectedDash(TOLEBOOL PVal/*[in]*/) = 0;
  // [1504] /   .
  virtual HRESULT STDMETHODCALLTYPE get_AutoDetectedDash(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1505]   .
  virtual HRESULT STDMETHODCALLTYPE set_DashMaxLength(double PVal/*[in]*/) = 0;
  // [1505]   .
  virtual HRESULT STDMETHODCALLTYPE get_DashMaxLength(double* PVal/*[out,retval]*/) = 0;
  // [1506]       .
  virtual HRESULT STDMETHODCALLTYPE set_JutLengthModify(TOLEBOOL PVal/*[in]*/) = 0;
  // [1506]       .
  virtual HRESULT STDMETHODCALLTYPE get_JutLengthModify(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1507]       .
  virtual HRESULT STDMETHODCALLTYPE set_DottedLengthModify(TOLEBOOL PVal/*[in]*/) = 0;
  // [1507]       .
  virtual HRESULT STDMETHODCALLTYPE get_DottedLengthModify(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1508]      .
  virtual HRESULT STDMETHODCALLTYPE set_IntervalModify(TOLEBOOL PVal/*[in]*/) = 0;
  // [1508]      .
  virtual HRESULT STDMETHODCALLTYPE get_IntervalModify(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1509]        .
  virtual HRESULT STDMETHODCALLTYPE set_AutoDetectedDashModify(TOLEBOOL PVal/*[in]*/) = 0;
  // [1509]        .
  virtual HRESULT STDMETHODCALLTYPE get_AutoDetectedDashModify(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [1510]        .
  virtual HRESULT STDMETHODCALLTYPE set_DashMaxLengthModify(TOLEBOOL PVal/*[in]*/) = 0;
  // [1510]        .
  virtual HRESULT STDMETHODCALLTYPE get_DashMaxLengthModify(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_JutLength(void)
  {
    double PVal;
    OLECHECK(this->get_JutLength((double*)&PVal));
    return PVal;
  }

  double __fastcall get_DottedLength(void)
  {
    double PVal;
    OLECHECK(this->get_DottedLength((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Interval(void)
  {
    double PVal;
    OLECHECK(this->get_Interval((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoDetectedDash(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoDetectedDash((TOLEBOOL*)&PVal));
    return PVal;
  }

  double __fastcall get_DashMaxLength(void)
  {
    double PVal;
    OLECHECK(this->get_DashMaxLength((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_JutLengthModify(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_JutLengthModify((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DottedLengthModify(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DottedLengthModify((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_IntervalModify(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_IntervalModify((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AutoDetectedDashModify(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AutoDetectedDashModify((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_DashMaxLengthModify(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_DashMaxLengthModify((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          JutLength = {read = get_JutLength, write = set_JutLength};
  __property   double          DottedLength = {read = get_DottedLength, write = set_DottedLength};
  __property   double          Interval = {read = get_Interval, write = set_Interval};
  __property   TOLEBOOL        AutoDetectedDash = {read = get_AutoDetectedDash, write = set_AutoDetectedDash};
  __property   double          DashMaxLength = {read = get_DashMaxLength, write = set_DashMaxLength};
  __property   TOLEBOOL        JutLengthModify = {read = get_JutLengthModify, write = set_JutLengthModify};
  __property   TOLEBOOL        DottedLengthModify = {read = get_DottedLengthModify, write = set_DottedLengthModify};
  __property   TOLEBOOL        IntervalModify = {read = get_IntervalModify, write = set_IntervalModify};
  __property   TOLEBOOL        AutoDetectedDashModify = {read = get_AutoDetectedDashModify, write = set_AutoDetectedDashModify};
  __property   TOLEBOOL        DashMaxLengthModify = {read = get_DashMaxLengthModify, write = set_DashMaxLengthModify};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IBoundariesObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7198C93A-7655-4347-9954-BA9AA28D0608}
// *********************************************************************//
interface IBoundariesObject  : public IDispatch
{
public:
  // [2001]   .
  virtual HRESULT STDMETHODCALLTYPE get_Boundaries(TVariant* PVal/*[out,retval]*/) = 0;
  // [2002]    .
  virtual HRESULT STDMETHODCALLTYPE AddBoundaries(TVariantInParam Objects/*[in]*/, 
                                                  TOLEBOOL DeleteSource, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [2003]   
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_Boundaries(void)
  {
    TVariant PVal;
    OLECHECK(this->get_Boundaries((TVariant*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall AddBoundaries(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteSource)
  {
    TOLEBOOL Result;
    OLECHECK(this->AddBoundaries(Objects, DeleteSource, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAnnotativeObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0DBD7BCD-F78E-4BDA-BCAD-3004C60B6D06}
// *********************************************************************//
interface IAnnotativeObject  : public IDispatch
{
public:
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE get_Sign1(ksAnnotativeTerminatorSignEnum* Result/*[out,retval]*/) = 0;
  // [1501]  .
  virtual HRESULT STDMETHODCALLTYPE set_Sign1(ksAnnotativeTerminatorSignEnum Result/*[in]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE get_Sign2(ksAnnotativeTerminatorSignEnum* Result/*[out,retval]*/) = 0;
  // [1502]  .
  virtual HRESULT STDMETHODCALLTYPE set_Sign2(ksAnnotativeTerminatorSignEnum Result/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  ksAnnotativeTerminatorSignEnum __fastcall get_Sign1(void)
  {
    ksAnnotativeTerminatorSignEnum Result;
    OLECHECK(this->get_Sign1((ksAnnotativeTerminatorSignEnum*)&Result));
    return Result;
  }

  ksAnnotativeTerminatorSignEnum __fastcall get_Sign2(void)
  {
    ksAnnotativeTerminatorSignEnum Result;
    OLECHECK(this->get_Sign2((ksAnnotativeTerminatorSignEnum*)&Result));
    return Result;
  }


  __property   ksAnnotativeTerminatorSignEnum Sign1 = {read = get_Sign1, write = set_Sign1};
  __property   ksAnnotativeTerminatorSignEnum Sign2 = {read = get_Sign2, write = set_Sign2};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IAnnotativeContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AE6C238C-4398-4057-9D28-D275954D9506}
// *********************************************************************//
interface IAnnotativeContainer  : public IDispatch
{
public:
  // [0]    .
  virtual HRESULT STDMETHODCALLTYPE get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/) = 0;
  // [7001]  .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Result/*[out,retval]*/) = 0;
  // [7002]  .
  virtual HRESULT STDMETHODCALLTYPE Add(DrawingObjectTypeEnum Type, 
                                        Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/) = 0;
  // [7003]     .
  virtual HRESULT STDMETHODCALLTYPE CreateByGeomObject(Kompasltapi7_tlb::IDrawingObjectPtr Obj/*[in]*/, 
                                                       Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/)
  {
    Kompasltapi7_tlb::IAnnotativeObjectPtr Result;
    OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAnnotativeObjectPtr*)&Result));
    return Result;
  }

  long __fastcall get_Count(void)
  {
    long Result;
    OLECHECK(this->get_Count((long*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall Add(DrawingObjectTypeEnum Type)
  {
    Kompasltapi7_tlb::IAnnotativeObjectPtr Result;
    OLECHECK(this->Add(Type, (Kompasltapi7_tlb::IAnnotativeObjectPtr*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall CreateByGeomObject(Kompasltapi7_tlb::IDrawingObjectPtr Obj/*[in]*/)
  {
    Kompasltapi7_tlb::IAnnotativeObjectPtr Result;
    OLECHECK(this->CreateByGeomObject(Obj, (Kompasltapi7_tlb::IAnnotativeObjectPtr*)&Result));
    return Result;
  }


  __property   long            Count = {read = get_Count};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICurveCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {12B52A99-FF5F-4C08-9E5E-DF7C7AD834A8}
// *********************************************************************//
interface ICurveCopyObjectParam  : public Kompasltapi7_tlb::ICopyObjectParam
{
public:
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE set_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/) = 0;
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE get_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr* Curve/*[out,retval]*/) = 0;
  // [2002] .
  virtual HRESULT STDMETHODCALLTYPE set_Step(double PVal/*[in]*/) = 0;
  // [2002] .
  virtual HRESULT STDMETHODCALLTYPE get_Step(double* PVal/*[out,retval]*/) = 0;
  // [2003]  .
  virtual HRESULT STDMETHODCALLTYPE set_Count(long PVal/*[in]*/) = 0;
  // [2003]  .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* PVal/*[out,retval]*/) = 0;
  // [2004] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE set_TurnToNormal(TOLEBOOL PVal/*[in]*/) = 0;
  // [2004] TRUE -   .
  virtual HRESULT STDMETHODCALLTYPE get_TurnToNormal(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE set_PositiveDirection(TOLEBOOL PVal/*[in]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2006] TRUE -     , FALSE -     .
  virtual HRESULT STDMETHODCALLTYPE set_StepFactor(TOLEBOOL PVal/*[in]*/) = 0;
  // [2006] TRUE -     , FALSE -     .
  virtual HRESULT STDMETHODCALLTYPE get_StepFactor(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseCurve(void)
  {
    Kompasltapi7_tlb::IDrawingObjectPtr Curve;
    OLECHECK(this->get_BaseCurve((Kompasltapi7_tlb::IDrawingObjectPtr*)&Curve));
    return Curve;
  }

  double __fastcall get_Step(void)
  {
    double PVal;
    OLECHECK(this->get_Step((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Count(void)
  {
    long PVal;
    OLECHECK(this->get_Count((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_TurnToNormal(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_TurnToNormal((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_PositiveDirection(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_PositiveDirection((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_StepFactor(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_StepFactor((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseCurve = {read = get_BaseCurve, write = set_BaseCurve};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   long            Count = {read = get_Count, write = set_Count};
  __property   TOLEBOOL        TurnToNormal = {read = get_TurnToNormal, write = set_TurnToNormal};
  __property   TOLEBOOL        PositiveDirection = {read = get_PositiveDirection, write = set_PositiveDirection};
  __property   TOLEBOOL        StepFactor = {read = get_StepFactor, write = set_StepFactor};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICircleCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {138D1202-CA46-4DB3-BF2B-85D260E44355}
// *********************************************************************//
interface ICircleCopyObjectParam  : public Kompasltapi7_tlb::ICopyObjectParam
{
public:
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE set_Xc(double Val/*[in]*/) = 0;
  // [2001] .
  virtual HRESULT STDMETHODCALLTYPE get_Xc(double* Val/*[out,retval]*/) = 0;
  // [2002] .
  virtual HRESULT STDMETHODCALLTYPE set_Yc(double Val/*[in]*/) = 0;
  // [2002] .
  virtual HRESULT STDMETHODCALLTYPE get_Yc(double* Val/*[out,retval]*/) = 0;
  // [2003] .
  virtual HRESULT STDMETHODCALLTYPE set_Step(double PVal/*[in]*/) = 0;
  // [2003] .
  virtual HRESULT STDMETHODCALLTYPE get_Step(double* PVal/*[out,retval]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE set_Count(long PVal/*[in]*/) = 0;
  // [2004]  .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* PVal/*[out,retval]*/) = 0;
  // [2005] TRUE -   . FALSE -     
  virtual HRESULT STDMETHODCALLTYPE set_ByStep(TOLEBOOL PVal/*[in]*/) = 0;
  // [2005] TRUE -   . FALSE -     
  virtual HRESULT STDMETHODCALLTYPE get_ByStep(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2006]  .
  virtual HRESULT STDMETHODCALLTYPE set_PositiveDirection(TOLEBOOL PVal/*[in]*/) = 0;
  // [2006]  .
  virtual HRESULT STDMETHODCALLTYPE get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Xc(void)
  {
    double Val;
    OLECHECK(this->get_Xc((double*)&Val));
    return Val;
  }

  double __fastcall get_Yc(void)
  {
    double Val;
    OLECHECK(this->get_Yc((double*)&Val));
    return Val;
  }

  double __fastcall get_Step(void)
  {
    double PVal;
    OLECHECK(this->get_Step((double*)&PVal));
    return PVal;
  }

  long __fastcall get_Count(void)
  {
    long PVal;
    OLECHECK(this->get_Count((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_ByStep(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_ByStep((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_PositiveDirection(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_PositiveDirection((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   long            Count = {read = get_Count, write = set_Count};
  __property   TOLEBOOL        ByStep = {read = get_ByStep, write = set_ByStep};
  __property   TOLEBOOL        PositiveDirection = {read = get_PositiveDirection, write = set_PositiveDirection};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IExternalTessellationObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D5CDE37-7833-4359-B25A-FE7011EA771A}
// *********************************************************************//
interface IExternalTessellationObject  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_ObjectID(long* PVal/*[out,retval]*/) = 0;
  // [2]   .
  virtual HRESULT STDMETHODCALLTYPE SetTessellation(TVariantInParam Points/*[in]*/, 
                                                    TVariantInParam Indexes/*[in]*/, 
                                                    TVariantInParam Normals/*[in]*/, 
                                                    TVariantInParam Colors/*[in]*/, 
                                                    TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [3]   ( frame == NULL       ).
  virtual HRESULT STDMETHODCALLTYPE set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                                TOLEBOOL Param2/*[in,def,opt]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [5]    .
  virtual HRESULT STDMETHODCALLTYPE SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                                     double Diffuse/*[in]*/, 
                                                     double Specularity/*[in]*/, 
                                                     double Shininess/*[in]*/, 
                                                     double Transparency/*[in]*/, 
                                                     double Emission/*[in]*/, 
                                                     TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [6]   .
  virtual HRESULT STDMETHODCALLTYPE SetEdges(TVariantInParam Points/*[in]*/, 
                                             TVariantInParam Edges/*[in]*/, 
                                             TVariantInParam Colors/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [7]     .
  virtual HRESULT STDMETHODCALLTYPE SetPlaces(TVariantInParam Places/*[in]*/, 
                                              TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [8]    .
  virtual HRESULT STDMETHODCALLTYPE SetEdgeStyles(TVariantInParam Styles/*[in]*/, 
                                                  TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [9]    .
  virtual HRESULT STDMETHODCALLTYPE SetEdgeWidths(TVariantInParam Widths/*[in]*/, 
                                                  TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [10]   .     VT_ARRAY|VT_UI1.
  virtual HRESULT STDMETHODCALLTYPE SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                                    TOLEBOOL RGBA/*[in]*/, TOLEBOOL WrapMode/*[in]*/, 
                                                    TOLEBOOL FiltMode/*[in]*/, 
                                                    TVariantInParam ImageData/*[in]*/, 
                                                    TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [11]    .  VT_ARRAY|VT_R8
  virtual HRESULT STDMETHODCALLTYPE SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                                     TVariantInParam ImagePoints/*[in]*/, 
                                                     TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [12]    .
  virtual HRESULT STDMETHODCALLTYPE SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                                 ksFacetCullingMode CullingMode/*[in]*/, 
                                                 TOLEBOOL* Res/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_ObjectID(void)
  {
    long PVal;
    OLECHECK(this->get_ObjectID((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetTessellation(TVariantInParam Points/*[in]*/, 
                                      TVariantInParam Indexes/*[in]*/, 
                                      TVariantInParam Normals/*[in]*/, 
                                      TVariantInParam Colors/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetTessellation(Points, Indexes, Normals, Colors, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Delete((TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                       double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                       double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                       double Emission/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->SetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, 
                                    Emission, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall SetEdges(TVariantInParam Points/*[in]*/, TVariantInParam Edges/*[in]*/, 
                               TVariantInParam Colors/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetEdges(Points, Edges, Colors, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall SetPlaces(TVariantInParam Places/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetPlaces(Places, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall SetEdgeStyles(TVariantInParam Styles/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetEdgeStyles(Styles, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall SetEdgeWidths(TVariantInParam Widths/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetEdgeWidths(Widths, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, TOLEBOOL RGBA/*[in]*/, 
                                      TOLEBOOL WrapMode/*[in]*/, TOLEBOOL FiltMode/*[in]*/, 
                                      TVariantInParam ImageData/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetTextureImage(Width, Heigh, RGBA, WrapMode, FiltMode, ImageData, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall SetTexturePoints(TOLEBOOL Image2D/*[in]*/, TVariantInParam ImagePoints/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetTexturePoints(Image2D, ImagePoints, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                   ksFacetCullingMode CullingMode/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetFacetMode(SideMode, CullingMode, (TOLEBOOL*)&Res));
    return Res;
  }


  __property   long            ObjectID = {read = get_ObjectID};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IExternalTessellationManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DC21F3D3-FFA6-4274-A976-79F34729B866}
// *********************************************************************//
interface IExternalTessellationManager  : public IDispatch
{
public:
  // [7501]     .
  virtual HRESULT STDMETHODCALLTYPE Add(Kompasltapi7_tlb::IExternalTessellationObjectPtr* PVal/*[out,retval]*/) = 0;
  // [7502]    ID.
  virtual HRESULT STDMETHODCALLTYPE get_TessellationObject(long Id/*[in]*/, 
                                                           Kompasltapi7_tlb::IExternalTessellationObjectPtr* PVal/*[out,retval]*/) = 0;
  // [7503]  .
  virtual HRESULT STDMETHODCALLTYPE set_ObjectsVisible(TVariantInParam Ids/*[in]*/, 
                                                       Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                                       TOLEBOOL Param3/*[in]*/) = 0;
  // [7504]    ID.
  virtual HRESULT STDMETHODCALLTYPE DeleteObjects(TVariantInParam Id/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7505]   .
  virtual HRESULT STDMETHODCALLTYPE Clear(TOLEBOOL* Result/*[out,retval]*/) = 0;
  // [7506]   GDI .
  virtual HRESULT STDMETHODCALLTYPE AddGDIObject(Kompasltapi7_tlb::IExternalGDIObjectPtr* PVal/*[out,retval]*/) = 0;
  // [7507]   GDI   ID.
  virtual HRESULT STDMETHODCALLTYPE get_GDIObject(long Id/*[in]*/, 
                                                  Kompasltapi7_tlb::IExternalGDIObjectPtr* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Kompasltapi7_tlb::IExternalTessellationObjectPtr __fastcall Add(void)
  {
    Kompasltapi7_tlb::IExternalTessellationObjectPtr PVal;
    OLECHECK(this->Add((Kompasltapi7_tlb::IExternalTessellationObjectPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IExternalTessellationObjectPtr __fastcall get_TessellationObject(long Id/*[in]*/)
  {
    Kompasltapi7_tlb::IExternalTessellationObjectPtr PVal;
    OLECHECK(this->get_TessellationObject(Id, (Kompasltapi7_tlb::IExternalTessellationObjectPtr*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall DeleteObjects(TVariantInParam Id/*[in]*/)
  {
    TOLEBOOL Result;
    OLECHECK(this->DeleteObjects(Id, (TOLEBOOL*)&Result));
    return Result;
  }

  TOLEBOOL __fastcall Clear(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Clear((TOLEBOOL*)&Result));
    return Result;
  }

  Kompasltapi7_tlb::IExternalGDIObjectPtr __fastcall AddGDIObject(void)
  {
    Kompasltapi7_tlb::IExternalGDIObjectPtr PVal;
    OLECHECK(this->AddGDIObject((Kompasltapi7_tlb::IExternalGDIObjectPtr*)&PVal));
    return PVal;
  }

  Kompasltapi7_tlb::IExternalGDIObjectPtr __fastcall get_GDIObject(long Id/*[in]*/)
  {
    Kompasltapi7_tlb::IExternalGDIObjectPtr PVal;
    OLECHECK(this->get_GDIObject(Id, (Kompasltapi7_tlb::IExternalGDIObjectPtr*)&PVal));
    return PVal;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IExternalGDIObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C234E81D-4232-41FD-980D-8E7E6EA7B733}
// *********************************************************************//
interface IExternalGDIObject  : public Kompasltapi7_tlb::IKompasAPIObject
{
public:
  // [1]  .
  virtual HRESULT STDMETHODCALLTYPE get_ObjectID(long* PVal/*[out,retval]*/) = 0;
  // [2]     .
  virtual HRESULT STDMETHODCALLTYPE SetTexts(TVariantInParam Points/*[in]*/, 
                                             TVariantInParam Texts/*[in]*/, 
                                             TVariantInParam Colors/*[in]*/, 
                                             TVariantInParam Fonts/*[in]*/, 
                                             TOLEBOOL Is3DPoints/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/) = 0;
  // [3]   ( frame == NULL       ).
  virtual HRESULT STDMETHODCALLTYPE set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                                TOLEBOOL Param2/*[in,def,opt]*/) = 0;
  // [4]  .
  virtual HRESULT STDMETHODCALLTYPE Delete(TOLEBOOL* Result/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_ObjectID(void)
  {
    long PVal;
    OLECHECK(this->get_ObjectID((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                               TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                               TOLEBOOL Is3DPoints/*[in]*/)
  {
    TOLEBOOL Res;
    OLECHECK(this->SetTexts(Points, Texts, Colors, Fonts, Is3DPoints, (TOLEBOOL*)&Res));
    return Res;
  }

  TOLEBOOL __fastcall Delete(void)
  {
    TOLEBOOL Result;
    OLECHECK(this->Delete((TOLEBOOL*)&Result));
    return Result;
  }


  __property   long            ObjectID = {read = get_ObjectID};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IModelCurve3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EB4AB3A9-8E01-4952-9119-F8D09D9572D5}
// *********************************************************************//
interface IModelCurve3D  : public IDispatch
{
public:
  // [1501]   
  virtual HRESULT STDMETHODCALLTYPE get_VertexVisible(TOLEBOOL* Value/*[out,retval]*/) = 0;
  // [1501]   
  virtual HRESULT STDMETHODCALLTYPE set_VertexVisible(TOLEBOOL Value/*[in]*/) = 0;
  // [1502]  
  virtual HRESULT STDMETHODCALLTYPE get_VertexStyle(ksAnnotationSymbolEnum* Style/*[out,retval]*/) = 0;
  // [1502]  
  virtual HRESULT STDMETHODCALLTYPE set_VertexStyle(ksAnnotationSymbolEnum Style/*[in]*/) = 0;
  // [1503]  
  virtual HRESULT STDMETHODCALLTYPE get_EdgesStyle(ksCurveStyleEnum* Style/*[out,retval]*/) = 0;
  // [1503]  
  virtual HRESULT STDMETHODCALLTYPE set_EdgesStyle(ksCurveStyleEnum Style/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_VertexVisible(void)
  {
    TOLEBOOL Value;
    OLECHECK(this->get_VertexVisible((TOLEBOOL*)&Value));
    return Value;
  }

  ksAnnotationSymbolEnum __fastcall get_VertexStyle(void)
  {
    ksAnnotationSymbolEnum Style;
    OLECHECK(this->get_VertexStyle((ksAnnotationSymbolEnum*)&Style));
    return Style;
  }

  ksCurveStyleEnum __fastcall get_EdgesStyle(void)
  {
    ksCurveStyleEnum Style;
    OLECHECK(this->get_EdgesStyle((ksCurveStyleEnum*)&Style));
    return Style;
  }


  __property   TOLEBOOL        VertexVisible = {read = get_VertexVisible, write = set_VertexVisible};
  __property   ksAnnotationSymbolEnum VertexStyle = {read = get_VertexStyle, write = set_VertexStyle};
  __property   ksCurveStyleEnum EdgesStyle = {read = get_EdgesStyle, write = set_EdgesStyle};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IPropertyStyleList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2431C46-9A35-494B-A958-D9098F82C3FA}
// *********************************************************************//
interface IPropertyStyleList  : public Kompasltapi7_tlb::IPropertyControl
{
public:
  // [101]     .   (VT_ARRAY | VT_I4)
  virtual HRESULT STDMETHODCALLTYPE Add(TVariantInParam Styles/*[in]*/, 
                                        TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [102]   .
  virtual HRESULT STDMETHODCALLTYPE get_Count(long* Count/*[out,retval]*/) = 0;
  // [103]  .
  virtual HRESULT STDMETHODCALLTYPE ClearList(TOLEBOOL* PRes/*[out,retval]*/) = 0;
  // [104]     .
  virtual HRESULT STDMETHODCALLTYPE Find(long Val/*[in]*/, long* PVal/*[out,retval]*/) = 0;
  // [105]   
  virtual HRESULT STDMETHODCALLTYPE set_CurrentIndex(long PVal/*[in]*/) = 0;
  // [105]   
  virtual HRESULT STDMETHODCALLTYPE get_CurrentIndex(long* PVal/*[out,retval]*/) = 0;
  // [106]   ' '
  virtual HRESULT STDMETHODCALLTYPE set_AnotherStyleBtnEnable(TOLEBOOL PVal/*[in]*/) = 0;
  // [106]   ' '
  virtual HRESULT STDMETHODCALLTYPE get_AnotherStyleBtnEnable(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall Add(TVariantInParam Styles/*[in]*/)
  {
    TOLEBOOL PRes;
    OLECHECK(this->Add(Styles, (TOLEBOOL*)&PRes));
    return PRes;
  }

  long __fastcall get_Count(void)
  {
    long Count;
    OLECHECK(this->get_Count((long*)&Count));
    return Count;
  }

  TOLEBOOL __fastcall ClearList(void)
  {
    TOLEBOOL PRes;
    OLECHECK(this->ClearList((TOLEBOOL*)&PRes));
    return PRes;
  }

  long __fastcall Find(long Val/*[in]*/)
  {
    long PVal;
    OLECHECK(this->Find(Val, (long*)&PVal));
    return PVal;
  }

  long __fastcall get_CurrentIndex(void)
  {
    long PVal;
    OLECHECK(this->get_CurrentIndex((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_AnotherStyleBtnEnable(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_AnotherStyleBtnEnable((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   long            Count = {read = get_Count};
  __property   long            CurrentIndex = {read = get_CurrentIndex, write = set_CurrentIndex};
  __property   TOLEBOOL        AnotherStyleBtnEnable = {read = get_AnotherStyleBtnEnable, write = set_AnotherStyleBtnEnable};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: ICircularCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A5B8E337-EE84-4EEC-8235-A812FDD6C2DE}
// *********************************************************************//
interface ICircularCopyObjectParam  : public Kompasltapi7_tlb::ICopyObjectParam
{
public:
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE set_Radius(double Val/*[in]*/) = 0;
  // [2001]  .
  virtual HRESULT STDMETHODCALLTYPE get_Radius(double* Val/*[out,retval]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE set_Step1(double PVal/*[in]*/) = 0;
  // [2002]  .
  virtual HRESULT STDMETHODCALLTYPE get_Step1(double* PVal/*[out,retval]*/) = 0;
  // [2003] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE set_StepFactor1(TOLEBOOL PVal/*[in]*/) = 0;
  // [2003] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2004]     .
  virtual HRESULT STDMETHODCALLTYPE set_Count1(long Val/*[in]*/) = 0;
  // [2004]     .
  virtual HRESULT STDMETHODCALLTYPE get_Count1(long* Val/*[out,retval]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE set_Angle2(double PVal/*[in]*/) = 0;
  // [2005]  .
  virtual HRESULT STDMETHODCALLTYPE get_Angle2(double* PVal/*[out,retval]*/) = 0;
  // [2006]  ( ).
  virtual HRESULT STDMETHODCALLTYPE set_Step2(double PVal/*[in]*/) = 0;
  // [2006]  ( ).
  virtual HRESULT STDMETHODCALLTYPE get_Step2(double* PVal/*[out,retval]*/) = 0;
  // [2007] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE set_StepFactor2(TOLEBOOL PVal/*[in]*/) = 0;
  // [2007] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2008]     .
  virtual HRESULT STDMETHODCALLTYPE set_Count2(long PVal/*[in]*/) = 0;
  // [2008]     .
  virtual HRESULT STDMETHODCALLTYPE get_Count2(long* PVal/*[out,retval]*/) = 0;
  // [2009] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/) = 0;
  // [2009] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2010] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE set_TurnObject(TOLEBOOL PVal/*[in]*/) = 0;
  // [2010] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE get_TurnObject(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Radius(void)
  {
    double Val;
    OLECHECK(this->get_Radius((double*)&Val));
    return Val;
  }

  double __fastcall get_Step1(void)
  {
    double PVal;
    OLECHECK(this->get_Step1((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_StepFactor1(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_StepFactor1((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Count1(void)
  {
    long Val;
    OLECHECK(this->get_Count1((long*)&Val));
    return Val;
  }

  double __fastcall get_Angle2(void)
  {
    double PVal;
    OLECHECK(this->get_Angle2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Step2(void)
  {
    double PVal;
    OLECHECK(this->get_Step2((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_StepFactor2(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_StepFactor2((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Count2(void)
  {
    long PVal;
    OLECHECK(this->get_Count2((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SaveCentreCopy(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SaveCentreCopy((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_TurnObject(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_TurnObject((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        StepFactor1 = {read = get_StepFactor1, write = set_StepFactor1};
  __property   long            Count1 = {read = get_Count1, write = set_Count1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        StepFactor2 = {read = get_StepFactor2, write = set_StepFactor2};
  __property   long            Count2 = {read = get_Count2, write = set_Count2};
  __property   TOLEBOOL        SaveCentreCopy = {read = get_SaveCentreCopy, write = set_SaveCentreCopy};
  __property   TOLEBOOL        TurnObject = {read = get_TurnObject, write = set_TurnObject};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface: IMeshCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {592AB214-A8CF-462E-ACD5-528839113338}
// *********************************************************************//
interface IMeshCopyObjectParam  : public Kompasltapi7_tlb::ICopyObjectParam
{
public:
  // [2001]     .
  virtual HRESULT STDMETHODCALLTYPE set_Angle1(double Val/*[in]*/) = 0;
  // [2001]     .
  virtual HRESULT STDMETHODCALLTYPE get_Angle1(double* Val/*[out,retval]*/) = 0;
  // [2002]     1.
  virtual HRESULT STDMETHODCALLTYPE set_Step1(double PVal/*[in]*/) = 0;
  // [2002]     1.
  virtual HRESULT STDMETHODCALLTYPE get_Step1(double* PVal/*[out,retval]*/) = 0;
  // [2003] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE set_StepFactor1(TOLEBOOL PVal/*[in]*/) = 0;
  // [2003] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2004]     1.
  virtual HRESULT STDMETHODCALLTYPE set_Count1(long Val/*[in]*/) = 0;
  // [2004]     1.
  virtual HRESULT STDMETHODCALLTYPE get_Count1(long* Val/*[out,retval]*/) = 0;
  // [2005]       .
  virtual HRESULT STDMETHODCALLTYPE set_Angle2(double PVal/*[in]*/) = 0;
  // [2005]       .
  virtual HRESULT STDMETHODCALLTYPE get_Angle2(double* PVal/*[out,retval]*/) = 0;
  // [2006]     2.
  virtual HRESULT STDMETHODCALLTYPE set_Step2(double PVal/*[in]*/) = 0;
  // [2006]     2.
  virtual HRESULT STDMETHODCALLTYPE get_Step2(double* PVal/*[out,retval]*/) = 0;
  // [2007] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE set_StepFactor2(TOLEBOOL PVal/*[in]*/) = 0;
  // [2007] TRUE -    , FALSE -   .
  virtual HRESULT STDMETHODCALLTYPE get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2008]     2.
  virtual HRESULT STDMETHODCALLTYPE set_Count2(long PVal/*[in]*/) = 0;
  // [2008]     2.
  virtual HRESULT STDMETHODCALLTYPE get_Count2(long* PVal/*[out,retval]*/) = 0;
  // [2009] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE set_SaveCornersCopy(TOLEBOOL PVal/*[in]*/) = 0;
  // [2009] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE get_SaveCornersCopy(TOLEBOOL* PVal/*[out,retval]*/) = 0;
  // [2010] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/) = 0;
  // [2010] TRUE -     .
  virtual HRESULT STDMETHODCALLTYPE get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  double __fastcall get_Angle1(void)
  {
    double Val;
    OLECHECK(this->get_Angle1((double*)&Val));
    return Val;
  }

  double __fastcall get_Step1(void)
  {
    double PVal;
    OLECHECK(this->get_Step1((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_StepFactor1(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_StepFactor1((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Count1(void)
  {
    long Val;
    OLECHECK(this->get_Count1((long*)&Val));
    return Val;
  }

  double __fastcall get_Angle2(void)
  {
    double PVal;
    OLECHECK(this->get_Angle2((double*)&PVal));
    return PVal;
  }

  double __fastcall get_Step2(void)
  {
    double PVal;
    OLECHECK(this->get_Step2((double*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_StepFactor2(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_StepFactor2((TOLEBOOL*)&PVal));
    return PVal;
  }

  long __fastcall get_Count2(void)
  {
    long PVal;
    OLECHECK(this->get_Count2((long*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SaveCornersCopy(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SaveCornersCopy((TOLEBOOL*)&PVal));
    return PVal;
  }

  TOLEBOOL __fastcall get_SaveCentreCopy(void)
  {
    TOLEBOOL PVal;
    OLECHECK(this->get_SaveCentreCopy((TOLEBOOL*)&PVal));
    return PVal;
  }


  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        StepFactor1 = {read = get_StepFactor1, write = set_StepFactor1};
  __property   long            Count1 = {read = get_Count1, write = set_Count1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        StepFactor2 = {read = get_StepFactor2, write = set_StepFactor2};
  __property   long            Count2 = {read = get_Count2, write = set_Count2};
  __property   TOLEBOOL        SaveCornersCopy = {read = get_SaveCornersCopy, write = set_SaveCornersCopy};
  __property   TOLEBOOL        SaveCentreCopy = {read = get_SaveCentreCopy, write = set_SaveCentreCopy};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)
typedef TComInterface<IKompasAPIObject>  TCOMIKompasAPIObject;

// *********************************************************************//
// DispIntf:  IKompasAPIObject
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C799A83-C0A4-4312-BEB0-21CBD7FF4C13}
// *********************************************************************//
template<class T>
class IKompasAPIObjectDispT : public TAutoDriver<IKompasAPIObject>
{
public:
  IKompasAPIObjectDispT(){}

  IKompasAPIObjectDispT(IKompasAPIObject *pintf)
  {
    TAutoDriver<IKompasAPIObject>::Bind(pintf, false);
  }

  IKompasAPIObjectDispT(IKompasAPIObjectPtr pintf)
  {
    TAutoDriver<IKompasAPIObject>::Bind(pintf, true);
  }

  IKompasAPIObjectDispT& operator=(IKompasAPIObject *pintf)
  {
    TAutoDriver<IKompasAPIObject>::Bind(pintf, false);
    return *this;
  }

  IKompasAPIObjectDispT& operator=(IKompasAPIObjectPtr pintf)
  {
    TAutoDriver<IKompasAPIObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IKompasAPIObjectDispT<IKompasAPIObject> IKompasAPIObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMIApplication
// Interface: IApplication
// *********************************************************************//
template <class T /* IApplication */ >
class TCOMIApplicationT : public TComInterface<IApplication>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIApplicationT() {}
  TCOMIApplicationT(IApplication *intf, bool addRef = false) : TComInterface<IApplication>(intf, addRef) {}
  TCOMIApplicationT(const TCOMIApplicationT& src) : TComInterface<IApplication>(src) {}
  TCOMIApplicationT& operator=(const TCOMIApplicationT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Documents(Kompasltapi7_tlb::IDocumentsPtr* Documents/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentsPtr __fastcall get_Documents(void);
  HRESULT         __fastcall Quit(void);
  HRESULT         __fastcall CreateProcessParam(Kompasltapi7_tlb::IProcessParamPtr* PProcessParam/*[out,retval]*/);
  Kompasltapi7_tlb::IProcessParamPtr __fastcall CreateProcessParam(void);
  HRESULT         __fastcall StopCurrentProcess(TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in,def,opt]*/);
  HRESULT         __fastcall CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/, 
                                                   Kompasltapi7_tlb::IPropertyManagerPtr* PPropertyManager/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyManagerPtr __fastcall CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/);
  HRESULT         __fastcall set_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in]*/);
  HRESULT         __fastcall get_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr* PDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall get_ActiveDocument(void);
  HRESULT         __fastcall get_LibraryManager(Kompasltapi7_tlb::ILibraryManagerPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ILibraryManagerPtr __fastcall get_LibraryManager(void);
  HRESULT         __fastcall get_KompasError(Kompasltapi7_tlb::IKompasErrorPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasErrorPtr __fastcall get_KompasError(void);
  HRESULT         __fastcall get_Converter(TVariantInParam Library/*[in]*/, 
                                           Kompasltapi7_tlb::IConverterPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IConverterPtr __fastcall get_Converter(TVariantInParam Library/*[in]*/);
  HRESULT         __fastcall get_CheckSum(Kompasltapi7_tlb::ICheckSumPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICheckSumPtr __fastcall get_CheckSum(void);
  HRESULT         __fastcall get_ProgressBarIndicator(Kompasltapi7_tlb::IProgressBarIndicatorPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IProgressBarIndicatorPtr __fastcall get_ProgressBarIndicator(void);
  HRESULT         __fastcall set_HideMessage(ksHideMessageEnum PVal/*[in]*/);
  HRESULT         __fastcall get_HideMessage(ksHideMessageEnum* PVal/*[out,retval]*/);
  ksHideMessageEnum __fastcall get_HideMessage(void);
  HRESULT         __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                  TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/);
  HRESULT         __fastcall IsKompasCommandEnable(long CommandID/*[in]*/, 
                                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall IsKompasCommandEnable(long CommandID/*[in]*/);
  HRESULT         __fastcall IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/);
  long            __fastcall IsKompasCommandCheck(long CommandID/*[in]*/);
  HRESULT         __fastcall get_SystemSettings(Kompasltapi7_tlb::ISystemSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISystemSettingsPtr __fastcall get_SystemSettings(void);
  HRESULT         __fastcall get_ApplicationName(TOLEBOOL FullName/*[in]*/, 
                                                 BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ApplicationName(TOLEBOOL FullName/*[in]*/);
  HRESULT         __fastcall get_Math2D(Kompasltapi7_tlb::IMath2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IMath2DPtr __fastcall get_Math2D(void);
  HRESULT         __fastcall get_PrintJob(Kompasltapi7_tlb::IPrintJobPtr* PrintJob/*[out,retval]*/);
  Kompasltapi7_tlb::IPrintJobPtr __fastcall get_PrintJob(void);
  HRESULT         __fastcall MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, 
                                          long Flags/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, 
                                          long Flags/*[in]*/);

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   Kompasltapi7_tlb::IDocumentsPtr Documents = {read = get_Documents};
  __property   Kompasltapi7_tlb::IKompasDocumentPtr ActiveDocument = {read = get_ActiveDocument, write = set_ActiveDocument};
  __property   Kompasltapi7_tlb::ILibraryManagerPtr LibraryManager = {read = get_LibraryManager};
  __property   Kompasltapi7_tlb::IKompasErrorPtr KompasError = {read = get_KompasError};
  __property   Kompasltapi7_tlb::ICheckSumPtr CheckSum = {read = get_CheckSum};
  __property   Kompasltapi7_tlb::IProgressBarIndicatorPtr ProgressBarIndicator = {read = get_ProgressBarIndicator};
  __property   ksHideMessageEnum HideMessage = {read = get_HideMessage, write = set_HideMessage};
  __property   Kompasltapi7_tlb::ISystemSettingsPtr SystemSettings = {read = get_SystemSettings};
  __property   Kompasltapi7_tlb::IMath2DPtr Math2D = {read = get_Math2D};
  __property   Kompasltapi7_tlb::IPrintJobPtr PrintJob = {read = get_PrintJob};
};
typedef TCOMIApplicationT<IApplication> TCOMIApplication;

// *********************************************************************//
// DispIntf:  IApplication
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6A2EFAF7-8254-45A5-9DC8-2213F16AF5D7}
// *********************************************************************//
template<class T>
class IApplicationDispT : public TAutoDriver<IApplication>
{
public:
  IApplicationDispT(){}

  IApplicationDispT(IApplication *pintf)
  {
    TAutoDriver<IApplication>::Bind(pintf, false);
  }

  IApplicationDispT(IApplicationPtr pintf)
  {
    TAutoDriver<IApplication>::Bind(pintf, true);
  }

  IApplicationDispT& operator=(IApplication *pintf)
  {
    TAutoDriver<IApplication>::Bind(pintf, false);
    return *this;
  }

  IApplicationDispT& operator=(IApplicationPtr pintf)
  {
    TAutoDriver<IApplication>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Application));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Application);
  }

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Documents(Kompasltapi7_tlb::IDocumentsPtr* Documents/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentsPtr __fastcall get_Documents(void);
  HRESULT         __fastcall Quit();
  HRESULT         __fastcall CreateProcessParam(Kompasltapi7_tlb::IProcessParamPtr* PProcessParam/*[out,retval]*/);
  Kompasltapi7_tlb::IProcessParamPtr __fastcall CreateProcessParam(void);
  HRESULT         __fastcall StopCurrentProcess(TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in,def,opt]*/);
  HRESULT         __fastcall CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/, 
                                                   Kompasltapi7_tlb::IPropertyManagerPtr* PPropertyManager/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyManagerPtr __fastcall CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/);
  HRESULT         __fastcall set_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in]*/);
  HRESULT         __fastcall get_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr* PDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall get_ActiveDocument(void);
  HRESULT         __fastcall get_LibraryManager(Kompasltapi7_tlb::ILibraryManagerPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ILibraryManagerPtr __fastcall get_LibraryManager(void);
  HRESULT         __fastcall get_KompasError(Kompasltapi7_tlb::IKompasErrorPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasErrorPtr __fastcall get_KompasError(void);
  HRESULT         __fastcall get_Converter(TVariantInParam Library/*[in]*/, 
                                           Kompasltapi7_tlb::IConverterPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IConverterPtr __fastcall get_Converter(TVariantInParam Library/*[in]*/);
  HRESULT         __fastcall get_CheckSum(Kompasltapi7_tlb::ICheckSumPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICheckSumPtr __fastcall get_CheckSum(void);
  HRESULT         __fastcall get_ProgressBarIndicator(Kompasltapi7_tlb::IProgressBarIndicatorPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IProgressBarIndicatorPtr __fastcall get_ProgressBarIndicator(void);
  HRESULT         __fastcall set_HideMessage(ksHideMessageEnum PVal/*[in]*/);
  HRESULT         __fastcall get_HideMessage(ksHideMessageEnum* PVal/*[out,retval]*/);
  ksHideMessageEnum __fastcall get_HideMessage(void);
  HRESULT         __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                  TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/);
  HRESULT         __fastcall IsKompasCommandEnable(long CommandID/*[in]*/, 
                                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall IsKompasCommandEnable(long CommandID/*[in]*/);
  HRESULT         __fastcall IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/);
  long            __fastcall IsKompasCommandCheck(long CommandID/*[in]*/);
  HRESULT         __fastcall get_SystemSettings(Kompasltapi7_tlb::ISystemSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISystemSettingsPtr __fastcall get_SystemSettings(void);
  HRESULT         __fastcall get_ApplicationName(TOLEBOOL FullName/*[in]*/, 
                                                 BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ApplicationName(TOLEBOOL FullName/*[in]*/);
  HRESULT         __fastcall get_Math2D(Kompasltapi7_tlb::IMath2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IMath2DPtr __fastcall get_Math2D(void);
  HRESULT         __fastcall get_PrintJob(Kompasltapi7_tlb::IPrintJobPtr* PrintJob/*[out,retval]*/);
  Kompasltapi7_tlb::IPrintJobPtr __fastcall get_PrintJob(void);
  HRESULT         __fastcall MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, 
                                          long Flags/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, 
                                          long Flags/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   Kompasltapi7_tlb::IDocumentsPtr Documents = {read = get_Documents};
  __property   Kompasltapi7_tlb::IKompasDocumentPtr ActiveDocument = {read = get_ActiveDocument, write = set_ActiveDocument};
  __property   Kompasltapi7_tlb::ILibraryManagerPtr LibraryManager = {read = get_LibraryManager};
  __property   Kompasltapi7_tlb::IKompasErrorPtr KompasError = {read = get_KompasError};
  __property   Kompasltapi7_tlb::ICheckSumPtr CheckSum = {read = get_CheckSum};
  __property   Kompasltapi7_tlb::IProgressBarIndicatorPtr ProgressBarIndicator = {read = get_ProgressBarIndicator};
  __property   ksHideMessageEnum HideMessage = {read = get_HideMessage, write = set_HideMessage};
  __property   Kompasltapi7_tlb::ISystemSettingsPtr SystemSettings = {read = get_SystemSettings};
  __property   Kompasltapi7_tlb::IMath2DPtr Math2D = {read = get_Math2D};
  __property   Kompasltapi7_tlb::IPrintJobPtr PrintJob = {read = get_PrintJob};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IApplicationDispT<IApplication> IApplicationDisp;

typedef TComInterface<IKompasCollection>  TCOMIKompasCollection;

// *********************************************************************//
// DispIntf:  IKompasCollection
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {901F85DE-FA5A-4314-BD75-066A79AF20A8}
// *********************************************************************//
template<class T>
class IKompasCollectionDispT : public TAutoDriver<IKompasCollection>
{
public:
  IKompasCollectionDispT(){}

  IKompasCollectionDispT(IKompasCollection *pintf)
  {
    TAutoDriver<IKompasCollection>::Bind(pintf, false);
  }

  IKompasCollectionDispT(IKompasCollectionPtr pintf)
  {
    TAutoDriver<IKompasCollection>::Bind(pintf, true);
  }

  IKompasCollectionDispT& operator=(IKompasCollection *pintf)
  {
    TAutoDriver<IKompasCollection>::Bind(pintf, false);
    return *this;
  }

  IKompasCollectionDispT& operator=(IKompasCollectionPtr pintf)
  {
    TAutoDriver<IKompasCollection>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IKompasCollectionDispT<IKompasCollection> IKompasCollectionDisp;

// *********************************************************************//
// SmartIntf: TCOMIDocuments
// Interface: IDocuments
// *********************************************************************//
template <class T /* IDocuments */ >
class TCOMIDocumentsT : public TComInterface<IDocuments>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDocumentsT() {}
  TCOMIDocumentsT(IDocuments *intf, bool addRef = false) : TComInterface<IDocuments>(intf, addRef) {}
  TCOMIDocumentsT(const TCOMIDocumentsT& src) : TComInterface<IDocuments>(src) {}
  TCOMIDocumentsT& operator=(const TCOMIDocumentsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DocumentTypeEnum Type/*[in]*/, 
                                 TOLEBOOL Visible/*[in,def,opt]*/, 
                                 Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Add(DocumentTypeEnum Type/*[in]*/, 
                                                      TOLEBOOL Visible/*[in,def,opt]*/);
  HRESULT         __fastcall Open(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                                  TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                  Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Open(BSTR PathName/*[in]*/, 
                                                       TOLEBOOL Visible/*[in,def,opt]*/, 
                                                       TOLEBOOL ReadOnly/*[in,def,opt]*/);
  HRESULT         __fastcall OpenEx(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                                    TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                    TVariantInParam LoadCombinationIndex/*[in]*/, 
                                    Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall OpenEx(BSTR PathName/*[in]*/, 
                                                         TOLEBOOL Visible/*[in,def,opt]*/, 
                                                         TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                                         TVariantInParam LoadCombinationIndex/*[in]*/);
  HRESULT         __fastcall GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/, 
                                                 TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/);
  HRESULT         __fastcall AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                                    TOLEBOOL Visible/*[in,def,opt]*/, 
                                                    Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                                                         TOLEBOOL Visible/*[in,def,opt]*/);

};
typedef TCOMIDocumentsT<IDocuments> TCOMIDocuments;

// *********************************************************************//
// DispIntf:  IDocuments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BF39F08-5537-4910-84CE-B338E55F7BCF}
// *********************************************************************//
template<class T>
class IDocumentsDispT : public TAutoDriver<IDocuments>
{
public:
  IDocumentsDispT(){}

  IDocumentsDispT(IDocuments *pintf)
  {
    TAutoDriver<IDocuments>::Bind(pintf, false);
  }

  IDocumentsDispT(IDocumentsPtr pintf)
  {
    TAutoDriver<IDocuments>::Bind(pintf, true);
  }

  IDocumentsDispT& operator=(IDocuments *pintf)
  {
    TAutoDriver<IDocuments>::Bind(pintf, false);
    return *this;
  }

  IDocumentsDispT& operator=(IDocumentsPtr pintf)
  {
    TAutoDriver<IDocuments>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Documents));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Documents);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DocumentTypeEnum Type/*[in]*/, 
                                 TOLEBOOL Visible/*[in,def,opt]*/, 
                                 Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Add(DocumentTypeEnum Type/*[in]*/, 
                                                      TOLEBOOL Visible/*[in,def,opt]*/);
  HRESULT         __fastcall Open(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                                  TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                  Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Open(BSTR PathName/*[in]*/, 
                                                       TOLEBOOL Visible/*[in,def,opt]*/, 
                                                       TOLEBOOL ReadOnly/*[in,def,opt]*/);
  HRESULT         __fastcall OpenEx(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                                    TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                    TVariantInParam LoadCombinationIndex/*[in]*/, 
                                    Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall OpenEx(BSTR PathName/*[in]*/, 
                                                         TOLEBOOL Visible/*[in,def,opt]*/, 
                                                         TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                                         TVariantInParam LoadCombinationIndex/*[in]*/);
  HRESULT         __fastcall GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/
                                                 , TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/);
  HRESULT         __fastcall AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/
                                                    , TOLEBOOL Visible/*[in,def,opt]*/, 
                                                    Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                                                         TOLEBOOL Visible/*[in,def,opt]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDocumentsDispT<IDocuments> IDocumentsDisp;

// *********************************************************************//
// SmartIntf: TCOMIKompasDocument
// Interface: IKompasDocument
// *********************************************************************//
template <class T /* IKompasDocument */ >
class TCOMIKompasDocumentT : public TComInterface<IKompasDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIKompasDocumentT() {}
  TCOMIKompasDocumentT(IKompasDocument *intf, bool addRef = false) : TComInterface<IKompasDocument>(intf, addRef) {}
  TCOMIKompasDocumentT(const TCOMIKompasDocumentT& src) : TComInterface<IKompasDocument>(src) {}
  TCOMIKompasDocumentT& operator=(const TCOMIKompasDocumentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save(void);
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};
};
typedef TCOMIKompasDocumentT<IKompasDocument> TCOMIKompasDocument;

// *********************************************************************//
// DispIntf:  IKompasDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C6E318D-BD6E-4AFA-8A13-977EAA0845EF}
// *********************************************************************//
template<class T>
class IKompasDocumentDispT : public TAutoDriver<IKompasDocument>
{
public:
  IKompasDocumentDispT(){}

  IKompasDocumentDispT(IKompasDocument *pintf)
  {
    TAutoDriver<IKompasDocument>::Bind(pintf, false);
  }

  IKompasDocumentDispT(IKompasDocumentPtr pintf)
  {
    TAutoDriver<IKompasDocument>::Bind(pintf, true);
  }

  IKompasDocumentDispT& operator=(IKompasDocument *pintf)
  {
    TAutoDriver<IKompasDocument>::Bind(pintf, false);
    return *this;
  }

  IKompasDocumentDispT& operator=(IKompasDocumentPtr pintf)
  {
    TAutoDriver<IKompasDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_KompasDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_KompasDocument);
  }

  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IKompasDocumentDispT<IKompasDocument> IKompasDocumentDisp;

// *********************************************************************//
// SmartIntf: TCOMIDocumentFrames
// Interface: IDocumentFrames
// *********************************************************************//
template <class T /* IDocumentFrames */ >
class TCOMIDocumentFramesT : public TComInterface<IDocumentFrames>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDocumentFramesT() {}
  TCOMIDocumentFramesT(IDocumentFrames *intf, bool addRef = false) : TComInterface<IDocumentFrames>(intf, addRef) {}
  TCOMIDocumentFramesT(const TCOMIDocumentFramesT& src) : TComInterface<IDocumentFrames>(src) {}
  TCOMIDocumentFramesT& operator=(const TCOMIDocumentFramesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDocumentFramePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIDocumentFramesT<IDocumentFrames> TCOMIDocumentFrames;

// *********************************************************************//
// DispIntf:  IDocumentFrames
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1D18C466-C085-4D68-A465-A85D0C8E3A0E}
// *********************************************************************//
template<class T>
class IDocumentFramesDispT : public TAutoDriver<IDocumentFrames>
{
public:
  IDocumentFramesDispT(){}

  IDocumentFramesDispT(IDocumentFrames *pintf)
  {
    TAutoDriver<IDocumentFrames>::Bind(pintf, false);
  }

  IDocumentFramesDispT(IDocumentFramesPtr pintf)
  {
    TAutoDriver<IDocumentFrames>::Bind(pintf, true);
  }

  IDocumentFramesDispT& operator=(IDocumentFrames *pintf)
  {
    TAutoDriver<IDocumentFrames>::Bind(pintf, false);
    return *this;
  }

  IDocumentFramesDispT& operator=(IDocumentFramesPtr pintf)
  {
    TAutoDriver<IDocumentFrames>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DocumentFrames));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DocumentFrames);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDocumentFramePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDocumentFramesDispT<IDocumentFrames> IDocumentFramesDisp;

// *********************************************************************//
// SmartIntf: TCOMIDocumentFrame
// Interface: IDocumentFrame
// *********************************************************************//
template <class T /* IDocumentFrame */ >
class TCOMIDocumentFrameT : public TComInterface<IDocumentFrame>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDocumentFrameT() {}
  TCOMIDocumentFrameT(IDocumentFrame *intf, bool addRef = false) : TComInterface<IDocumentFrame>(intf, addRef) {}
  TCOMIDocumentFrameT(const TCOMIDocumentFrameT& src) : TComInterface<IDocumentFrame>(src) {}
  TCOMIDocumentFrameT& operator=(const TCOMIDocumentFrameT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Regime(FrameRegimeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Regime(FrameRegimeEnum* PVal/*[out,retval]*/);
  FrameRegimeEnum __fastcall get_Regime(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall Zoom(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                  double Y2/*[in]*/);
  HRESULT         __fastcall ZoomPrevNextOrAll(ZoomTypeEnum Type/*[in]*/);
  HRESULT         __fastcall ZoomScale(double X/*[in]*/, double Y/*[in]*/, double Scale/*[in]*/);
  HRESULT         __fastcall GetZoomScale(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Scale/*[out]*/);
  HRESULT         __fastcall GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/);
  OLE_HANDLE      __fastcall GetHWND(void);
  HRESULT         __fastcall SetGabaritModifying(void);
  HRESULT         __fastcall RefreshWindow(void);
  HRESULT         __fastcall ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                                long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                                double* Y/*[out]*/, double* Z/*[out]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                                long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                                double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                  TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/);
  HRESULT         __fastcall IsKompasCommandEnable(long CommandID/*[in]*/, 
                                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall IsKompasCommandEnable(long CommandID/*[in]*/);
  HRESULT         __fastcall IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/);
  long            __fastcall IsKompasCommandCheck(long CommandID/*[in]*/);

  __property   FrameRegimeEnum Regime = {read = get_Regime, write = set_Regime};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   BSTR            Caption = {read = get_Caption};
};
typedef TCOMIDocumentFrameT<IDocumentFrame> TCOMIDocumentFrame;

// *********************************************************************//
// DispIntf:  IDocumentFrame
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4437FABA-990F-45E2-B1A2-7754FB326B76}
// *********************************************************************//
template<class T>
class IDocumentFrameDispT : public TAutoDriver<IDocumentFrame>
{
public:
  IDocumentFrameDispT(){}

  IDocumentFrameDispT(IDocumentFrame *pintf)
  {
    TAutoDriver<IDocumentFrame>::Bind(pintf, false);
  }

  IDocumentFrameDispT(IDocumentFramePtr pintf)
  {
    TAutoDriver<IDocumentFrame>::Bind(pintf, true);
  }

  IDocumentFrameDispT& operator=(IDocumentFrame *pintf)
  {
    TAutoDriver<IDocumentFrame>::Bind(pintf, false);
    return *this;
  }

  IDocumentFrameDispT& operator=(IDocumentFramePtr pintf)
  {
    TAutoDriver<IDocumentFrame>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DocumentFrame));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DocumentFrame);
  }

  HRESULT         __fastcall set_Regime(FrameRegimeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Regime(FrameRegimeEnum* PVal/*[out,retval]*/);
  FrameRegimeEnum __fastcall get_Regime(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall Zoom(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                  double Y2/*[in]*/);
  HRESULT         __fastcall ZoomPrevNextOrAll(ZoomTypeEnum Type/*[in]*/);
  HRESULT         __fastcall ZoomScale(double X/*[in]*/, double Y/*[in]*/, double Scale/*[in]*/);
  HRESULT         __fastcall GetZoomScale(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Scale/*[out]*/);
  HRESULT         __fastcall GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/);
  OLE_HANDLE      __fastcall GetHWND(void);
  HRESULT         __fastcall SetGabaritModifying();
  HRESULT         __fastcall RefreshWindow();
  HRESULT         __fastcall ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/
                                                , long LX/*[in]*/, long LY/*[in]*/, 
                                                double* X/*[out]*/, double* Y/*[out]*/, 
                                                double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                                long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                                double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                                  TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall ExecuteKompasCommand(long CommandID/*[in]*/, 
                                                  TOLEBOOL PostMessage/*[in,def,opt]*/);
  HRESULT         __fastcall IsKompasCommandEnable(long CommandID/*[in]*/, 
                                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall IsKompasCommandEnable(long CommandID/*[in]*/);
  HRESULT         __fastcall IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/);
  long            __fastcall IsKompasCommandCheck(long CommandID/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   FrameRegimeEnum Regime = {read = get_Regime, write = set_Regime};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   BSTR            Caption = {read = get_Caption};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDocumentFrameDispT<IDocumentFrame> IDocumentFrameDisp;

// *********************************************************************//
// SmartIntf: TCOMIDocumentSettings
// Interface: IDocumentSettings
// *********************************************************************//
template <class T /* IDocumentSettings */ >
class TCOMIDocumentSettingsT : public TComInterface<IDocumentSettings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDocumentSettingsT() {}
  TCOMIDocumentSettingsT(IDocumentSettings *intf, bool addRef = false) : TComInterface<IDocumentSettings>(intf, addRef) {}
  TCOMIDocumentSettingsT(const TCOMIDocumentSettingsT& src) : TComInterface<IDocumentSettings>(src) {}
  TCOMIDocumentSettingsT& operator=(const TCOMIDocumentSettingsT& src) { Bind(src, true); return *this;}


};
typedef TCOMIDocumentSettingsT<IDocumentSettings> TCOMIDocumentSettings;

// *********************************************************************//
// DispIntf:  IDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B35FF50E-2991-4630-8AB8-DC3153E7971A}
// *********************************************************************//
template<class T>
class IDocumentSettingsDispT : public TAutoDriver<IDocumentSettings>
{
public:
  IDocumentSettingsDispT(){}

  IDocumentSettingsDispT(IDocumentSettings *pintf)
  {
    TAutoDriver<IDocumentSettings>::Bind(pintf, false);
  }

  IDocumentSettingsDispT(IDocumentSettingsPtr pintf)
  {
    TAutoDriver<IDocumentSettings>::Bind(pintf, true);
  }

  IDocumentSettingsDispT& operator=(IDocumentSettings *pintf)
  {
    TAutoDriver<IDocumentSettings>::Bind(pintf, false);
    return *this;
  }

  IDocumentSettingsDispT& operator=(IDocumentSettingsPtr pintf)
  {
    TAutoDriver<IDocumentSettings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DocumentSettings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DocumentSettings);
  }

  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDocumentSettingsDispT<IDocumentSettings> IDocumentSettingsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationDescriptions
// Interface: ISpecificationDescriptions
// *********************************************************************//
template <class T /* ISpecificationDescriptions */ >
class TCOMISpecificationDescriptionsT : public TComInterface<ISpecificationDescriptions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationDescriptionsT() {}
  TCOMISpecificationDescriptionsT(ISpecificationDescriptions *intf, bool addRef = false) : TComInterface<ISpecificationDescriptions>(intf, addRef) {}
  TCOMISpecificationDescriptionsT(const TCOMISpecificationDescriptionsT& src) : TComInterface<ISpecificationDescriptions>(src) {}
  TCOMISpecificationDescriptionsT& operator=(const TCOMISpecificationDescriptionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, BSTR SpcName/*[in]*/, 
                                 Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall Add(BSTR LayoutName/*[in]*/, 
                                                                long StyleID/*[in]*/, 
                                                                BSTR SpcName/*[in]*/);
  HRESULT         __fastcall get_Description(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Description(BSTR LayoutName/*[in]*/, 
                                                                            long StyleID/*[in]*/);
  HRESULT         __fastcall get_Active(Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Active(void);

  __property   Kompasltapi7_tlb::ISpecificationDescriptionPtr Active = {read = get_Active};
};
typedef TCOMISpecificationDescriptionsT<ISpecificationDescriptions> TCOMISpecificationDescriptions;

// *********************************************************************//
// DispIntf:  ISpecificationDescriptions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9632C5C-86E1-4BC9-83A5-A954E407246A}
// *********************************************************************//
template<class T>
class ISpecificationDescriptionsDispT : public TAutoDriver<ISpecificationDescriptions>
{
public:
  ISpecificationDescriptionsDispT(){}

  ISpecificationDescriptionsDispT(ISpecificationDescriptions *pintf)
  {
    TAutoDriver<ISpecificationDescriptions>::Bind(pintf, false);
  }

  ISpecificationDescriptionsDispT(ISpecificationDescriptionsPtr pintf)
  {
    TAutoDriver<ISpecificationDescriptions>::Bind(pintf, true);
  }

  ISpecificationDescriptionsDispT& operator=(ISpecificationDescriptions *pintf)
  {
    TAutoDriver<ISpecificationDescriptions>::Bind(pintf, false);
    return *this;
  }

  ISpecificationDescriptionsDispT& operator=(ISpecificationDescriptionsPtr pintf)
  {
    TAutoDriver<ISpecificationDescriptions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationDescriptions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationDescriptions);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, BSTR SpcName/*[in]*/
                                 , 
                                 Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall Add(BSTR LayoutName/*[in]*/, 
                                                                long StyleID/*[in]*/, 
                                                                BSTR SpcName/*[in]*/);
  HRESULT         __fastcall get_Description(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Description(BSTR LayoutName/*[in]*/, 
                                                                            long StyleID/*[in]*/);
  HRESULT         __fastcall get_Active(Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall get_Active(void);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ISpecificationDescriptionPtr Active = {read = get_Active};

  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationDescriptionsDispT<ISpecificationDescriptions> ISpecificationDescriptionsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationDescription
// Interface: ISpecificationDescription
// *********************************************************************//
template <class T /* ISpecificationDescription */ >
class TCOMISpecificationDescriptionT : public TComInterface<ISpecificationDescription>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationDescriptionT() {}
  TCOMISpecificationDescriptionT(ISpecificationDescription *intf, bool addRef = false) : TComInterface<ISpecificationDescription>(intf, addRef) {}
  TCOMISpecificationDescriptionT(const TCOMISpecificationDescriptionT& src) : TComInterface<ISpecificationDescription>(src) {}
  TCOMISpecificationDescriptionT& operator=(const TCOMISpecificationDescriptionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LayoutName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutName(void);
  HRESULT         __fastcall set_LayoutName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_StyleID(long* PVal/*[out,retval]*/);
  long            __fastcall get_StyleID(void);
  HRESULT         __fastcall set_StyleID(long PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationDocumentName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SpecificationDocumentName(void);
  HRESULT         __fastcall set_SpecificationDocumentName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_SpecificationStyle(Kompasltapi7_tlb::ISpecificationStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationStylePtr __fastcall get_SpecificationStyle(void);
  HRESULT         __fastcall get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall get_SpecificationTuning(void);
  HRESULT         __fastcall get_Objects(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Objects(void);
  HRESULT         __fastcall get_BaseObjects(Kompasltapi7_tlb::ISpecificationBaseObjectsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectsPtr __fastcall get_BaseObjects(void);
  HRESULT         __fastcall get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall get_CommentObjects(void);
  HRESULT         __fastcall get_ShowOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowOnSheet(void);
  HRESULT         __fastcall set_ShowOnSheet(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationObjectPtr __fastcall get_CurrentObject(void);
  HRESULT         __fastcall set_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_ShowAllObjects(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowAllObjects(void);
  HRESULT         __fastcall set_ShowAllObjects(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                 long BlockIndex/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                 long BlockIndex/*[in]*/);
  HRESULT         __fastcall set_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                 long BlockIndex/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_DelegateMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DelegateMode(void);
  HRESULT         __fastcall set_DelegateMode(TOLEBOOL PVal/*[in,def,opt]*/);

  __property   BSTR            LayoutName = {read = get_LayoutName, write = set_LayoutName};
  __property   long            StyleID = {read = get_StyleID, write = set_StyleID};
  __property   BSTR            SpecificationDocumentName = {read = get_SpecificationDocumentName, write = set_SpecificationDocumentName};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   Kompasltapi7_tlb::ISpecificationStylePtr SpecificationStyle = {read = get_SpecificationStyle};
  __property   Kompasltapi7_tlb::ISpecificationTuningPtr SpecificationTuning = {read = get_SpecificationTuning};
  __property   Kompasltapi7_tlb::ISpecificationBaseObjectsPtr BaseObjects = {read = get_BaseObjects};
  __property   Kompasltapi7_tlb::ISpecificationCommentObjectsPtr CommentObjects = {read = get_CommentObjects};
  __property   TOLEBOOL        ShowOnSheet = {read = get_ShowOnSheet, write = set_ShowOnSheet};
  __property   Kompasltapi7_tlb::ISpecificationObjectPtr CurrentObject = {read = get_CurrentObject, write = set_CurrentObject};
  __property   TOLEBOOL        ShowAllObjects = {read = get_ShowAllObjects, write = set_ShowAllObjects};
  __property   TOLEBOOL        DelegateMode = {read = get_DelegateMode, write = set_DelegateMode};
};
typedef TCOMISpecificationDescriptionT<ISpecificationDescription> TCOMISpecificationDescription;

// *********************************************************************//
// DispIntf:  ISpecificationDescription
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9678959E-166B-45F3-BDE8-88BBF4645F5C}
// *********************************************************************//
template<class T>
class ISpecificationDescriptionDispT : public TAutoDriver<ISpecificationDescription>
{
public:
  ISpecificationDescriptionDispT(){}

  ISpecificationDescriptionDispT(ISpecificationDescription *pintf)
  {
    TAutoDriver<ISpecificationDescription>::Bind(pintf, false);
  }

  ISpecificationDescriptionDispT(ISpecificationDescriptionPtr pintf)
  {
    TAutoDriver<ISpecificationDescription>::Bind(pintf, true);
  }

  ISpecificationDescriptionDispT& operator=(ISpecificationDescription *pintf)
  {
    TAutoDriver<ISpecificationDescription>::Bind(pintf, false);
    return *this;
  }

  ISpecificationDescriptionDispT& operator=(ISpecificationDescriptionPtr pintf)
  {
    TAutoDriver<ISpecificationDescription>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationDescription));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationDescription);
  }

  HRESULT         __fastcall get_LayoutName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutName(void);
  HRESULT         __fastcall set_LayoutName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_StyleID(long* PVal/*[out,retval]*/);
  long            __fastcall get_StyleID(void);
  HRESULT         __fastcall set_StyleID(long PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationDocumentName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SpecificationDocumentName(void);
  HRESULT         __fastcall set_SpecificationDocumentName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_SpecificationStyle(Kompasltapi7_tlb::ISpecificationStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationStylePtr __fastcall get_SpecificationStyle(void);
  HRESULT         __fastcall get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall get_SpecificationTuning(void);
  HRESULT         __fastcall get_Objects(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Objects(void);
  HRESULT         __fastcall get_BaseObjects(Kompasltapi7_tlb::ISpecificationBaseObjectsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectsPtr __fastcall get_BaseObjects(void);
  HRESULT         __fastcall get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall get_CommentObjects(void);
  HRESULT         __fastcall get_ShowOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowOnSheet(void);
  HRESULT         __fastcall set_ShowOnSheet(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationObjectPtr __fastcall get_CurrentObject(void);
  HRESULT         __fastcall set_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_ShowAllObjects(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowAllObjects(void);
  HRESULT         __fastcall set_ShowAllObjects(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                 long BlockIndex/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                 long BlockIndex/*[in]*/);
  HRESULT         __fastcall set_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                 long BlockIndex/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_DelegateMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DelegateMode(void);
  HRESULT         __fastcall set_DelegateMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            LayoutName = {read = get_LayoutName, write = set_LayoutName};
  __property   long            StyleID = {read = get_StyleID, write = set_StyleID};
  __property   BSTR            SpecificationDocumentName = {read = get_SpecificationDocumentName, write = set_SpecificationDocumentName};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   Kompasltapi7_tlb::ISpecificationStylePtr SpecificationStyle = {read = get_SpecificationStyle};
  __property   Kompasltapi7_tlb::ISpecificationTuningPtr SpecificationTuning = {read = get_SpecificationTuning};
  __property   Kompasltapi7_tlb::ISpecificationBaseObjectsPtr BaseObjects = {read = get_BaseObjects};
  __property   Kompasltapi7_tlb::ISpecificationCommentObjectsPtr CommentObjects = {read = get_CommentObjects};
  __property   TOLEBOOL        ShowOnSheet = {read = get_ShowOnSheet, write = set_ShowOnSheet};
  __property   Kompasltapi7_tlb::ISpecificationObjectPtr CurrentObject = {read = get_CurrentObject, write = set_CurrentObject};
  __property   TOLEBOOL        ShowAllObjects = {read = get_ShowAllObjects, write = set_ShowAllObjects};
  __property   TOLEBOOL        DelegateMode = {read = get_DelegateMode, write = set_DelegateMode};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationDescriptionDispT<ISpecificationDescription> ISpecificationDescriptionDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationStyle
// Interface: ISpecificationStyle
// *********************************************************************//
template <class T /* ISpecificationStyle */ >
class TCOMISpecificationStyleT : public TComInterface<ISpecificationStyle>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationStyleT() {}
  TCOMISpecificationStyleT(ISpecificationStyle *intf, bool addRef = false) : TComInterface<ISpecificationStyle>(intf, addRef) {}
  TCOMISpecificationStyleT(const TCOMISpecificationStyleT& src) : TComInterface<ISpecificationStyle>(src) {}
  TCOMISpecificationStyleT& operator=(const TCOMISpecificationStyleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LayoutName1(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutName1(void);
  HRESULT         __fastcall get_StyleID1(long* PVal/*[out,retval]*/);
  long            __fastcall get_StyleID1(void);
  HRESULT         __fastcall get_LayoutName2(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutName2(void);
  HRESULT         __fastcall get_StyleID2(long* PVal/*[out,retval]*/);
  long            __fastcall get_StyleID2(void);
  HRESULT         __fastcall get_Variant(ksSpecificationVariantEnum* PVal/*[out,retval]*/);
  ksSpecificationVariantEnum __fastcall get_Variant(void);
  HRESULT         __fastcall get_SectionOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SectionOn(void);
  HRESULT         __fastcall get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall get_SpecificationTuning(void);
  HRESULT         __fastcall get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetFormatPtr __fastcall get_Format(void);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_Sections(Kompasltapi7_tlb::ISpecificationSectionStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSectionStylesPtr __fastcall get_Sections(void);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall get_AdditionalBlocks(void);
  HRESULT         __fastcall get_SortSectionDown(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SortSectionDown(void);

  __property   BSTR            LayoutName1 = {read = get_LayoutName1};
  __property   long            StyleID1 = {read = get_StyleID1};
  __property   BSTR            LayoutName2 = {read = get_LayoutName2};
  __property   long            StyleID2 = {read = get_StyleID2};
  __property   ksSpecificationVariantEnum Variant = {read = get_Variant};
  __property   TOLEBOOL        SectionOn = {read = get_SectionOn};
  __property   Kompasltapi7_tlb::ISpecificationTuningPtr SpecificationTuning = {read = get_SpecificationTuning};
  __property   Kompasltapi7_tlb::ISheetFormatPtr Format = {read = get_Format};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::ISpecificationSectionStylesPtr Sections = {read = get_Sections};
  __property   Kompasltapi7_tlb::IAdditionalBlockStylesPtr AdditionalBlocks = {read = get_AdditionalBlocks};
  __property   TOLEBOOL        SortSectionDown = {read = get_SortSectionDown};
};
typedef TCOMISpecificationStyleT<ISpecificationStyle> TCOMISpecificationStyle;

// *********************************************************************//
// DispIntf:  ISpecificationStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F237D2B3-DFEE-4702-B71F-E5F6923F03E6}
// *********************************************************************//
template<class T>
class ISpecificationStyleDispT : public TAutoDriver<ISpecificationStyle>
{
public:
  ISpecificationStyleDispT(){}

  ISpecificationStyleDispT(ISpecificationStyle *pintf)
  {
    TAutoDriver<ISpecificationStyle>::Bind(pintf, false);
  }

  ISpecificationStyleDispT(ISpecificationStylePtr pintf)
  {
    TAutoDriver<ISpecificationStyle>::Bind(pintf, true);
  }

  ISpecificationStyleDispT& operator=(ISpecificationStyle *pintf)
  {
    TAutoDriver<ISpecificationStyle>::Bind(pintf, false);
    return *this;
  }

  ISpecificationStyleDispT& operator=(ISpecificationStylePtr pintf)
  {
    TAutoDriver<ISpecificationStyle>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationStyle));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationStyle);
  }

  HRESULT         __fastcall get_LayoutName1(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutName1(void);
  HRESULT         __fastcall get_StyleID1(long* PVal/*[out,retval]*/);
  long            __fastcall get_StyleID1(void);
  HRESULT         __fastcall get_LayoutName2(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutName2(void);
  HRESULT         __fastcall get_StyleID2(long* PVal/*[out,retval]*/);
  long            __fastcall get_StyleID2(void);
  HRESULT         __fastcall get_Variant(ksSpecificationVariantEnum* PVal/*[out,retval]*/);
  ksSpecificationVariantEnum __fastcall get_Variant(void);
  HRESULT         __fastcall get_SectionOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SectionOn(void);
  HRESULT         __fastcall get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall get_SpecificationTuning(void);
  HRESULT         __fastcall get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetFormatPtr __fastcall get_Format(void);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_Sections(Kompasltapi7_tlb::ISpecificationSectionStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSectionStylesPtr __fastcall get_Sections(void);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall get_AdditionalBlocks(void);
  HRESULT         __fastcall get_SortSectionDown(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SortSectionDown(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            LayoutName1 = {read = get_LayoutName1};
  __property   long            StyleID1 = {read = get_StyleID1};
  __property   BSTR            LayoutName2 = {read = get_LayoutName2};
  __property   long            StyleID2 = {read = get_StyleID2};
  __property   ksSpecificationVariantEnum Variant = {read = get_Variant};
  __property   TOLEBOOL        SectionOn = {read = get_SectionOn};
  __property   Kompasltapi7_tlb::ISpecificationTuningPtr SpecificationTuning = {read = get_SpecificationTuning};
  __property   Kompasltapi7_tlb::ISheetFormatPtr Format = {read = get_Format};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::ISpecificationSectionStylesPtr Sections = {read = get_Sections};
  __property   Kompasltapi7_tlb::IAdditionalBlockStylesPtr AdditionalBlocks = {read = get_AdditionalBlocks};
  __property   TOLEBOOL        SortSectionDown = {read = get_SortSectionDown};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationStyleDispT<ISpecificationStyle> ISpecificationStyleDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationTuning
// Interface: ISpecificationTuning
// *********************************************************************//
template <class T /* ISpecificationTuning */ >
class TCOMISpecificationTuningT : public TComInterface<ISpecificationTuning>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationTuningT() {}
  TCOMISpecificationTuningT(ISpecificationTuning *intf, bool addRef = false) : TComInterface<ISpecificationTuning>(intf, addRef) {}
  TCOMISpecificationTuningT(const TCOMISpecificationTuningT& src) : TComInterface<ISpecificationTuning>(src) {}
  TCOMISpecificationTuningT& operator=(const TCOMISpecificationTuningT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LinkType(ksSpecificationLinkTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationLinkTypeEnum __fastcall get_LinkType(void);
  HRESULT         __fastcall set_LinkType(ksSpecificationLinkTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CalculateZone(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CalculateZone(void);
  HRESULT         __fastcall set_CalculateZone(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CalculatePosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CalculatePosition(void);
  HRESULT         __fastcall set_CalculatePosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowSectionName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowSectionName(void);
  HRESULT         __fastcall set_ShowSectionName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DeleteGeometry(void);
  HRESULT         __fastcall set_DeleteGeometry(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisableEmptyString(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableEmptyString(void);
  HRESULT         __fastcall set_DisableEmptyString(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisableEmptyBlockString(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableEmptyBlockString(void);
  HRESULT         __fastcall set_DisableEmptyBlockString(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertNull(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertNull(void);
  HRESULT         __fastcall set_InsertNull(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertDash(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertDash(void);
  HRESULT         __fastcall set_InsertDash(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowInfoByObjects(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowInfoByObjects(void);
  HRESULT         __fastcall set_ShowInfoByObjects(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SupportPerformance(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SupportPerformance(void);
  HRESULT         __fastcall set_SupportPerformance(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowPerformanceFull(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowPerformanceFull(void);
  HRESULT         __fastcall set_ShowPerformanceFull(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BlockOnNewPage(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BlockOnNewPage(void);
  HRESULT         __fastcall set_BlockOnNewPage(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PositionUp(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PositionUp(void);
  HRESULT         __fastcall set_PositionUp(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DrawBottomUp(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawBottomUp(void);
  HRESULT         __fastcall set_DrawBottomUp(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_UserTextStyle(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UserTextStyle(void);
  HRESULT         __fastcall set_UserTextStyle(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PerformanceCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_PerformanceCount(void);
  HRESULT         __fastcall set_PerformanceCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_BlockCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockCount(void);
  HRESULT         __fastcall get_InitialPosition(long* PVal/*[out,retval]*/);
  long            __fastcall get_InitialPosition(void);
  HRESULT         __fastcall set_InitialPosition(long PVal/*[in]*/);
  HRESULT         __fastcall get_PredefinedTextFileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PredefinedTextFileName(void);
  HRESULT         __fastcall set_PredefinedTextFileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_SectionTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_SectionTextStyleFirst(void);
  HRESULT         __fastcall get_SectionTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_SectionTextStyleNext(void);
  HRESULT         __fastcall get_ObjectTextStyle(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_ObjectTextStyle(void);
  HRESULT         __fastcall get_Sections(Kompasltapi7_tlb::ISpecificationTuningSectionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningSectionsPtr __fastcall get_Sections(void);
  HRESULT         __fastcall get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseAdditionalBlocks(void);
  HRESULT         __fastcall set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall get_AdditionalBlocks(void);
  HRESULT         __fastcall get_ShowAdditionalBlockName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowAdditionalBlockName(void);
  HRESULT         __fastcall set_ShowAdditionalBlockName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowNestingBlockName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowNestingBlockName(void);
  HRESULT         __fastcall set_ShowNestingBlockName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowPerformanceBlockName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowPerformanceBlockName(void);
  HRESULT         __fastcall set_ShowPerformanceBlockName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PerformanceBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_PerformanceBlockTextStyleFirst(void);
  HRESULT         __fastcall get_PerformanceBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_PerformanceBlockTextStyleNext(void);
  HRESULT         __fastcall get_AdditionalBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_AdditionalBlockTextStyleFirst(void);
  HRESULT         __fastcall get_AdditionalBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_AdditionalBlockTextStyleNext(void);
  HRESULT         __fastcall get_NestingBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_NestingBlockTextStyleFirst(void);
  HRESULT         __fastcall get_NestingBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_NestingBlockTextStyleNext(void);
  HRESULT         __fastcall get_DisableNestingBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableNestingBlockEmptyStrings(void);
  HRESULT         __fastcall set_DisableNestingBlockEmptyStrings(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisableAdditionalBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableAdditionalBlockEmptyStrings(void);
  HRESULT         __fastcall set_DisableAdditionalBlockEmptyStrings(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DeleteSpcObjectOnDeleteGeometry(void);
  HRESULT         __fastcall set_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CopySpcObjectOnCopyGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CopySpcObjectOnCopyGeometry(void);
  HRESULT         __fastcall set_CopySpcObjectOnCopyGeometry(TOLEBOOL PVal/*[in]*/);

  __property   ksSpecificationLinkTypeEnum LinkType = {read = get_LinkType, write = set_LinkType};
  __property   TOLEBOOL        CalculateZone = {read = get_CalculateZone, write = set_CalculateZone};
  __property   TOLEBOOL        CalculatePosition = {read = get_CalculatePosition, write = set_CalculatePosition};
  __property   TOLEBOOL        ShowSectionName = {read = get_ShowSectionName, write = set_ShowSectionName};
  __property   TOLEBOOL        DeleteGeometry = {read = get_DeleteGeometry, write = set_DeleteGeometry};
  __property   TOLEBOOL        DisableEmptyString = {read = get_DisableEmptyString, write = set_DisableEmptyString};
  __property   TOLEBOOL        DisableEmptyBlockString = {read = get_DisableEmptyBlockString, write = set_DisableEmptyBlockString};
  __property   TOLEBOOL        InsertNull = {read = get_InsertNull, write = set_InsertNull};
  __property   TOLEBOOL        InsertDash = {read = get_InsertDash, write = set_InsertDash};
  __property   TOLEBOOL        ShowInfoByObjects = {read = get_ShowInfoByObjects, write = set_ShowInfoByObjects};
  __property   TOLEBOOL        SupportPerformance = {read = get_SupportPerformance, write = set_SupportPerformance};
  __property   TOLEBOOL        ShowPerformanceFull = {read = get_ShowPerformanceFull, write = set_ShowPerformanceFull};
  __property   TOLEBOOL        BlockOnNewPage = {read = get_BlockOnNewPage, write = set_BlockOnNewPage};
  __property   TOLEBOOL        PositionUp = {read = get_PositionUp, write = set_PositionUp};
  __property   TOLEBOOL        DrawBottomUp = {read = get_DrawBottomUp, write = set_DrawBottomUp};
  __property   TOLEBOOL        UserTextStyle = {read = get_UserTextStyle, write = set_UserTextStyle};
  __property   long            PerformanceCount = {read = get_PerformanceCount, write = set_PerformanceCount};
  __property   long            BlockCount = {read = get_BlockCount};
  __property   long            InitialPosition = {read = get_InitialPosition, write = set_InitialPosition};
  __property   BSTR            PredefinedTextFileName = {read = get_PredefinedTextFileName, write = set_PredefinedTextFileName};
  __property   Kompasltapi7_tlb::ITextStylePtr SectionTextStyleFirst = {read = get_SectionTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr SectionTextStyleNext = {read = get_SectionTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr ObjectTextStyle = {read = get_ObjectTextStyle};
  __property   Kompasltapi7_tlb::ISpecificationTuningSectionsPtr Sections = {read = get_Sections};
  __property   TOLEBOOL        UseAdditionalBlocks = {read = get_UseAdditionalBlocks, write = set_UseAdditionalBlocks};
  __property   Kompasltapi7_tlb::IAdditionalBlockTuningsPtr AdditionalBlocks = {read = get_AdditionalBlocks};
  __property   TOLEBOOL        ShowAdditionalBlockName = {read = get_ShowAdditionalBlockName, write = set_ShowAdditionalBlockName};
  __property   TOLEBOOL        ShowNestingBlockName = {read = get_ShowNestingBlockName, write = set_ShowNestingBlockName};
  __property   TOLEBOOL        ShowPerformanceBlockName = {read = get_ShowPerformanceBlockName, write = set_ShowPerformanceBlockName};
  __property   Kompasltapi7_tlb::ITextStylePtr PerformanceBlockTextStyleFirst = {read = get_PerformanceBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr PerformanceBlockTextStyleNext = {read = get_PerformanceBlockTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr AdditionalBlockTextStyleFirst = {read = get_AdditionalBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr AdditionalBlockTextStyleNext = {read = get_AdditionalBlockTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr NestingBlockTextStyleFirst = {read = get_NestingBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr NestingBlockTextStyleNext = {read = get_NestingBlockTextStyleNext};
  __property   TOLEBOOL        DisableNestingBlockEmptyStrings = {read = get_DisableNestingBlockEmptyStrings, write = set_DisableNestingBlockEmptyStrings};
  __property   TOLEBOOL        DisableAdditionalBlockEmptyStrings = {read = get_DisableAdditionalBlockEmptyStrings, write = set_DisableAdditionalBlockEmptyStrings};
  __property   TOLEBOOL        DeleteSpcObjectOnDeleteGeometry = {read = get_DeleteSpcObjectOnDeleteGeometry, write = set_DeleteSpcObjectOnDeleteGeometry};
  __property   TOLEBOOL        CopySpcObjectOnCopyGeometry = {read = get_CopySpcObjectOnCopyGeometry, write = set_CopySpcObjectOnCopyGeometry};
};
typedef TCOMISpecificationTuningT<ISpecificationTuning> TCOMISpecificationTuning;

// *********************************************************************//
// DispIntf:  ISpecificationTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BB719D42-E44C-445B-969A-0E2F63E97FC8}
// *********************************************************************//
template<class T>
class ISpecificationTuningDispT : public TAutoDriver<ISpecificationTuning>
{
public:
  ISpecificationTuningDispT(){}

  ISpecificationTuningDispT(ISpecificationTuning *pintf)
  {
    TAutoDriver<ISpecificationTuning>::Bind(pintf, false);
  }

  ISpecificationTuningDispT(ISpecificationTuningPtr pintf)
  {
    TAutoDriver<ISpecificationTuning>::Bind(pintf, true);
  }

  ISpecificationTuningDispT& operator=(ISpecificationTuning *pintf)
  {
    TAutoDriver<ISpecificationTuning>::Bind(pintf, false);
    return *this;
  }

  ISpecificationTuningDispT& operator=(ISpecificationTuningPtr pintf)
  {
    TAutoDriver<ISpecificationTuning>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationTuning));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationTuning);
  }

  HRESULT         __fastcall get_LinkType(ksSpecificationLinkTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationLinkTypeEnum __fastcall get_LinkType(void);
  HRESULT         __fastcall set_LinkType(ksSpecificationLinkTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CalculateZone(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CalculateZone(void);
  HRESULT         __fastcall set_CalculateZone(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CalculatePosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CalculatePosition(void);
  HRESULT         __fastcall set_CalculatePosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowSectionName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowSectionName(void);
  HRESULT         __fastcall set_ShowSectionName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DeleteGeometry(void);
  HRESULT         __fastcall set_DeleteGeometry(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisableEmptyString(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableEmptyString(void);
  HRESULT         __fastcall set_DisableEmptyString(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisableEmptyBlockString(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableEmptyBlockString(void);
  HRESULT         __fastcall set_DisableEmptyBlockString(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertNull(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertNull(void);
  HRESULT         __fastcall set_InsertNull(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertDash(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertDash(void);
  HRESULT         __fastcall set_InsertDash(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowInfoByObjects(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowInfoByObjects(void);
  HRESULT         __fastcall set_ShowInfoByObjects(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SupportPerformance(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SupportPerformance(void);
  HRESULT         __fastcall set_SupportPerformance(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowPerformanceFull(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowPerformanceFull(void);
  HRESULT         __fastcall set_ShowPerformanceFull(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BlockOnNewPage(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BlockOnNewPage(void);
  HRESULT         __fastcall set_BlockOnNewPage(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PositionUp(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PositionUp(void);
  HRESULT         __fastcall set_PositionUp(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DrawBottomUp(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawBottomUp(void);
  HRESULT         __fastcall set_DrawBottomUp(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_UserTextStyle(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UserTextStyle(void);
  HRESULT         __fastcall set_UserTextStyle(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PerformanceCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_PerformanceCount(void);
  HRESULT         __fastcall set_PerformanceCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_BlockCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockCount(void);
  HRESULT         __fastcall get_InitialPosition(long* PVal/*[out,retval]*/);
  long            __fastcall get_InitialPosition(void);
  HRESULT         __fastcall set_InitialPosition(long PVal/*[in]*/);
  HRESULT         __fastcall get_PredefinedTextFileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PredefinedTextFileName(void);
  HRESULT         __fastcall set_PredefinedTextFileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_SectionTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_SectionTextStyleFirst(void);
  HRESULT         __fastcall get_SectionTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_SectionTextStyleNext(void);
  HRESULT         __fastcall get_ObjectTextStyle(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_ObjectTextStyle(void);
  HRESULT         __fastcall get_Sections(Kompasltapi7_tlb::ISpecificationTuningSectionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningSectionsPtr __fastcall get_Sections(void);
  HRESULT         __fastcall get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseAdditionalBlocks(void);
  HRESULT         __fastcall set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall get_AdditionalBlocks(void);
  HRESULT         __fastcall get_ShowAdditionalBlockName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowAdditionalBlockName(void);
  HRESULT         __fastcall set_ShowAdditionalBlockName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowNestingBlockName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowNestingBlockName(void);
  HRESULT         __fastcall set_ShowNestingBlockName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShowPerformanceBlockName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowPerformanceBlockName(void);
  HRESULT         __fastcall set_ShowPerformanceBlockName(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PerformanceBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_PerformanceBlockTextStyleFirst(void);
  HRESULT         __fastcall get_PerformanceBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_PerformanceBlockTextStyleNext(void);
  HRESULT         __fastcall get_AdditionalBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_AdditionalBlockTextStyleFirst(void);
  HRESULT         __fastcall get_AdditionalBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_AdditionalBlockTextStyleNext(void);
  HRESULT         __fastcall get_NestingBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_NestingBlockTextStyleFirst(void);
  HRESULT         __fastcall get_NestingBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextStylePtr __fastcall get_NestingBlockTextStyleNext(void);
  HRESULT         __fastcall get_DisableNestingBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableNestingBlockEmptyStrings(void);
  HRESULT         __fastcall set_DisableNestingBlockEmptyStrings(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisableAdditionalBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisableAdditionalBlockEmptyStrings(void);
  HRESULT         __fastcall set_DisableAdditionalBlockEmptyStrings(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DeleteSpcObjectOnDeleteGeometry(void);
  HRESULT         __fastcall set_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CopySpcObjectOnCopyGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CopySpcObjectOnCopyGeometry(void);
  HRESULT         __fastcall set_CopySpcObjectOnCopyGeometry(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksSpecificationLinkTypeEnum LinkType = {read = get_LinkType, write = set_LinkType};
  __property   TOLEBOOL        CalculateZone = {read = get_CalculateZone, write = set_CalculateZone};
  __property   TOLEBOOL        CalculatePosition = {read = get_CalculatePosition, write = set_CalculatePosition};
  __property   TOLEBOOL        ShowSectionName = {read = get_ShowSectionName, write = set_ShowSectionName};
  __property   TOLEBOOL        DeleteGeometry = {read = get_DeleteGeometry, write = set_DeleteGeometry};
  __property   TOLEBOOL        DisableEmptyString = {read = get_DisableEmptyString, write = set_DisableEmptyString};
  __property   TOLEBOOL        DisableEmptyBlockString = {read = get_DisableEmptyBlockString, write = set_DisableEmptyBlockString};
  __property   TOLEBOOL        InsertNull = {read = get_InsertNull, write = set_InsertNull};
  __property   TOLEBOOL        InsertDash = {read = get_InsertDash, write = set_InsertDash};
  __property   TOLEBOOL        ShowInfoByObjects = {read = get_ShowInfoByObjects, write = set_ShowInfoByObjects};
  __property   TOLEBOOL        SupportPerformance = {read = get_SupportPerformance, write = set_SupportPerformance};
  __property   TOLEBOOL        ShowPerformanceFull = {read = get_ShowPerformanceFull, write = set_ShowPerformanceFull};
  __property   TOLEBOOL        BlockOnNewPage = {read = get_BlockOnNewPage, write = set_BlockOnNewPage};
  __property   TOLEBOOL        PositionUp = {read = get_PositionUp, write = set_PositionUp};
  __property   TOLEBOOL        DrawBottomUp = {read = get_DrawBottomUp, write = set_DrawBottomUp};
  __property   TOLEBOOL        UserTextStyle = {read = get_UserTextStyle, write = set_UserTextStyle};
  __property   long            PerformanceCount = {read = get_PerformanceCount, write = set_PerformanceCount};
  __property   long            BlockCount = {read = get_BlockCount};
  __property   long            InitialPosition = {read = get_InitialPosition, write = set_InitialPosition};
  __property   BSTR            PredefinedTextFileName = {read = get_PredefinedTextFileName, write = set_PredefinedTextFileName};
  __property   Kompasltapi7_tlb::ITextStylePtr SectionTextStyleFirst = {read = get_SectionTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr SectionTextStyleNext = {read = get_SectionTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr ObjectTextStyle = {read = get_ObjectTextStyle};
  __property   Kompasltapi7_tlb::ISpecificationTuningSectionsPtr Sections = {read = get_Sections};
  __property   TOLEBOOL        UseAdditionalBlocks = {read = get_UseAdditionalBlocks, write = set_UseAdditionalBlocks};
  __property   Kompasltapi7_tlb::IAdditionalBlockTuningsPtr AdditionalBlocks = {read = get_AdditionalBlocks};
  __property   TOLEBOOL        ShowAdditionalBlockName = {read = get_ShowAdditionalBlockName, write = set_ShowAdditionalBlockName};
  __property   TOLEBOOL        ShowNestingBlockName = {read = get_ShowNestingBlockName, write = set_ShowNestingBlockName};
  __property   TOLEBOOL        ShowPerformanceBlockName = {read = get_ShowPerformanceBlockName, write = set_ShowPerformanceBlockName};
  __property   Kompasltapi7_tlb::ITextStylePtr PerformanceBlockTextStyleFirst = {read = get_PerformanceBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr PerformanceBlockTextStyleNext = {read = get_PerformanceBlockTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr AdditionalBlockTextStyleFirst = {read = get_AdditionalBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr AdditionalBlockTextStyleNext = {read = get_AdditionalBlockTextStyleNext};
  __property   Kompasltapi7_tlb::ITextStylePtr NestingBlockTextStyleFirst = {read = get_NestingBlockTextStyleFirst};
  __property   Kompasltapi7_tlb::ITextStylePtr NestingBlockTextStyleNext = {read = get_NestingBlockTextStyleNext};
  __property   TOLEBOOL        DisableNestingBlockEmptyStrings = {read = get_DisableNestingBlockEmptyStrings, write = set_DisableNestingBlockEmptyStrings};
  __property   TOLEBOOL        DisableAdditionalBlockEmptyStrings = {read = get_DisableAdditionalBlockEmptyStrings, write = set_DisableAdditionalBlockEmptyStrings};
  __property   TOLEBOOL        DeleteSpcObjectOnDeleteGeometry = {read = get_DeleteSpcObjectOnDeleteGeometry, write = set_DeleteSpcObjectOnDeleteGeometry};
  __property   TOLEBOOL        CopySpcObjectOnCopyGeometry = {read = get_CopySpcObjectOnCopyGeometry, write = set_CopySpcObjectOnCopyGeometry};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationTuningDispT<ISpecificationTuning> ISpecificationTuningDisp;

// *********************************************************************//
// SmartIntf: TCOMITextStyle
// Interface: ITextStyle
// *********************************************************************//
template <class T /* ITextStyle */ >
class TCOMITextStyleT : public TComInterface<ITextStyle>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITextStyleT() {}
  TCOMITextStyleT(ITextStyle *intf, bool addRef = false) : TComInterface<ITextStyle>(intf, addRef) {}
  TCOMITextStyleT(const TCOMITextStyleT& src) : TComInterface<ITextStyle>(src) {}
  TCOMITextStyleT& operator=(const TCOMITextStyleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall set_Number(long PVal/*[in]*/);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Align(ksAlignEnum* PVal/*[out,retval]*/);
  ksAlignEnum __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(ksAlignEnum PVal/*[in]*/);
  HRESULT         __fastcall get_IndentedLine(double* PVal/*[out,retval]*/);
  double          __fastcall get_IndentedLine(void);
  HRESULT         __fastcall set_IndentedLine(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepBeforeParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepBeforeParagraph(void);
  HRESULT         __fastcall set_StepBeforeParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepAfterParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepAfterParagraph(void);
  HRESULT         __fastcall set_StepAfterParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftEdge(void);
  HRESULT         __fastcall set_LeftEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightEdge(void);
  HRESULT         __fastcall set_RightEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_Extended(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Extended(void);
  HRESULT         __fastcall set_Extended(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_LinesCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_LinesCount(void);
  HRESULT         __fastcall set_LinesCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_EnableLine1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableLine1(void);
  HRESULT         __fastcall set_EnableLine1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Height1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height1(void);
  HRESULT         __fastcall set_Height1(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor1(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor1(void);
  HRESULT         __fastcall set_WidthFactor1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step1(void);
  HRESULT         __fastcall set_Step1(double PVal/*[in]*/);
  HRESULT         __fastcall get_EnableLine2(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableLine2(void);
  HRESULT         __fastcall set_EnableLine2(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Height2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height2(void);
  HRESULT         __fastcall set_Height2(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor2(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor2(void);
  HRESULT         __fastcall set_WidthFactor2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step2(void);
  HRESULT         __fastcall set_Step2(double PVal/*[in]*/);
  HRESULT         __fastcall get_EnableLine3(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableLine3(void);
  HRESULT         __fastcall set_EnableLine3(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Height3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height3(void);
  HRESULT         __fastcall set_Height3(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor3(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor3(void);
  HRESULT         __fastcall set_WidthFactor3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step3(void);
  HRESULT         __fastcall set_Step3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Font(Kompasltapi7_tlb::ITextFontPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextFontPtr __fastcall get_Font(void);
  HRESULT         __fastcall get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorsPtr __fastcall get_Tabulators(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   long            Number = {read = get_Number, write = set_Number};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   double          IndentedLine = {read = get_IndentedLine, write = set_IndentedLine};
  __property   double          StepBeforeParagraph = {read = get_StepBeforeParagraph, write = set_StepBeforeParagraph};
  __property   double          StepAfterParagraph = {read = get_StepAfterParagraph, write = set_StepAfterParagraph};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   TOLEBOOL        Extended = {read = get_Extended, write = set_Extended};
  __property   long            LinesCount = {read = get_LinesCount, write = set_LinesCount};
  __property   TOLEBOOL        EnableLine1 = {read = get_EnableLine1, write = set_EnableLine1};
  __property   double          Height1 = {read = get_Height1, write = set_Height1};
  __property   double          WidthFactor1 = {read = get_WidthFactor1, write = set_WidthFactor1};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        EnableLine2 = {read = get_EnableLine2, write = set_EnableLine2};
  __property   double          Height2 = {read = get_Height2, write = set_Height2};
  __property   double          WidthFactor2 = {read = get_WidthFactor2, write = set_WidthFactor2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        EnableLine3 = {read = get_EnableLine3, write = set_EnableLine3};
  __property   double          Height3 = {read = get_Height3, write = set_Height3};
  __property   double          WidthFactor3 = {read = get_WidthFactor3, write = set_WidthFactor3};
  __property   double          Step3 = {read = get_Step3, write = set_Step3};
  __property   Kompasltapi7_tlb::ITextFontPtr Font = {read = get_Font};
  __property   Kompasltapi7_tlb::ITabulatorsPtr Tabulators = {read = get_Tabulators};
};
typedef TCOMITextStyleT<ITextStyle> TCOMITextStyle;

// *********************************************************************//
// DispIntf:  ITextStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7EA65CA0-420D-4E1D-8C19-998495C4DA2F}
// *********************************************************************//
template<class T>
class ITextStyleDispT : public TAutoDriver<ITextStyle>
{
public:
  ITextStyleDispT(){}

  ITextStyleDispT(ITextStyle *pintf)
  {
    TAutoDriver<ITextStyle>::Bind(pintf, false);
  }

  ITextStyleDispT(ITextStylePtr pintf)
  {
    TAutoDriver<ITextStyle>::Bind(pintf, true);
  }

  ITextStyleDispT& operator=(ITextStyle *pintf)
  {
    TAutoDriver<ITextStyle>::Bind(pintf, false);
    return *this;
  }

  ITextStyleDispT& operator=(ITextStylePtr pintf)
  {
    TAutoDriver<ITextStyle>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TextStyle));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TextStyle);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall set_Number(long PVal/*[in]*/);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Align(ksAlignEnum* PVal/*[out,retval]*/);
  ksAlignEnum __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(ksAlignEnum PVal/*[in]*/);
  HRESULT         __fastcall get_IndentedLine(double* PVal/*[out,retval]*/);
  double          __fastcall get_IndentedLine(void);
  HRESULT         __fastcall set_IndentedLine(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepBeforeParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepBeforeParagraph(void);
  HRESULT         __fastcall set_StepBeforeParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepAfterParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepAfterParagraph(void);
  HRESULT         __fastcall set_StepAfterParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftEdge(void);
  HRESULT         __fastcall set_LeftEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightEdge(void);
  HRESULT         __fastcall set_RightEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_Extended(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Extended(void);
  HRESULT         __fastcall set_Extended(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_LinesCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_LinesCount(void);
  HRESULT         __fastcall set_LinesCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_EnableLine1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableLine1(void);
  HRESULT         __fastcall set_EnableLine1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Height1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height1(void);
  HRESULT         __fastcall set_Height1(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor1(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor1(void);
  HRESULT         __fastcall set_WidthFactor1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step1(void);
  HRESULT         __fastcall set_Step1(double PVal/*[in]*/);
  HRESULT         __fastcall get_EnableLine2(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableLine2(void);
  HRESULT         __fastcall set_EnableLine2(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Height2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height2(void);
  HRESULT         __fastcall set_Height2(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor2(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor2(void);
  HRESULT         __fastcall set_WidthFactor2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step2(void);
  HRESULT         __fastcall set_Step2(double PVal/*[in]*/);
  HRESULT         __fastcall get_EnableLine3(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableLine3(void);
  HRESULT         __fastcall set_EnableLine3(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Height3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height3(void);
  HRESULT         __fastcall set_Height3(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor3(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor3(void);
  HRESULT         __fastcall set_WidthFactor3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step3(void);
  HRESULT         __fastcall set_Step3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Font(Kompasltapi7_tlb::ITextFontPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextFontPtr __fastcall get_Font(void);
  HRESULT         __fastcall get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorsPtr __fastcall get_Tabulators(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   long            Number = {read = get_Number, write = set_Number};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   double          IndentedLine = {read = get_IndentedLine, write = set_IndentedLine};
  __property   double          StepBeforeParagraph = {read = get_StepBeforeParagraph, write = set_StepBeforeParagraph};
  __property   double          StepAfterParagraph = {read = get_StepAfterParagraph, write = set_StepAfterParagraph};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   TOLEBOOL        Extended = {read = get_Extended, write = set_Extended};
  __property   long            LinesCount = {read = get_LinesCount, write = set_LinesCount};
  __property   TOLEBOOL        EnableLine1 = {read = get_EnableLine1, write = set_EnableLine1};
  __property   double          Height1 = {read = get_Height1, write = set_Height1};
  __property   double          WidthFactor1 = {read = get_WidthFactor1, write = set_WidthFactor1};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        EnableLine2 = {read = get_EnableLine2, write = set_EnableLine2};
  __property   double          Height2 = {read = get_Height2, write = set_Height2};
  __property   double          WidthFactor2 = {read = get_WidthFactor2, write = set_WidthFactor2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        EnableLine3 = {read = get_EnableLine3, write = set_EnableLine3};
  __property   double          Height3 = {read = get_Height3, write = set_Height3};
  __property   double          WidthFactor3 = {read = get_WidthFactor3, write = set_WidthFactor3};
  __property   double          Step3 = {read = get_Step3, write = set_Step3};
  __property   Kompasltapi7_tlb::ITextFontPtr Font = {read = get_Font};
  __property   Kompasltapi7_tlb::ITabulatorsPtr Tabulators = {read = get_Tabulators};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITextStyleDispT<ITextStyle> ITextStyleDisp;

// *********************************************************************//
// SmartIntf: TCOMITextFont
// Interface: ITextFont
// *********************************************************************//
template <class T /* ITextFont */ >
class TCOMITextFontT : public TComInterface<ITextFont>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITextFontT() {}
  TCOMITextFontT(ITextFont *intf, bool addRef = false) : TComInterface<ITextFont>(intf, addRef) {}
  TCOMITextFontT(const TCOMITextFontT& src) : TComInterface<ITextFont>(src) {}
  TCOMITextFontT& operator=(const TCOMITextFontT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_FontName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FontName(void);
  HRESULT         __fastcall set_FontName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor(void);
  HRESULT         __fastcall set_WidthFactor(double PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Bold(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Bold(void);
  HRESULT         __fastcall set_Bold(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Italic(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Italic(void);
  HRESULT         __fastcall set_Italic(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Underline(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Underline(void);
  HRESULT         __fastcall set_Underline(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_TextLineStep(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextLineStep(void);
  HRESULT         __fastcall set_TextLineStep(TOLEBOOL PVal/*[in,def,opt]*/);

  __property   BSTR            FontName = {read = get_FontName, write = set_FontName};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          WidthFactor = {read = get_WidthFactor, write = set_WidthFactor};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   TOLEBOOL        Bold = {read = get_Bold, write = set_Bold};
  __property   TOLEBOOL        Italic = {read = get_Italic, write = set_Italic};
  __property   TOLEBOOL        Underline = {read = get_Underline, write = set_Underline};
  __property   TOLEBOOL        TextLineStep = {read = get_TextLineStep, write = set_TextLineStep};
};
typedef TCOMITextFontT<ITextFont> TCOMITextFont;

// *********************************************************************//
// DispIntf:  ITextFont
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6AD008D-58D1-48B5-BD29-E6795289FE4B}
// *********************************************************************//
template<class T>
class ITextFontDispT : public TAutoDriver<ITextFont>
{
public:
  ITextFontDispT(){}

  ITextFontDispT(ITextFont *pintf)
  {
    TAutoDriver<ITextFont>::Bind(pintf, false);
  }

  ITextFontDispT(ITextFontPtr pintf)
  {
    TAutoDriver<ITextFont>::Bind(pintf, true);
  }

  ITextFontDispT& operator=(ITextFont *pintf)
  {
    TAutoDriver<ITextFont>::Bind(pintf, false);
    return *this;
  }

  ITextFontDispT& operator=(ITextFontPtr pintf)
  {
    TAutoDriver<ITextFont>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TextFont));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TextFont);
  }

  HRESULT         __fastcall get_FontName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FontName(void);
  HRESULT         __fastcall set_FontName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_WidthFactor(double* PVal/*[out,retval]*/);
  double          __fastcall get_WidthFactor(void);
  HRESULT         __fastcall set_WidthFactor(double PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Bold(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Bold(void);
  HRESULT         __fastcall set_Bold(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Italic(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Italic(void);
  HRESULT         __fastcall set_Italic(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Underline(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Underline(void);
  HRESULT         __fastcall set_Underline(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_TextLineStep(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextLineStep(void);
  HRESULT         __fastcall set_TextLineStep(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            FontName = {read = get_FontName, write = set_FontName};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          WidthFactor = {read = get_WidthFactor, write = set_WidthFactor};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   TOLEBOOL        Bold = {read = get_Bold, write = set_Bold};
  __property   TOLEBOOL        Italic = {read = get_Italic, write = set_Italic};
  __property   TOLEBOOL        Underline = {read = get_Underline, write = set_Underline};
  __property   TOLEBOOL        TextLineStep = {read = get_TextLineStep, write = set_TextLineStep};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITextFontDispT<ITextFont> ITextFontDisp;

// *********************************************************************//
// SmartIntf: TCOMITabulators
// Interface: ITabulators
// *********************************************************************//
template <class T /* ITabulators */ >
class TCOMITabulatorsT : public TComInterface<ITabulators>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITabulatorsT() {}
  TCOMITabulatorsT(ITabulators *intf, bool addRef = false) : TComInterface<ITabulators>(intf, addRef) {}
  TCOMITabulatorsT(const TCOMITabulatorsT& src) : TComInterface<ITabulators>(src) {}
  TCOMITabulatorsT& operator=(const TCOMITabulatorsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long Position/*[in]*/, 
                                 Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorPtr __fastcall Add(long Position/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);

};
typedef TCOMITabulatorsT<ITabulators> TCOMITabulators;

// *********************************************************************//
// DispIntf:  ITabulators
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BB66E097-95C7-49B1-B6FD-3506C7758D09}
// *********************************************************************//
template<class T>
class ITabulatorsDispT : public TAutoDriver<ITabulators>
{
public:
  ITabulatorsDispT(){}

  ITabulatorsDispT(ITabulators *pintf)
  {
    TAutoDriver<ITabulators>::Bind(pintf, false);
  }

  ITabulatorsDispT(ITabulatorsPtr pintf)
  {
    TAutoDriver<ITabulators>::Bind(pintf, true);
  }

  ITabulatorsDispT& operator=(ITabulators *pintf)
  {
    TAutoDriver<ITabulators>::Bind(pintf, false);
    return *this;
  }

  ITabulatorsDispT& operator=(ITabulatorsPtr pintf)
  {
    TAutoDriver<ITabulators>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Tabulators));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Tabulators);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long Position/*[in]*/, 
                                 Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorPtr __fastcall Add(long Position/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITabulatorsDispT<ITabulators> ITabulatorsDisp;

// *********************************************************************//
// SmartIntf: TCOMITabulator
// Interface: ITabulator
// *********************************************************************//
template <class T /* ITabulator */ >
class TCOMITabulatorT : public TComInterface<ITabulator>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITabulatorT() {}
  TCOMITabulatorT(ITabulator *intf, bool addRef = false) : TComInterface<ITabulator>(intf, addRef) {}
  TCOMITabulatorT(const TCOMITabulatorT& src) : TComInterface<ITabulator>(src) {}
  TCOMITabulatorT& operator=(const TCOMITabulatorT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Position(long* PVal/*[out,retval]*/);
  long            __fastcall get_Position(void);
  HRESULT         __fastcall set_Position(long PVal/*[in]*/);
  HRESULT         __fastcall get_Align(ksAlignEnum* PVal/*[out,retval]*/);
  ksAlignEnum __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(ksAlignEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Filling(ksTabulatorFillingEnum* PVal/*[out,retval]*/);
  ksTabulatorFillingEnum __fastcall get_Filling(void);
  HRESULT         __fastcall set_Filling(ksTabulatorFillingEnum PVal/*[in]*/);

  __property   long            Position = {read = get_Position, write = set_Position};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   ksTabulatorFillingEnum Filling = {read = get_Filling, write = set_Filling};
};
typedef TCOMITabulatorT<ITabulator> TCOMITabulator;

// *********************************************************************//
// DispIntf:  ITabulator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2DD73B92-F8C8-49AA-AECD-B75713427FC1}
// *********************************************************************//
template<class T>
class ITabulatorDispT : public TAutoDriver<ITabulator>
{
public:
  ITabulatorDispT(){}

  ITabulatorDispT(ITabulator *pintf)
  {
    TAutoDriver<ITabulator>::Bind(pintf, false);
  }

  ITabulatorDispT(ITabulatorPtr pintf)
  {
    TAutoDriver<ITabulator>::Bind(pintf, true);
  }

  ITabulatorDispT& operator=(ITabulator *pintf)
  {
    TAutoDriver<ITabulator>::Bind(pintf, false);
    return *this;
  }

  ITabulatorDispT& operator=(ITabulatorPtr pintf)
  {
    TAutoDriver<ITabulator>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Tabulator));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Tabulator);
  }

  HRESULT         __fastcall get_Position(long* PVal/*[out,retval]*/);
  long            __fastcall get_Position(void);
  HRESULT         __fastcall set_Position(long PVal/*[in]*/);
  HRESULT         __fastcall get_Align(ksAlignEnum* PVal/*[out,retval]*/);
  ksAlignEnum __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(ksAlignEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Filling(ksTabulatorFillingEnum* PVal/*[out,retval]*/);
  ksTabulatorFillingEnum __fastcall get_Filling(void);
  HRESULT         __fastcall set_Filling(ksTabulatorFillingEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Position = {read = get_Position, write = set_Position};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   ksTabulatorFillingEnum Filling = {read = get_Filling, write = set_Filling};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITabulatorDispT<ITabulator> ITabulatorDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationTuningSections
// Interface: ISpecificationTuningSections
// *********************************************************************//
template <class T /* ISpecificationTuningSections */ >
class TCOMISpecificationTuningSectionsT : public TComInterface<ISpecificationTuningSections>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationTuningSectionsT() {}
  TCOMISpecificationTuningSectionsT(ISpecificationTuningSections *intf, bool addRef = false) : TComInterface<ISpecificationTuningSections>(intf, addRef) {}
  TCOMISpecificationTuningSectionsT(const TCOMISpecificationTuningSectionsT& src) : TComInterface<ISpecificationTuningSections>(src) {}
  TCOMISpecificationTuningSectionsT& operator=(const TCOMISpecificationTuningSectionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationTuningSectionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningSectionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMISpecificationTuningSectionsT<ISpecificationTuningSections> TCOMISpecificationTuningSections;

// *********************************************************************//
// DispIntf:  ISpecificationTuningSections
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {01B1BF6F-B9E3-4E94-99A0-81394FB99B16}
// *********************************************************************//
template<class T>
class ISpecificationTuningSectionsDispT : public TAutoDriver<ISpecificationTuningSections>
{
public:
  ISpecificationTuningSectionsDispT(){}

  ISpecificationTuningSectionsDispT(ISpecificationTuningSections *pintf)
  {
    TAutoDriver<ISpecificationTuningSections>::Bind(pintf, false);
  }

  ISpecificationTuningSectionsDispT(ISpecificationTuningSectionsPtr pintf)
  {
    TAutoDriver<ISpecificationTuningSections>::Bind(pintf, true);
  }

  ISpecificationTuningSectionsDispT& operator=(ISpecificationTuningSections *pintf)
  {
    TAutoDriver<ISpecificationTuningSections>::Bind(pintf, false);
    return *this;
  }

  ISpecificationTuningSectionsDispT& operator=(ISpecificationTuningSectionsPtr pintf)
  {
    TAutoDriver<ISpecificationTuningSections>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationTuningSections));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationTuningSections);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationTuningSectionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationTuningSectionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationTuningSectionsDispT<ISpecificationTuningSections> ISpecificationTuningSectionsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationTuningSection
// Interface: ISpecificationTuningSection
// *********************************************************************//
template <class T /* ISpecificationTuningSection */ >
class TCOMISpecificationTuningSectionT : public TComInterface<ISpecificationTuningSection>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationTuningSectionT() {}
  TCOMISpecificationTuningSectionT(ISpecificationTuningSection *intf, bool addRef = false) : TComInterface<ISpecificationTuningSection>(intf, addRef) {}
  TCOMISpecificationTuningSectionT(const TCOMISpecificationTuningSectionT& src) : TComInterface<ISpecificationTuningSection>(src) {}
  TCOMISpecificationTuningSectionT& operator=(const TCOMISpecificationTuningSectionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_SubsectionOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SubsectionOn(void);
  HRESULT         __fastcall set_SubsectionOn(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttachGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttachGeometry(void);
  HRESULT         __fastcall set_AttachGeometry(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PutPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PutPosition(void);
  HRESULT         __fastcall set_PutPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SortObjects(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SortObjects(void);
  HRESULT         __fastcall set_SortObjects(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ReserveStringCount(short* PVal/*[out,retval]*/);
  short           __fastcall get_ReserveStringCount(void);
  HRESULT         __fastcall set_ReserveStringCount(short PVal/*[in]*/);
  HRESULT         __fastcall get_Subsections(Kompasltapi7_tlb::ISpecificationSubsectionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSubsectionsPtr __fastcall get_Subsections(void);
  HRESULT         __fastcall get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseAdditionalBlocks(void);
  HRESULT         __fastcall set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall get_AdditionalBlocks(void);

  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        SubsectionOn = {read = get_SubsectionOn, write = set_SubsectionOn};
  __property   TOLEBOOL        AttachGeometry = {read = get_AttachGeometry, write = set_AttachGeometry};
  __property   TOLEBOOL        PutPosition = {read = get_PutPosition, write = set_PutPosition};
  __property   TOLEBOOL        SortObjects = {read = get_SortObjects, write = set_SortObjects};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   short           ReserveStringCount = {read = get_ReserveStringCount, write = set_ReserveStringCount};
  __property   Kompasltapi7_tlb::ISpecificationSubsectionsPtr Subsections = {read = get_Subsections};
  __property   TOLEBOOL        UseAdditionalBlocks = {read = get_UseAdditionalBlocks, write = set_UseAdditionalBlocks};
  __property   Kompasltapi7_tlb::IAdditionalBlockTuningsPtr AdditionalBlocks = {read = get_AdditionalBlocks};
};
typedef TCOMISpecificationTuningSectionT<ISpecificationTuningSection> TCOMISpecificationTuningSection;

// *********************************************************************//
// DispIntf:  ISpecificationTuningSection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E68AA413-CC35-450D-BF35-0F294F59B08C}
// *********************************************************************//
template<class T>
class ISpecificationTuningSectionDispT : public TAutoDriver<ISpecificationTuningSection>
{
public:
  ISpecificationTuningSectionDispT(){}

  ISpecificationTuningSectionDispT(ISpecificationTuningSection *pintf)
  {
    TAutoDriver<ISpecificationTuningSection>::Bind(pintf, false);
  }

  ISpecificationTuningSectionDispT(ISpecificationTuningSectionPtr pintf)
  {
    TAutoDriver<ISpecificationTuningSection>::Bind(pintf, true);
  }

  ISpecificationTuningSectionDispT& operator=(ISpecificationTuningSection *pintf)
  {
    TAutoDriver<ISpecificationTuningSection>::Bind(pintf, false);
    return *this;
  }

  ISpecificationTuningSectionDispT& operator=(ISpecificationTuningSectionPtr pintf)
  {
    TAutoDriver<ISpecificationTuningSection>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationTuningSection));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationTuningSection);
  }

  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_SubsectionOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SubsectionOn(void);
  HRESULT         __fastcall set_SubsectionOn(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttachGeometry(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttachGeometry(void);
  HRESULT         __fastcall set_AttachGeometry(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PutPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PutPosition(void);
  HRESULT         __fastcall set_PutPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SortObjects(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SortObjects(void);
  HRESULT         __fastcall set_SortObjects(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ReserveStringCount(short* PVal/*[out,retval]*/);
  short           __fastcall get_ReserveStringCount(void);
  HRESULT         __fastcall set_ReserveStringCount(short PVal/*[in]*/);
  HRESULT         __fastcall get_Subsections(Kompasltapi7_tlb::ISpecificationSubsectionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSubsectionsPtr __fastcall get_Subsections(void);
  HRESULT         __fastcall get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseAdditionalBlocks(void);
  HRESULT         __fastcall set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall get_AdditionalBlocks(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        SubsectionOn = {read = get_SubsectionOn, write = set_SubsectionOn};
  __property   TOLEBOOL        AttachGeometry = {read = get_AttachGeometry, write = set_AttachGeometry};
  __property   TOLEBOOL        PutPosition = {read = get_PutPosition, write = set_PutPosition};
  __property   TOLEBOOL        SortObjects = {read = get_SortObjects, write = set_SortObjects};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   short           ReserveStringCount = {read = get_ReserveStringCount, write = set_ReserveStringCount};
  __property   Kompasltapi7_tlb::ISpecificationSubsectionsPtr Subsections = {read = get_Subsections};
  __property   TOLEBOOL        UseAdditionalBlocks = {read = get_UseAdditionalBlocks, write = set_UseAdditionalBlocks};
  __property   Kompasltapi7_tlb::IAdditionalBlockTuningsPtr AdditionalBlocks = {read = get_AdditionalBlocks};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationTuningSectionDispT<ISpecificationTuningSection> ISpecificationTuningSectionDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationSubsections
// Interface: ISpecificationSubsections
// *********************************************************************//
template <class T /* ISpecificationSubsections */ >
class TCOMISpecificationSubsectionsT : public TComInterface<ISpecificationSubsections>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationSubsectionsT() {}
  TCOMISpecificationSubsectionsT(ISpecificationSubsections *intf, bool addRef = false) : TComInterface<ISpecificationSubsections>(intf, addRef) {}
  TCOMISpecificationSubsectionsT(const TCOMISpecificationSubsectionsT& src) : TComInterface<ISpecificationSubsections>(src) {}
  TCOMISpecificationSubsectionsT& operator=(const TCOMISpecificationSubsectionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                 Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall Add(BSTR Name/*[in]*/, 
                                                               short Number/*[in]*/);

};
typedef TCOMISpecificationSubsectionsT<ISpecificationSubsections> TCOMISpecificationSubsections;

// *********************************************************************//
// DispIntf:  ISpecificationSubsections
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {56532CB4-BD3F-442C-AFA4-0E6BEB677E61}
// *********************************************************************//
template<class T>
class ISpecificationSubsectionsDispT : public TAutoDriver<ISpecificationSubsections>
{
public:
  ISpecificationSubsectionsDispT(){}

  ISpecificationSubsectionsDispT(ISpecificationSubsections *pintf)
  {
    TAutoDriver<ISpecificationSubsections>::Bind(pintf, false);
  }

  ISpecificationSubsectionsDispT(ISpecificationSubsectionsPtr pintf)
  {
    TAutoDriver<ISpecificationSubsections>::Bind(pintf, true);
  }

  ISpecificationSubsectionsDispT& operator=(ISpecificationSubsections *pintf)
  {
    TAutoDriver<ISpecificationSubsections>::Bind(pintf, false);
    return *this;
  }

  ISpecificationSubsectionsDispT& operator=(ISpecificationSubsectionsPtr pintf)
  {
    TAutoDriver<ISpecificationSubsections>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationSubsections));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationSubsections);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                 Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall Add(BSTR Name/*[in]*/, 
                                                               short Number/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationSubsectionsDispT<ISpecificationSubsections> ISpecificationSubsectionsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationSubsection
// Interface: ISpecificationSubsection
// *********************************************************************//
template <class T /* ISpecificationSubsection */ >
class TCOMISpecificationSubsectionT : public TComInterface<ISpecificationSubsection>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationSubsectionT() {}
  TCOMISpecificationSubsectionT(ISpecificationSubsection *intf, bool addRef = false) : TComInterface<ISpecificationSubsection>(intf, addRef) {}
  TCOMISpecificationSubsectionT(const TCOMISpecificationSubsectionT& src) : TComInterface<ISpecificationSubsection>(src) {}
  TCOMISpecificationSubsectionT& operator=(const TCOMISpecificationSubsectionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(short* PVal/*[out,retval]*/);
  short           __fastcall get_Number(void);
  HRESULT         __fastcall Change(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                    TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Change(BSTR Name/*[in]*/, short Number/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);

  __property   BSTR            Name = {read = get_Name};
  __property   short           Number = {read = get_Number};
};
typedef TCOMISpecificationSubsectionT<ISpecificationSubsection> TCOMISpecificationSubsection;

// *********************************************************************//
// DispIntf:  ISpecificationSubsection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7F0E5F63-815C-46E5-B99E-C24244566C00}
// *********************************************************************//
template<class T>
class ISpecificationSubsectionDispT : public TAutoDriver<ISpecificationSubsection>
{
public:
  ISpecificationSubsectionDispT(){}

  ISpecificationSubsectionDispT(ISpecificationSubsection *pintf)
  {
    TAutoDriver<ISpecificationSubsection>::Bind(pintf, false);
  }

  ISpecificationSubsectionDispT(ISpecificationSubsectionPtr pintf)
  {
    TAutoDriver<ISpecificationSubsection>::Bind(pintf, true);
  }

  ISpecificationSubsectionDispT& operator=(ISpecificationSubsection *pintf)
  {
    TAutoDriver<ISpecificationSubsection>::Bind(pintf, false);
    return *this;
  }

  ISpecificationSubsectionDispT& operator=(ISpecificationSubsectionPtr pintf)
  {
    TAutoDriver<ISpecificationSubsection>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationSubsection));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationSubsection);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(short* PVal/*[out,retval]*/);
  short           __fastcall get_Number(void);
  HRESULT         __fastcall Change(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                    TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Change(BSTR Name/*[in]*/, short Number/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name};
  __property   short           Number = {read = get_Number};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationSubsectionDispT<ISpecificationSubsection> ISpecificationSubsectionDisp;

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockTunings
// Interface: IAdditionalBlockTunings
// *********************************************************************//
template <class T /* IAdditionalBlockTunings */ >
class TCOMIAdditionalBlockTuningsT : public TComInterface<IAdditionalBlockTunings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAdditionalBlockTuningsT() {}
  TCOMIAdditionalBlockTuningsT(IAdditionalBlockTunings *intf, bool addRef = false) : TComInterface<IAdditionalBlockTunings>(intf, addRef) {}
  TCOMIAdditionalBlockTuningsT(const TCOMIAdditionalBlockTuningsT& src) : TComInterface<IAdditionalBlockTunings>(src) {}
  TCOMIAdditionalBlockTuningsT& operator=(const TCOMIAdditionalBlockTuningsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAdditionalBlockTuningPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockTuningPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIAdditionalBlockTuningsT<IAdditionalBlockTunings> TCOMIAdditionalBlockTunings;

// *********************************************************************//
// DispIntf:  IAdditionalBlockTunings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8910CC92-AC76-4837-AB7A-5FD3C7B74728}
// *********************************************************************//
template<class T>
class IAdditionalBlockTuningsDispT : public TAutoDriver<IAdditionalBlockTunings>
{
public:
  IAdditionalBlockTuningsDispT(){}

  IAdditionalBlockTuningsDispT(IAdditionalBlockTunings *pintf)
  {
    TAutoDriver<IAdditionalBlockTunings>::Bind(pintf, false);
  }

  IAdditionalBlockTuningsDispT(IAdditionalBlockTuningsPtr pintf)
  {
    TAutoDriver<IAdditionalBlockTunings>::Bind(pintf, true);
  }

  IAdditionalBlockTuningsDispT& operator=(IAdditionalBlockTunings *pintf)
  {
    TAutoDriver<IAdditionalBlockTunings>::Bind(pintf, false);
    return *this;
  }

  IAdditionalBlockTuningsDispT& operator=(IAdditionalBlockTuningsPtr pintf)
  {
    TAutoDriver<IAdditionalBlockTunings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AdditionalBlockTunings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AdditionalBlockTunings);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAdditionalBlockTuningPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockTuningPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAdditionalBlockTuningsDispT<IAdditionalBlockTunings> IAdditionalBlockTuningsDisp;

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockTuning
// Interface: IAdditionalBlockTuning
// *********************************************************************//
template <class T /* IAdditionalBlockTuning */ >
class TCOMIAdditionalBlockTuningT : public TComInterface<IAdditionalBlockTuning>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAdditionalBlockTuningT() {}
  TCOMIAdditionalBlockTuningT(IAdditionalBlockTuning *intf, bool addRef = false) : TComInterface<IAdditionalBlockTuning>(intf, addRef) {}
  TCOMIAdditionalBlockTuningT(const TCOMIAdditionalBlockTuningT& src) : TComInterface<IAdditionalBlockTuning>(src) {}
  TCOMIAdditionalBlockTuningT& operator=(const TCOMIAdditionalBlockTuningT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_DocumentName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_DocumentName(void);
  HRESULT         __fastcall set_DocumentName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Use(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Use(void);
  HRESULT         __fastcall set_Use(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Sections(Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr __fastcall get_Sections(void);

  __property   long            Number = {read = get_Number};
  __property   BSTR            DocumentName = {read = get_DocumentName, write = set_DocumentName};
  __property   TOLEBOOL        Use = {read = get_Use, write = set_Use};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr Sections = {read = get_Sections};
};
typedef TCOMIAdditionalBlockTuningT<IAdditionalBlockTuning> TCOMIAdditionalBlockTuning;

// *********************************************************************//
// DispIntf:  IAdditionalBlockTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CD5B016-9CE9-4E0A-8902-196D11360536}
// *********************************************************************//
template<class T>
class IAdditionalBlockTuningDispT : public TAutoDriver<IAdditionalBlockTuning>
{
public:
  IAdditionalBlockTuningDispT(){}

  IAdditionalBlockTuningDispT(IAdditionalBlockTuning *pintf)
  {
    TAutoDriver<IAdditionalBlockTuning>::Bind(pintf, false);
  }

  IAdditionalBlockTuningDispT(IAdditionalBlockTuningPtr pintf)
  {
    TAutoDriver<IAdditionalBlockTuning>::Bind(pintf, true);
  }

  IAdditionalBlockTuningDispT& operator=(IAdditionalBlockTuning *pintf)
  {
    TAutoDriver<IAdditionalBlockTuning>::Bind(pintf, false);
    return *this;
  }

  IAdditionalBlockTuningDispT& operator=(IAdditionalBlockTuningPtr pintf)
  {
    TAutoDriver<IAdditionalBlockTuning>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AdditionalBlockTuning));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AdditionalBlockTuning);
  }

  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_DocumentName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_DocumentName(void);
  HRESULT         __fastcall set_DocumentName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Use(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Use(void);
  HRESULT         __fastcall set_Use(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Sections(Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr __fastcall get_Sections(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Number = {read = get_Number};
  __property   BSTR            DocumentName = {read = get_DocumentName, write = set_DocumentName};
  __property   TOLEBOOL        Use = {read = get_Use, write = set_Use};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr Sections = {read = get_Sections};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAdditionalBlockTuningDispT<IAdditionalBlockTuning> IAdditionalBlockTuningDisp;

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockSectionTunings
// Interface: IAdditionalBlockSectionTunings
// *********************************************************************//
template <class T /* IAdditionalBlockSectionTunings */ >
class TCOMIAdditionalBlockSectionTuningsT : public TComInterface<IAdditionalBlockSectionTunings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAdditionalBlockSectionTuningsT() {}
  TCOMIAdditionalBlockSectionTuningsT(IAdditionalBlockSectionTunings *intf, bool addRef = false) : TComInterface<IAdditionalBlockSectionTunings>(intf, addRef) {}
  TCOMIAdditionalBlockSectionTuningsT(const TCOMIAdditionalBlockSectionTuningsT& src) : TComInterface<IAdditionalBlockSectionTunings>(src) {}
  TCOMIAdditionalBlockSectionTuningsT& operator=(const TCOMIAdditionalBlockSectionTuningsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIAdditionalBlockSectionTuningsT<IAdditionalBlockSectionTunings> TCOMIAdditionalBlockSectionTunings;

// *********************************************************************//
// DispIntf:  IAdditionalBlockSectionTunings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {43EFA203-F956-43D6-B603-87807DDEFD0A}
// *********************************************************************//
template<class T>
class IAdditionalBlockSectionTuningsDispT : public TAutoDriver<IAdditionalBlockSectionTunings>
{
public:
  IAdditionalBlockSectionTuningsDispT(){}

  IAdditionalBlockSectionTuningsDispT(IAdditionalBlockSectionTunings *pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTunings>::Bind(pintf, false);
  }

  IAdditionalBlockSectionTuningsDispT(IAdditionalBlockSectionTuningsPtr pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTunings>::Bind(pintf, true);
  }

  IAdditionalBlockSectionTuningsDispT& operator=(IAdditionalBlockSectionTunings *pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTunings>::Bind(pintf, false);
    return *this;
  }

  IAdditionalBlockSectionTuningsDispT& operator=(IAdditionalBlockSectionTuningsPtr pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTunings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AdditionalBlockSectionTunings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AdditionalBlockSectionTunings);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAdditionalBlockSectionTuningsDispT<IAdditionalBlockSectionTunings> IAdditionalBlockSectionTuningsDisp;

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockSectionTuning
// Interface: IAdditionalBlockSectionTuning
// *********************************************************************//
template <class T /* IAdditionalBlockSectionTuning */ >
class TCOMIAdditionalBlockSectionTuningT : public TComInterface<IAdditionalBlockSectionTuning>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAdditionalBlockSectionTuningT() {}
  TCOMIAdditionalBlockSectionTuningT(IAdditionalBlockSectionTuning *intf, bool addRef = false) : TComInterface<IAdditionalBlockSectionTuning>(intf, addRef) {}
  TCOMIAdditionalBlockSectionTuningT(const TCOMIAdditionalBlockSectionTuningT& src) : TComInterface<IAdditionalBlockSectionTuning>(src) {}
  TCOMIAdditionalBlockSectionTuningT& operator=(const TCOMIAdditionalBlockSectionTuningT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_Use(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Use(void);
  HRESULT         __fastcall set_Use(TOLEBOOL PVal/*[in]*/);

  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        Use = {read = get_Use, write = set_Use};
};
typedef TCOMIAdditionalBlockSectionTuningT<IAdditionalBlockSectionTuning> TCOMIAdditionalBlockSectionTuning;

// *********************************************************************//
// DispIntf:  IAdditionalBlockSectionTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E04B8464-C8D6-4BAC-99B5-AE79EBBDB205}
// *********************************************************************//
template<class T>
class IAdditionalBlockSectionTuningDispT : public TAutoDriver<IAdditionalBlockSectionTuning>
{
public:
  IAdditionalBlockSectionTuningDispT(){}

  IAdditionalBlockSectionTuningDispT(IAdditionalBlockSectionTuning *pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTuning>::Bind(pintf, false);
  }

  IAdditionalBlockSectionTuningDispT(IAdditionalBlockSectionTuningPtr pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTuning>::Bind(pintf, true);
  }

  IAdditionalBlockSectionTuningDispT& operator=(IAdditionalBlockSectionTuning *pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTuning>::Bind(pintf, false);
    return *this;
  }

  IAdditionalBlockSectionTuningDispT& operator=(IAdditionalBlockSectionTuningPtr pintf)
  {
    TAutoDriver<IAdditionalBlockSectionTuning>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AdditionalBlockSectionTuning));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AdditionalBlockSectionTuning);
  }

  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_Use(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Use(void);
  HRESULT         __fastcall set_Use(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        Use = {read = get_Use, write = set_Use};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAdditionalBlockSectionTuningDispT<IAdditionalBlockSectionTuning> IAdditionalBlockSectionTuningDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetFormat
// Interface: ISheetFormat
// *********************************************************************//
template <class T /* ISheetFormat */ >
class TCOMISheetFormatT : public TComInterface<ISheetFormat>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetFormatT() {}
  TCOMISheetFormatT(ISheetFormat *intf, bool addRef = false) : TComInterface<ISheetFormat>(intf, addRef) {}
  TCOMISheetFormatT(const TCOMISheetFormatT& src) : TComInterface<ISheetFormat>(src) {}
  TCOMISheetFormatT& operator=(const TCOMISheetFormatT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Format(ksDocumentFormatEnum* PVal/*[out,retval]*/);
  ksDocumentFormatEnum __fastcall get_Format(void);
  HRESULT         __fastcall set_Format(ksDocumentFormatEnum PVal/*[in]*/);
  HRESULT         __fastcall get_FormatMultiplicity(long* PVal/*[out,retval]*/);
  long            __fastcall get_FormatMultiplicity(void);
  HRESULT         __fastcall set_FormatMultiplicity(long PVal/*[in]*/);
  HRESULT         __fastcall get_VerticalOrientation(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VerticalOrientation(void);
  HRESULT         __fastcall set_VerticalOrientation(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FormatWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormatWidth(void);
  HRESULT         __fastcall set_FormatWidth(double PVal/*[in]*/);
  HRESULT         __fastcall get_FormatHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormatHeight(void);
  HRESULT         __fastcall set_FormatHeight(double PVal/*[in]*/);

  __property   ksDocumentFormatEnum Format = {read = get_Format, write = set_Format};
  __property   long            FormatMultiplicity = {read = get_FormatMultiplicity, write = set_FormatMultiplicity};
  __property   TOLEBOOL        VerticalOrientation = {read = get_VerticalOrientation, write = set_VerticalOrientation};
  __property   double          FormatWidth = {read = get_FormatWidth, write = set_FormatWidth};
  __property   double          FormatHeight = {read = get_FormatHeight, write = set_FormatHeight};
};
typedef TCOMISheetFormatT<ISheetFormat> TCOMISheetFormat;

// *********************************************************************//
// DispIntf:  ISheetFormat
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9CDE694-4C33-4375-A6F6-AE94DC759510}
// *********************************************************************//
template<class T>
class ISheetFormatDispT : public TAutoDriver<ISheetFormat>
{
public:
  ISheetFormatDispT(){}

  ISheetFormatDispT(ISheetFormat *pintf)
  {
    TAutoDriver<ISheetFormat>::Bind(pintf, false);
  }

  ISheetFormatDispT(ISheetFormatPtr pintf)
  {
    TAutoDriver<ISheetFormat>::Bind(pintf, true);
  }

  ISheetFormatDispT& operator=(ISheetFormat *pintf)
  {
    TAutoDriver<ISheetFormat>::Bind(pintf, false);
    return *this;
  }

  ISheetFormatDispT& operator=(ISheetFormatPtr pintf)
  {
    TAutoDriver<ISheetFormat>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetFormat));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetFormat);
  }

  HRESULT         __fastcall get_Format(ksDocumentFormatEnum* PVal/*[out,retval]*/);
  ksDocumentFormatEnum __fastcall get_Format(void);
  HRESULT         __fastcall set_Format(ksDocumentFormatEnum PVal/*[in]*/);
  HRESULT         __fastcall get_FormatMultiplicity(long* PVal/*[out,retval]*/);
  long            __fastcall get_FormatMultiplicity(void);
  HRESULT         __fastcall set_FormatMultiplicity(long PVal/*[in]*/);
  HRESULT         __fastcall get_VerticalOrientation(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VerticalOrientation(void);
  HRESULT         __fastcall set_VerticalOrientation(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FormatWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormatWidth(void);
  HRESULT         __fastcall set_FormatWidth(double PVal/*[in]*/);
  HRESULT         __fastcall get_FormatHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormatHeight(void);
  HRESULT         __fastcall set_FormatHeight(double PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksDocumentFormatEnum Format = {read = get_Format, write = set_Format};
  __property   long            FormatMultiplicity = {read = get_FormatMultiplicity, write = set_FormatMultiplicity};
  __property   TOLEBOOL        VerticalOrientation = {read = get_VerticalOrientation, write = set_VerticalOrientation};
  __property   double          FormatWidth = {read = get_FormatWidth, write = set_FormatWidth};
  __property   double          FormatHeight = {read = get_FormatHeight, write = set_FormatHeight};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetFormatDispT<ISheetFormat> ISheetFormatDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnStyles
// Interface: ISpecificationColumnStyles
// *********************************************************************//
template <class T /* ISpecificationColumnStyles */ >
class TCOMISpecificationColumnStylesT : public TComInterface<ISpecificationColumnStyles>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationColumnStylesT() {}
  TCOMISpecificationColumnStylesT(ISpecificationColumnStyles *intf, bool addRef = false) : TComInterface<ISpecificationColumnStyles>(intf, addRef) {}
  TCOMISpecificationColumnStylesT(const TCOMISpecificationColumnStylesT& src) : TComInterface<ISpecificationColumnStyles>(src) {}
  TCOMISpecificationColumnStylesT& operator=(const TCOMISpecificationColumnStylesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationColumnStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMISpecificationColumnStylesT<ISpecificationColumnStyles> TCOMISpecificationColumnStyles;

// *********************************************************************//
// DispIntf:  ISpecificationColumnStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {41529A95-51F0-44B0-9D55-5753BCEB23BC}
// *********************************************************************//
template<class T>
class ISpecificationColumnStylesDispT : public TAutoDriver<ISpecificationColumnStyles>
{
public:
  ISpecificationColumnStylesDispT(){}

  ISpecificationColumnStylesDispT(ISpecificationColumnStyles *pintf)
  {
    TAutoDriver<ISpecificationColumnStyles>::Bind(pintf, false);
  }

  ISpecificationColumnStylesDispT(ISpecificationColumnStylesPtr pintf)
  {
    TAutoDriver<ISpecificationColumnStyles>::Bind(pintf, true);
  }

  ISpecificationColumnStylesDispT& operator=(ISpecificationColumnStyles *pintf)
  {
    TAutoDriver<ISpecificationColumnStyles>::Bind(pintf, false);
    return *this;
  }

  ISpecificationColumnStylesDispT& operator=(ISpecificationColumnStylesPtr pintf)
  {
    TAutoDriver<ISpecificationColumnStyles>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationColumnStyles));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationColumnStyles);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationColumnStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationColumnStylesDispT<ISpecificationColumnStyles> ISpecificationColumnStylesDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnStyle
// Interface: ISpecificationColumnStyle
// *********************************************************************//
template <class T /* ISpecificationColumnStyle */ >
class TCOMISpecificationColumnStyleT : public TComInterface<ISpecificationColumnStyle>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationColumnStyleT() {}
  TCOMISpecificationColumnStyleT(ISpecificationColumnStyle *intf, bool addRef = false) : TComInterface<ISpecificationColumnStyle>(intf, addRef) {}
  TCOMISpecificationColumnStyleT(const TCOMISpecificationColumnStyleT& src) : TComInterface<ISpecificationColumnStyle>(src) {}
  TCOMISpecificationColumnStyleT& operator=(const TCOMISpecificationColumnStyleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationColumnTypeEnum __fastcall get_ColumnType(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_Edit(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Edit(void);
  HRESULT         __fastcall get_CalculateSum(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CalculateSum(void);
  HRESULT         __fastcall get_MultiplyToCount(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MultiplyToCount(void);
  HRESULT         __fastcall get_UseForSectionTitle(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseForSectionTitle(void);
  HRESULT         __fastcall get_TextDown(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextDown(void);
  HRESULT         __fastcall get_StampLinkID(long* PVal/*[out,retval]*/);
  long            __fastcall get_StampLinkID(void);
  HRESULT         __fastcall get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ValueType(void);
  HRESULT         __fastcall get_AttributeLibraryName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_AttributeLibraryName(void);
  HRESULT         __fastcall get_AttributeKey1(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey1(void);
  HRESULT         __fastcall get_AttributeKey2(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey2(void);
  HRESULT         __fastcall get_AttributeKey3(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey3(void);
  HRESULT         __fastcall get_AttributeKey4(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey4(void);
  HRESULT         __fastcall get_MinValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_MaxValue(void);
  HRESULT         __fastcall get_UseIn3D(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseIn3D(void);

  __property   BSTR            Name = {read = get_Name};
  __property   ksSpecificationColumnTypeEnum ColumnType = {read = get_ColumnType};
  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        Edit = {read = get_Edit};
  __property   TOLEBOOL        CalculateSum = {read = get_CalculateSum};
  __property   TOLEBOOL        MultiplyToCount = {read = get_MultiplyToCount};
  __property   TOLEBOOL        UseForSectionTitle = {read = get_UseForSectionTitle};
  __property   TOLEBOOL        TextDown = {read = get_TextDown};
  __property   long            StampLinkID = {read = get_StampLinkID};
  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   BSTR            AttributeLibraryName = {read = get_AttributeLibraryName};
  __property   long            AttributeKey1 = {read = get_AttributeKey1};
  __property   long            AttributeKey2 = {read = get_AttributeKey2};
  __property   long            AttributeKey3 = {read = get_AttributeKey3};
  __property   long            AttributeKey4 = {read = get_AttributeKey4};
  __property   double          MinValue = {read = get_MinValue};
  __property   double          MaxValue = {read = get_MaxValue};
  __property   TOLEBOOL        UseIn3D = {read = get_UseIn3D};
};
typedef TCOMISpecificationColumnStyleT<ISpecificationColumnStyle> TCOMISpecificationColumnStyle;

// *********************************************************************//
// DispIntf:  ISpecificationColumnStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {16839CAA-3AFB-49A4-A19A-C61963967649}
// *********************************************************************//
template<class T>
class ISpecificationColumnStyleDispT : public TAutoDriver<ISpecificationColumnStyle>
{
public:
  ISpecificationColumnStyleDispT(){}

  ISpecificationColumnStyleDispT(ISpecificationColumnStyle *pintf)
  {
    TAutoDriver<ISpecificationColumnStyle>::Bind(pintf, false);
  }

  ISpecificationColumnStyleDispT(ISpecificationColumnStylePtr pintf)
  {
    TAutoDriver<ISpecificationColumnStyle>::Bind(pintf, true);
  }

  ISpecificationColumnStyleDispT& operator=(ISpecificationColumnStyle *pintf)
  {
    TAutoDriver<ISpecificationColumnStyle>::Bind(pintf, false);
    return *this;
  }

  ISpecificationColumnStyleDispT& operator=(ISpecificationColumnStylePtr pintf)
  {
    TAutoDriver<ISpecificationColumnStyle>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationColumnStyle));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationColumnStyle);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationColumnTypeEnum __fastcall get_ColumnType(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_Edit(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Edit(void);
  HRESULT         __fastcall get_CalculateSum(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CalculateSum(void);
  HRESULT         __fastcall get_MultiplyToCount(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MultiplyToCount(void);
  HRESULT         __fastcall get_UseForSectionTitle(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseForSectionTitle(void);
  HRESULT         __fastcall get_TextDown(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextDown(void);
  HRESULT         __fastcall get_StampLinkID(long* PVal/*[out,retval]*/);
  long            __fastcall get_StampLinkID(void);
  HRESULT         __fastcall get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ValueType(void);
  HRESULT         __fastcall get_AttributeLibraryName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_AttributeLibraryName(void);
  HRESULT         __fastcall get_AttributeKey1(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey1(void);
  HRESULT         __fastcall get_AttributeKey2(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey2(void);
  HRESULT         __fastcall get_AttributeKey3(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey3(void);
  HRESULT         __fastcall get_AttributeKey4(long* PVal/*[out,retval]*/);
  long            __fastcall get_AttributeKey4(void);
  HRESULT         __fastcall get_MinValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_MaxValue(void);
  HRESULT         __fastcall get_UseIn3D(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseIn3D(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name};
  __property   ksSpecificationColumnTypeEnum ColumnType = {read = get_ColumnType};
  __property   long            Number = {read = get_Number};
  __property   TOLEBOOL        Edit = {read = get_Edit};
  __property   TOLEBOOL        CalculateSum = {read = get_CalculateSum};
  __property   TOLEBOOL        MultiplyToCount = {read = get_MultiplyToCount};
  __property   TOLEBOOL        UseForSectionTitle = {read = get_UseForSectionTitle};
  __property   TOLEBOOL        TextDown = {read = get_TextDown};
  __property   long            StampLinkID = {read = get_StampLinkID};
  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   BSTR            AttributeLibraryName = {read = get_AttributeLibraryName};
  __property   long            AttributeKey1 = {read = get_AttributeKey1};
  __property   long            AttributeKey2 = {read = get_AttributeKey2};
  __property   long            AttributeKey3 = {read = get_AttributeKey3};
  __property   long            AttributeKey4 = {read = get_AttributeKey4};
  __property   double          MinValue = {read = get_MinValue};
  __property   double          MaxValue = {read = get_MaxValue};
  __property   TOLEBOOL        UseIn3D = {read = get_UseIn3D};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationColumnStyleDispT<ISpecificationColumnStyle> ISpecificationColumnStyleDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationSectionStyles
// Interface: ISpecificationSectionStyles
// *********************************************************************//
template <class T /* ISpecificationSectionStyles */ >
class TCOMISpecificationSectionStylesT : public TComInterface<ISpecificationSectionStyles>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationSectionStylesT() {}
  TCOMISpecificationSectionStylesT(ISpecificationSectionStyles *intf, bool addRef = false) : TComInterface<ISpecificationSectionStyles>(intf, addRef) {}
  TCOMISpecificationSectionStylesT(const TCOMISpecificationSectionStylesT& src) : TComInterface<ISpecificationSectionStyles>(src) {}
  TCOMISpecificationSectionStylesT& operator=(const TCOMISpecificationSectionStylesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationSectionStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSectionStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMISpecificationSectionStylesT<ISpecificationSectionStyles> TCOMISpecificationSectionStyles;

// *********************************************************************//
// DispIntf:  ISpecificationSectionStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {24AE8484-F4F4-4059-AFC7-9492A64C88E8}
// *********************************************************************//
template<class T>
class ISpecificationSectionStylesDispT : public TAutoDriver<ISpecificationSectionStyles>
{
public:
  ISpecificationSectionStylesDispT(){}

  ISpecificationSectionStylesDispT(ISpecificationSectionStyles *pintf)
  {
    TAutoDriver<ISpecificationSectionStyles>::Bind(pintf, false);
  }

  ISpecificationSectionStylesDispT(ISpecificationSectionStylesPtr pintf)
  {
    TAutoDriver<ISpecificationSectionStyles>::Bind(pintf, true);
  }

  ISpecificationSectionStylesDispT& operator=(ISpecificationSectionStyles *pintf)
  {
    TAutoDriver<ISpecificationSectionStyles>::Bind(pintf, false);
    return *this;
  }

  ISpecificationSectionStylesDispT& operator=(ISpecificationSectionStylesPtr pintf)
  {
    TAutoDriver<ISpecificationSectionStyles>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationSectionStyles));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationSectionStyles);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationSectionStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationSectionStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationSectionStylesDispT<ISpecificationSectionStyles> ISpecificationSectionStylesDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationSectionStyle
// Interface: ISpecificationSectionStyle
// *********************************************************************//
template <class T /* ISpecificationSectionStyle */ >
class TCOMISpecificationSectionStyleT : public TComInterface<ISpecificationSectionStyle>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationSectionStyleT() {}
  TCOMISpecificationSectionStyleT(ISpecificationSectionStyle *intf, bool addRef = false) : TComInterface<ISpecificationSectionStyle>(intf, addRef) {}
  TCOMISpecificationSectionStyleT(const TCOMISpecificationSectionStyleT& src) : TComInterface<ISpecificationSectionStyle>(src) {}
  TCOMISpecificationSectionStyleT& operator=(const TCOMISpecificationSectionStyleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_SortColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationColumnTypeEnum __fastcall get_SortColumnType(void);
  HRESULT         __fastcall get_SortColumnNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_SortColumnNumber(void);
  HRESULT         __fastcall get_FillDataFromStamp(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FillDataFromStamp(void);
  HRESULT         __fastcall get_SortType(ksSortTypeEnum* PVal/*[out,retval]*/);
  ksSortTypeEnum __fastcall get_SortType(void);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall get_AdditionalBlocks(void);

  __property   BSTR            Name = {read = get_Name};
  __property   long            Number = {read = get_Number};
  __property   ksSpecificationColumnTypeEnum SortColumnType = {read = get_SortColumnType};
  __property   long            SortColumnNumber = {read = get_SortColumnNumber};
  __property   TOLEBOOL        FillDataFromStamp = {read = get_FillDataFromStamp};
  __property   ksSortTypeEnum SortType = {read = get_SortType};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAdditionalBlockStylesPtr AdditionalBlocks = {read = get_AdditionalBlocks};
};
typedef TCOMISpecificationSectionStyleT<ISpecificationSectionStyle> TCOMISpecificationSectionStyle;

// *********************************************************************//
// DispIntf:  ISpecificationSectionStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4B61FC7F-4826-4B58-8CCB-7D459AD0BE7B}
// *********************************************************************//
template<class T>
class ISpecificationSectionStyleDispT : public TAutoDriver<ISpecificationSectionStyle>
{
public:
  ISpecificationSectionStyleDispT(){}

  ISpecificationSectionStyleDispT(ISpecificationSectionStyle *pintf)
  {
    TAutoDriver<ISpecificationSectionStyle>::Bind(pintf, false);
  }

  ISpecificationSectionStyleDispT(ISpecificationSectionStylePtr pintf)
  {
    TAutoDriver<ISpecificationSectionStyle>::Bind(pintf, true);
  }

  ISpecificationSectionStyleDispT& operator=(ISpecificationSectionStyle *pintf)
  {
    TAutoDriver<ISpecificationSectionStyle>::Bind(pintf, false);
    return *this;
  }

  ISpecificationSectionStyleDispT& operator=(ISpecificationSectionStylePtr pintf)
  {
    TAutoDriver<ISpecificationSectionStyle>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationSectionStyle));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationSectionStyle);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_SortColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationColumnTypeEnum __fastcall get_SortColumnType(void);
  HRESULT         __fastcall get_SortColumnNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_SortColumnNumber(void);
  HRESULT         __fastcall get_FillDataFromStamp(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FillDataFromStamp(void);
  HRESULT         __fastcall get_SortType(ksSortTypeEnum* PVal/*[out,retval]*/);
  ksSortTypeEnum __fastcall get_SortType(void);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall get_AdditionalBlocks(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name};
  __property   long            Number = {read = get_Number};
  __property   ksSpecificationColumnTypeEnum SortColumnType = {read = get_SortColumnType};
  __property   long            SortColumnNumber = {read = get_SortColumnNumber};
  __property   TOLEBOOL        FillDataFromStamp = {read = get_FillDataFromStamp};
  __property   ksSortTypeEnum SortType = {read = get_SortType};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnStylesPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAdditionalBlockStylesPtr AdditionalBlocks = {read = get_AdditionalBlocks};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationSectionStyleDispT<ISpecificationSectionStyle> ISpecificationSectionStyleDisp;

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockStyles
// Interface: IAdditionalBlockStyles
// *********************************************************************//
template <class T /* IAdditionalBlockStyles */ >
class TCOMIAdditionalBlockStylesT : public TComInterface<IAdditionalBlockStyles>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAdditionalBlockStylesT() {}
  TCOMIAdditionalBlockStylesT(IAdditionalBlockStyles *intf, bool addRef = false) : TComInterface<IAdditionalBlockStyles>(intf, addRef) {}
  TCOMIAdditionalBlockStylesT(const TCOMIAdditionalBlockStylesT& src) : TComInterface<IAdditionalBlockStyles>(src) {}
  TCOMIAdditionalBlockStylesT& operator=(const TCOMIAdditionalBlockStylesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAdditionalBlockStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIAdditionalBlockStylesT<IAdditionalBlockStyles> TCOMIAdditionalBlockStyles;

// *********************************************************************//
// DispIntf:  IAdditionalBlockStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {90E2FBEC-A56F-423C-B89F-479673EDD895}
// *********************************************************************//
template<class T>
class IAdditionalBlockStylesDispT : public TAutoDriver<IAdditionalBlockStyles>
{
public:
  IAdditionalBlockStylesDispT(){}

  IAdditionalBlockStylesDispT(IAdditionalBlockStyles *pintf)
  {
    TAutoDriver<IAdditionalBlockStyles>::Bind(pintf, false);
  }

  IAdditionalBlockStylesDispT(IAdditionalBlockStylesPtr pintf)
  {
    TAutoDriver<IAdditionalBlockStyles>::Bind(pintf, true);
  }

  IAdditionalBlockStylesDispT& operator=(IAdditionalBlockStyles *pintf)
  {
    TAutoDriver<IAdditionalBlockStyles>::Bind(pintf, false);
    return *this;
  }

  IAdditionalBlockStylesDispT& operator=(IAdditionalBlockStylesPtr pintf)
  {
    TAutoDriver<IAdditionalBlockStyles>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AdditionalBlockStyles));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AdditionalBlockStyles);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAdditionalBlockStylePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAdditionalBlockStylePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAdditionalBlockStylesDispT<IAdditionalBlockStyles> IAdditionalBlockStylesDisp;

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockStyle
// Interface: IAdditionalBlockStyle
// *********************************************************************//
template <class T /* IAdditionalBlockStyle */ >
class TCOMIAdditionalBlockStyleT : public TComInterface<IAdditionalBlockStyle>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAdditionalBlockStyleT() {}
  TCOMIAdditionalBlockStyleT(IAdditionalBlockStyle *intf, bool addRef = false) : TComInterface<IAdditionalBlockStyle>(intf, addRef) {}
  TCOMIAdditionalBlockStyleT(const TCOMIAdditionalBlockStyleT& src) : TComInterface<IAdditionalBlockStyle>(src) {}
  TCOMIAdditionalBlockStyleT& operator=(const TCOMIAdditionalBlockStyleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);

  __property   BSTR            Name = {read = get_Name};
  __property   long            Number = {read = get_Number};
};
typedef TCOMIAdditionalBlockStyleT<IAdditionalBlockStyle> TCOMIAdditionalBlockStyle;

// *********************************************************************//
// DispIntf:  IAdditionalBlockStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2A43FA6-9BCE-4468-9662-811A6255E220}
// *********************************************************************//
template<class T>
class IAdditionalBlockStyleDispT : public TAutoDriver<IAdditionalBlockStyle>
{
public:
  IAdditionalBlockStyleDispT(){}

  IAdditionalBlockStyleDispT(IAdditionalBlockStyle *pintf)
  {
    TAutoDriver<IAdditionalBlockStyle>::Bind(pintf, false);
  }

  IAdditionalBlockStyleDispT(IAdditionalBlockStylePtr pintf)
  {
    TAutoDriver<IAdditionalBlockStyle>::Bind(pintf, true);
  }

  IAdditionalBlockStyleDispT& operator=(IAdditionalBlockStyle *pintf)
  {
    TAutoDriver<IAdditionalBlockStyle>::Bind(pintf, false);
    return *this;
  }

  IAdditionalBlockStyleDispT& operator=(IAdditionalBlockStylePtr pintf)
  {
    TAutoDriver<IAdditionalBlockStyle>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AdditionalBlockStyle));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AdditionalBlockStyle);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name};
  __property   long            Number = {read = get_Number};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAdditionalBlockStyleDispT<IAdditionalBlockStyle> IAdditionalBlockStyleDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationBaseObjects
// Interface: ISpecificationBaseObjects
// *********************************************************************//
template <class T /* ISpecificationBaseObjects */ >
class TCOMISpecificationBaseObjectsT : public TComInterface<ISpecificationBaseObjects>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationBaseObjectsT() {}
  TCOMISpecificationBaseObjectsT(ISpecificationBaseObjects *intf, bool addRef = false) : TComInterface<ISpecificationBaseObjects>(intf, addRef) {}
  TCOMISpecificationBaseObjectsT(const TCOMISpecificationBaseObjectsT& src) : TComInterface<ISpecificationBaseObjects>(src) {}
  TCOMISpecificationBaseObjectsT& operator=(const TCOMISpecificationBaseObjectsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long SectionNumb/*[in]*/, double AttrNumb/*[in]*/, 
                                 Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall Add(long SectionNumb/*[in]*/, 
                                                               double AttrNumb/*[in]*/);
  HRESULT         __fastcall GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                            TOLEBOOL Equal/*[in]*/, 
                                                            long SectionNumb/*[in]*/, 
                                                            double AttrNumb/*[in]*/, 
                                                            TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                            TOLEBOOL Equal/*[in]*/, 
                                                            long SectionNumb/*[in]*/, 
                                                            double AttrNumb/*[in]*/);

};
typedef TCOMISpecificationBaseObjectsT<ISpecificationBaseObjects> TCOMISpecificationBaseObjects;

// *********************************************************************//
// DispIntf:  ISpecificationBaseObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2B97D19-3A0B-4C9F-A6AC-DEFFAFE0D1C2}
// *********************************************************************//
template<class T>
class ISpecificationBaseObjectsDispT : public TAutoDriver<ISpecificationBaseObjects>
{
public:
  ISpecificationBaseObjectsDispT(){}

  ISpecificationBaseObjectsDispT(ISpecificationBaseObjects *pintf)
  {
    TAutoDriver<ISpecificationBaseObjects>::Bind(pintf, false);
  }

  ISpecificationBaseObjectsDispT(ISpecificationBaseObjectsPtr pintf)
  {
    TAutoDriver<ISpecificationBaseObjects>::Bind(pintf, true);
  }

  ISpecificationBaseObjectsDispT& operator=(ISpecificationBaseObjects *pintf)
  {
    TAutoDriver<ISpecificationBaseObjects>::Bind(pintf, false);
    return *this;
  }

  ISpecificationBaseObjectsDispT& operator=(ISpecificationBaseObjectsPtr pintf)
  {
    TAutoDriver<ISpecificationBaseObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationBaseObjects));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationBaseObjects);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long SectionNumb/*[in]*/, double AttrNumb/*[in]*/, 
                                 Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall Add(long SectionNumb/*[in]*/, 
                                                               double AttrNumb/*[in]*/);
  HRESULT         __fastcall GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                            TOLEBOOL Equal/*[in]*/, 
                                                            long SectionNumb/*[in]*/, 
                                                            double AttrNumb/*[in]*/, 
                                                            TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                            TOLEBOOL Equal/*[in]*/, 
                                                            long SectionNumb/*[in]*/, 
                                                            double AttrNumb/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationBaseObjectsDispT<ISpecificationBaseObjects> ISpecificationBaseObjectsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationObject
// Interface: ISpecificationObject
// *********************************************************************//
template <class T /* ISpecificationObject */ >
class TCOMISpecificationObjectT : public TComInterface<ISpecificationObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationObjectT() {}
  TCOMISpecificationObjectT(ISpecificationObject *intf, bool addRef = false) : TComInterface<ISpecificationObject>(intf, addRef) {}
  TCOMISpecificationObjectT(const TCOMISpecificationObjectT& src) : TComInterface<ISpecificationObject>(src) {}
  TCOMISpecificationObjectT& operator=(const TCOMISpecificationObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectTypeEnum __fastcall get_ObjectType(void);
  HRESULT         __fastcall get_Section(long* PVal/*[out,retval]*/);
  long            __fastcall get_Section(void);
  HRESULT         __fastcall get_Subsection(long* PVal/*[out,retval]*/);
  long            __fastcall get_Subsection(void);
  HRESULT         __fastcall set_Subsection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalSection(void);
  HRESULT         __fastcall set_AdditionalSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalBlock(void);
  HRESULT         __fastcall set_AdditionalBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedSection(void);
  HRESULT         __fastcall set_NestedSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedBlock(void);
  HRESULT         __fastcall set_NestedBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_BlockNumberByIndex(long Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumberByIndex(long Val/*[in]*/);
  HRESULT         __fastcall get_UniqueNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueNumber(void);
  HRESULT         __fastcall get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectStateEnum __fastcall get_State(void);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IncrementPosition(void);
  HRESULT         __fastcall set_IncrementPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall Edit(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Edit(void);

  __property   ksSpecificationObjectTypeEnum ObjectType = {read = get_ObjectType};
  __property   long            Section = {read = get_Section};
  __property   long            Subsection = {read = get_Subsection, write = set_Subsection};
  __property   long            AdditionalSection = {read = get_AdditionalSection, write = set_AdditionalSection};
  __property   long            AdditionalBlock = {read = get_AdditionalBlock, write = set_AdditionalBlock};
  __property   long            NestedSection = {read = get_NestedSection, write = set_NestedSection};
  __property   long            NestedBlock = {read = get_NestedBlock, write = set_NestedBlock};
  __property   double          UniqueNumber = {read = get_UniqueNumber};
  __property   ksSpecificationObjectStateEnum State = {read = get_State};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   TOLEBOOL        IncrementPosition = {read = get_IncrementPosition, write = set_IncrementPosition};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};
};
typedef TCOMISpecificationObjectT<ISpecificationObject> TCOMISpecificationObject;

// *********************************************************************//
// DispIntf:  ISpecificationObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {72EB4E8E-7952-4B36-852B-4816B7B5AFEE}
// *********************************************************************//
template<class T>
class ISpecificationObjectDispT : public TAutoDriver<ISpecificationObject>
{
public:
  ISpecificationObjectDispT(){}

  ISpecificationObjectDispT(ISpecificationObject *pintf)
  {
    TAutoDriver<ISpecificationObject>::Bind(pintf, false);
  }

  ISpecificationObjectDispT(ISpecificationObjectPtr pintf)
  {
    TAutoDriver<ISpecificationObject>::Bind(pintf, true);
  }

  ISpecificationObjectDispT& operator=(ISpecificationObject *pintf)
  {
    TAutoDriver<ISpecificationObject>::Bind(pintf, false);
    return *this;
  }

  ISpecificationObjectDispT& operator=(ISpecificationObjectPtr pintf)
  {
    TAutoDriver<ISpecificationObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationObject);
  }

  HRESULT         __fastcall get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectTypeEnum __fastcall get_ObjectType(void);
  HRESULT         __fastcall get_Section(long* PVal/*[out,retval]*/);
  long            __fastcall get_Section(void);
  HRESULT         __fastcall get_Subsection(long* PVal/*[out,retval]*/);
  long            __fastcall get_Subsection(void);
  HRESULT         __fastcall set_Subsection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalSection(void);
  HRESULT         __fastcall set_AdditionalSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalBlock(void);
  HRESULT         __fastcall set_AdditionalBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedSection(void);
  HRESULT         __fastcall set_NestedSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedBlock(void);
  HRESULT         __fastcall set_NestedBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_BlockNumberByIndex(long Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumberByIndex(long Val/*[in]*/);
  HRESULT         __fastcall get_UniqueNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueNumber(void);
  HRESULT         __fastcall get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectStateEnum __fastcall get_State(void);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IncrementPosition(void);
  HRESULT         __fastcall set_IncrementPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall Edit(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Edit(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksSpecificationObjectTypeEnum ObjectType = {read = get_ObjectType};
  __property   long            Section = {read = get_Section};
  __property   long            Subsection = {read = get_Subsection, write = set_Subsection};
  __property   long            AdditionalSection = {read = get_AdditionalSection, write = set_AdditionalSection};
  __property   long            AdditionalBlock = {read = get_AdditionalBlock, write = set_AdditionalBlock};
  __property   long            NestedSection = {read = get_NestedSection, write = set_NestedSection};
  __property   long            NestedBlock = {read = get_NestedBlock, write = set_NestedBlock};
  __property   double          UniqueNumber = {read = get_UniqueNumber};
  __property   ksSpecificationObjectStateEnum State = {read = get_State};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   TOLEBOOL        IncrementPosition = {read = get_IncrementPosition, write = set_IncrementPosition};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationObjectDispT<ISpecificationObject> ISpecificationObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationBaseObject
// Interface: ISpecificationBaseObject
// *********************************************************************//
template <class T /* ISpecificationBaseObject */ >
class TCOMISpecificationBaseObjectT : public TComInterface<ISpecificationBaseObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationBaseObjectT() {}
  TCOMISpecificationBaseObjectT(ISpecificationBaseObject *intf, bool addRef = false) : TComInterface<ISpecificationBaseObject>(intf, addRef) {}
  TCOMISpecificationBaseObjectT(const TCOMISpecificationBaseObjectT& src) : TComInterface<ISpecificationBaseObject>(src) {}
  TCOMISpecificationBaseObjectT& operator=(const TCOMISpecificationBaseObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Draw(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Draw(void);
  HRESULT         __fastcall set_Draw(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DrawPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawPosition(void);
  HRESULT         __fastcall set_DrawPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Performance(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Performance(void);
  HRESULT         __fastcall set_Performance(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall get_CommentObjects(void);
  HRESULT         __fastcall get_Documents(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Documents(void);
  HRESULT         __fastcall get_AttributeNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_AttributeNumber(void);
  HRESULT         __fastcall set_AttributeNumber(double PVal/*[in]*/);
  HRESULT         __fastcall get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                              long BlockNumber/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                              long BlockNumber/*[in]*/);
  HRESULT         __fastcall SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/);
  HRESULT         __fastcall get_Geometry(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Geometry(void);
  HRESULT         __fastcall set_Geometry(TVariant PVal);
  HRESULT         __fastcall IncludeGeometry(TVariantInParam PVal/*[in]*/, TOLEBOOL FillText/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall IncludeGeometry(TVariantInParam PVal/*[in]*/, TOLEBOOL FillText/*[in]*/);
  HRESULT         __fastcall ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                           TOLEBOOL ClearLeaders/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                           TOLEBOOL ClearLeaders/*[in]*/);

  __property   TOLEBOOL        Draw = {read = get_Draw, write = set_Draw};
  __property   TOLEBOOL        DrawPosition = {read = get_DrawPosition, write = set_DrawPosition};
  __property   TOLEBOOL        Performance = {read = get_Performance, write = set_Performance};
  __property   Kompasltapi7_tlb::ISpecificationCommentObjectsPtr CommentObjects = {read = get_CommentObjects};
  __property   double          AttributeNumber = {read = get_AttributeNumber, write = set_AttributeNumber};
};
typedef TCOMISpecificationBaseObjectT<ISpecificationBaseObject> TCOMISpecificationBaseObject;

// *********************************************************************//
// DispIntf:  ISpecificationBaseObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {49994ED8-96BA-4D9D-B642-5F0F1E3FED16}
// *********************************************************************//
template<class T>
class ISpecificationBaseObjectDispT : public TAutoDriver<ISpecificationBaseObject>
{
public:
  ISpecificationBaseObjectDispT(){}

  ISpecificationBaseObjectDispT(ISpecificationBaseObject *pintf)
  {
    TAutoDriver<ISpecificationBaseObject>::Bind(pintf, false);
  }

  ISpecificationBaseObjectDispT(ISpecificationBaseObjectPtr pintf)
  {
    TAutoDriver<ISpecificationBaseObject>::Bind(pintf, true);
  }

  ISpecificationBaseObjectDispT& operator=(ISpecificationBaseObject *pintf)
  {
    TAutoDriver<ISpecificationBaseObject>::Bind(pintf, false);
    return *this;
  }

  ISpecificationBaseObjectDispT& operator=(ISpecificationBaseObjectPtr pintf)
  {
    TAutoDriver<ISpecificationBaseObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationBaseObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationBaseObject);
  }

  HRESULT         __fastcall get_Draw(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Draw(void);
  HRESULT         __fastcall set_Draw(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DrawPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawPosition(void);
  HRESULT         __fastcall set_DrawPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Performance(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Performance(void);
  HRESULT         __fastcall set_Performance(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall get_CommentObjects(void);
  HRESULT         __fastcall get_Documents(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Documents(void);
  HRESULT         __fastcall get_AttributeNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_AttributeNumber(void);
  HRESULT         __fastcall set_AttributeNumber(double PVal/*[in]*/);
  HRESULT         __fastcall get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                              long BlockNumber/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                              long BlockNumber/*[in]*/);
  HRESULT         __fastcall SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/);
  HRESULT         __fastcall get_Geometry(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Geometry(void);
  HRESULT         __fastcall set_Geometry(TVariant PVal);
  HRESULT         __fastcall IncludeGeometry(TVariantInParam PVal/*[in]*/, TOLEBOOL FillText/*[in]*/
                                             , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall IncludeGeometry(TVariantInParam PVal/*[in]*/, TOLEBOOL FillText/*[in]*/);
  HRESULT         __fastcall ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                           TOLEBOOL ClearLeaders/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                           TOLEBOOL ClearLeaders/*[in]*/);
  HRESULT         __fastcall get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectTypeEnum __fastcall get_ObjectType(void);
  HRESULT         __fastcall get_Section(long* PVal/*[out,retval]*/);
  long            __fastcall get_Section(void);
  HRESULT         __fastcall get_Subsection(long* PVal/*[out,retval]*/);
  long            __fastcall get_Subsection(void);
  HRESULT         __fastcall set_Subsection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalSection(void);
  HRESULT         __fastcall set_AdditionalSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalBlock(void);
  HRESULT         __fastcall set_AdditionalBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedSection(void);
  HRESULT         __fastcall set_NestedSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedBlock(void);
  HRESULT         __fastcall set_NestedBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_BlockNumberByIndex(long Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumberByIndex(long Val/*[in]*/);
  HRESULT         __fastcall get_UniqueNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueNumber(void);
  HRESULT         __fastcall get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectStateEnum __fastcall get_State(void);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IncrementPosition(void);
  HRESULT         __fastcall set_IncrementPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall Edit(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Edit(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Draw = {read = get_Draw, write = set_Draw};
  __property   TOLEBOOL        DrawPosition = {read = get_DrawPosition, write = set_DrawPosition};
  __property   TOLEBOOL        Performance = {read = get_Performance, write = set_Performance};
  __property   Kompasltapi7_tlb::ISpecificationCommentObjectsPtr CommentObjects = {read = get_CommentObjects};
  __property   double          AttributeNumber = {read = get_AttributeNumber, write = set_AttributeNumber};

  __property   ksSpecificationObjectTypeEnum ObjectType = {read = get_ObjectType};
  __property   long            Section = {read = get_Section};
  __property   long            Subsection = {read = get_Subsection, write = set_Subsection};
  __property   long            AdditionalSection = {read = get_AdditionalSection, write = set_AdditionalSection};
  __property   long            AdditionalBlock = {read = get_AdditionalBlock, write = set_AdditionalBlock};
  __property   long            NestedSection = {read = get_NestedSection, write = set_NestedSection};
  __property   long            NestedBlock = {read = get_NestedBlock, write = set_NestedBlock};
  __property   double          UniqueNumber = {read = get_UniqueNumber};
  __property   ksSpecificationObjectStateEnum State = {read = get_State};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   TOLEBOOL        IncrementPosition = {read = get_IncrementPosition, write = set_IncrementPosition};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationBaseObjectDispT<ISpecificationBaseObject> ISpecificationBaseObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumns
// Interface: ISpecificationColumns
// *********************************************************************//
template <class T /* ISpecificationColumns */ >
class TCOMISpecificationColumnsT : public TComInterface<ISpecificationColumns>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationColumnsT() {}
  TCOMISpecificationColumnsT(ISpecificationColumns *intf, bool addRef = false) : TComInterface<ISpecificationColumns>(intf, addRef) {}
  TCOMISpecificationColumnsT(const TCOMISpecificationColumnsT& src) : TComInterface<ISpecificationColumns>(src) {}
  TCOMISpecificationColumnsT& operator=(const TCOMISpecificationColumnsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                        long ColumnNumber/*[in]*/, long BlockNumber/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                                                  long ColumnNumber/*[in]*/, 
                                                                  long BlockNumber/*[in]*/);

};
typedef TCOMISpecificationColumnsT<ISpecificationColumns> TCOMISpecificationColumns;

// *********************************************************************//
// DispIntf:  ISpecificationColumns
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9F44BF03-DE25-4DDE-ADA0-92384199C100}
// *********************************************************************//
template<class T>
class ISpecificationColumnsDispT : public TAutoDriver<ISpecificationColumns>
{
public:
  ISpecificationColumnsDispT(){}

  ISpecificationColumnsDispT(ISpecificationColumns *pintf)
  {
    TAutoDriver<ISpecificationColumns>::Bind(pintf, false);
  }

  ISpecificationColumnsDispT(ISpecificationColumnsPtr pintf)
  {
    TAutoDriver<ISpecificationColumns>::Bind(pintf, true);
  }

  ISpecificationColumnsDispT& operator=(ISpecificationColumns *pintf)
  {
    TAutoDriver<ISpecificationColumns>::Bind(pintf, false);
    return *this;
  }

  ISpecificationColumnsDispT& operator=(ISpecificationColumnsPtr pintf)
  {
    TAutoDriver<ISpecificationColumns>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationColumns));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationColumns);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/
                                        , long ColumnNumber/*[in]*/, long BlockNumber/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                                                  long ColumnNumber/*[in]*/, 
                                                                  long BlockNumber/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationColumnsDispT<ISpecificationColumns> ISpecificationColumnsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumn
// Interface: ISpecificationColumn
// *********************************************************************//
template <class T /* ISpecificationColumn */ >
class TCOMISpecificationColumnT : public TComInterface<ISpecificationColumn>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationColumnT() {}
  TCOMISpecificationColumnT(ISpecificationColumn *intf, bool addRef = false) : TComInterface<ISpecificationColumn>(intf, addRef) {}
  TCOMISpecificationColumnT(const TCOMISpecificationColumnT& src) : TComInterface<ISpecificationColumn>(src) {}
  TCOMISpecificationColumnT& operator=(const TCOMISpecificationColumnT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationColumnTypeEnum __fastcall get_ColumnType(void);
  HRESULT         __fastcall get_ColumnTypeNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_ColumnTypeNumber(void);
  HRESULT         __fastcall get_BlockNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumber(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ValueType(void);
  HRESULT         __fastcall get_ColumnItems(Kompasltapi7_tlb::ISpecificationColumnItemsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnItemsPtr __fastcall get_ColumnItems(void);
  HRESULT         __fastcall get_AttributeNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_AttributeNumber(void);
  HRESULT         __fastcall set_AttributeNumber(double PVal/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);

  __property   ksSpecificationColumnTypeEnum ColumnType = {read = get_ColumnType};
  __property   long            ColumnTypeNumber = {read = get_ColumnTypeNumber};
  __property   long            BlockNumber = {read = get_BlockNumber};
  __property   long            Number = {read = get_Number};
  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   Kompasltapi7_tlb::ISpecificationColumnItemsPtr ColumnItems = {read = get_ColumnItems};
  __property   double          AttributeNumber = {read = get_AttributeNumber, write = set_AttributeNumber};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
};
typedef TCOMISpecificationColumnT<ISpecificationColumn> TCOMISpecificationColumn;

// *********************************************************************//
// DispIntf:  ISpecificationColumn
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3ECFB777-2645-42B5-A6ED-111688433B26}
// *********************************************************************//
template<class T>
class ISpecificationColumnDispT : public TAutoDriver<ISpecificationColumn>
{
public:
  ISpecificationColumnDispT(){}

  ISpecificationColumnDispT(ISpecificationColumn *pintf)
  {
    TAutoDriver<ISpecificationColumn>::Bind(pintf, false);
  }

  ISpecificationColumnDispT(ISpecificationColumnPtr pintf)
  {
    TAutoDriver<ISpecificationColumn>::Bind(pintf, true);
  }

  ISpecificationColumnDispT& operator=(ISpecificationColumn *pintf)
  {
    TAutoDriver<ISpecificationColumn>::Bind(pintf, false);
    return *this;
  }

  ISpecificationColumnDispT& operator=(ISpecificationColumnPtr pintf)
  {
    TAutoDriver<ISpecificationColumn>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationColumn));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationColumn);
  }

  HRESULT         __fastcall get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationColumnTypeEnum __fastcall get_ColumnType(void);
  HRESULT         __fastcall get_ColumnTypeNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_ColumnTypeNumber(void);
  HRESULT         __fastcall get_BlockNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumber(void);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ValueType(void);
  HRESULT         __fastcall get_ColumnItems(Kompasltapi7_tlb::ISpecificationColumnItemsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnItemsPtr __fastcall get_ColumnItems(void);
  HRESULT         __fastcall get_AttributeNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_AttributeNumber(void);
  HRESULT         __fastcall set_AttributeNumber(double PVal/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksSpecificationColumnTypeEnum ColumnType = {read = get_ColumnType};
  __property   long            ColumnTypeNumber = {read = get_ColumnTypeNumber};
  __property   long            BlockNumber = {read = get_BlockNumber};
  __property   long            Number = {read = get_Number};
  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   Kompasltapi7_tlb::ISpecificationColumnItemsPtr ColumnItems = {read = get_ColumnItems};
  __property   double          AttributeNumber = {read = get_AttributeNumber, write = set_AttributeNumber};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationColumnDispT<ISpecificationColumn> ISpecificationColumnDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnItems
// Interface: ISpecificationColumnItems
// *********************************************************************//
template <class T /* ISpecificationColumnItems */ >
class TCOMISpecificationColumnItemsT : public TComInterface<ISpecificationColumnItems>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationColumnItemsT() {}
  TCOMISpecificationColumnItemsT(ISpecificationColumnItems *intf, bool addRef = false) : TComInterface<ISpecificationColumnItems>(intf, addRef) {}
  TCOMISpecificationColumnItemsT(const TCOMISpecificationColumnItemsT& src) : TComInterface<ISpecificationColumnItems>(src) {}
  TCOMISpecificationColumnItemsT& operator=(const TCOMISpecificationColumnItemsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationColumnItemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnItemPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMISpecificationColumnItemsT<ISpecificationColumnItems> TCOMISpecificationColumnItems;

// *********************************************************************//
// DispIntf:  ISpecificationColumnItems
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F4BAB79A-8A35-44D5-BE44-C566E444F342}
// *********************************************************************//
template<class T>
class ISpecificationColumnItemsDispT : public TAutoDriver<ISpecificationColumnItems>
{
public:
  ISpecificationColumnItemsDispT(){}

  ISpecificationColumnItemsDispT(ISpecificationColumnItems *pintf)
  {
    TAutoDriver<ISpecificationColumnItems>::Bind(pintf, false);
  }

  ISpecificationColumnItemsDispT(ISpecificationColumnItemsPtr pintf)
  {
    TAutoDriver<ISpecificationColumnItems>::Bind(pintf, true);
  }

  ISpecificationColumnItemsDispT& operator=(ISpecificationColumnItems *pintf)
  {
    TAutoDriver<ISpecificationColumnItems>::Bind(pintf, false);
    return *this;
  }

  ISpecificationColumnItemsDispT& operator=(ISpecificationColumnItemsPtr pintf)
  {
    TAutoDriver<ISpecificationColumnItems>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationColumnItems));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationColumnItems);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationColumnItemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnItemPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationColumnItemsDispT<ISpecificationColumnItems> ISpecificationColumnItemsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnItem
// Interface: ISpecificationColumnItem
// *********************************************************************//
template <class T /* ISpecificationColumnItem */ >
class TCOMISpecificationColumnItemT : public TComInterface<ISpecificationColumnItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationColumnItemT() {}
  TCOMISpecificationColumnItemT(ISpecificationColumnItem *intf, bool addRef = false) : TComInterface<ISpecificationColumnItem>(intf, addRef) {}
  TCOMISpecificationColumnItemT(const TCOMISpecificationColumnItemT& src) : TComInterface<ISpecificationColumnItem>(src) {}
  TCOMISpecificationColumnItemT& operator=(const TCOMISpecificationColumnItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ValueType(void);
  HRESULT         __fastcall get_Key(short* PVal/*[out,retval]*/);
  short           __fastcall get_Key(void);
  HRESULT         __fastcall set_Key(short PVal/*[in]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);

  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   short           Key = {read = get_Key, write = set_Key};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
};
typedef TCOMISpecificationColumnItemT<ISpecificationColumnItem> TCOMISpecificationColumnItem;

// *********************************************************************//
// DispIntf:  ISpecificationColumnItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2BABDD01-EACA-4137-9749-25B8C5E230EE}
// *********************************************************************//
template<class T>
class ISpecificationColumnItemDispT : public TAutoDriver<ISpecificationColumnItem>
{
public:
  ISpecificationColumnItemDispT(){}

  ISpecificationColumnItemDispT(ISpecificationColumnItem *pintf)
  {
    TAutoDriver<ISpecificationColumnItem>::Bind(pintf, false);
  }

  ISpecificationColumnItemDispT(ISpecificationColumnItemPtr pintf)
  {
    TAutoDriver<ISpecificationColumnItem>::Bind(pintf, true);
  }

  ISpecificationColumnItemDispT& operator=(ISpecificationColumnItem *pintf)
  {
    TAutoDriver<ISpecificationColumnItem>::Bind(pintf, false);
    return *this;
  }

  ISpecificationColumnItemDispT& operator=(ISpecificationColumnItemPtr pintf)
  {
    TAutoDriver<ISpecificationColumnItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationColumnItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationColumnItem);
  }

  HRESULT         __fastcall get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ValueType(void);
  HRESULT         __fastcall get_Key(short* PVal/*[out,retval]*/);
  short           __fastcall get_Key(void);
  HRESULT         __fastcall set_Key(short PVal/*[in]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksValueTypeEnum ValueType = {read = get_ValueType};
  __property   short           Key = {read = get_Key, write = set_Key};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationColumnItemDispT<ISpecificationColumnItem> ISpecificationColumnItemDisp;

// *********************************************************************//
// SmartIntf: TCOMIText
// Interface: IText
// *********************************************************************//
template <class T /* IText */ >
class TCOMITextT : public TComInterface<IText>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITextT() {}
  TCOMITextT(IText *intf, bool addRef = false) : TComInterface<IText>(intf, addRef) {}
  TCOMITextT(const TCOMITextT& src) : TComInterface<IText>(src) {}
  TCOMITextT& operator=(const TCOMITextT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_TextLines(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_TextLines(void);
  HRESULT         __fastcall get_Count(long* Result/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_TextLine(long Index/*[in]*/, 
                                          Kompasltapi7_tlb::ITextLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_TextLine(long Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall Add(void);
  HRESULT         __fastcall AddBefore(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall AddBefore(long Index/*[in]*/);
  HRESULT         __fastcall get_Str(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Str(void);
  HRESULT         __fastcall set_Str(BSTR PVal/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall AddTextLine(ksTextLineType Type/*[in]*/, 
                                         BSTR FileName/*[in]*/, 
                                         Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall AddTextLine(ksTextLineType Type/*[in]*/, 
                                                        BSTR FileName/*[in]*/);
  HRESULT         __fastcall AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                               long Index/*[in]*/, BSTR FileName/*[in]*/, 
                                               Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                                              long Index/*[in]*/, 
                                                              BSTR FileName/*[in]*/);
  HRESULT         __fastcall Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, 
                                     TOLEBOOL Case/*[in,def,opt]*/, 
                                     TOLEBOOL WordOnly/*[in,def,opt]*/, 
                                     TOLEBOOL ReplaceAll/*[in,def,opt]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, 
                                     TOLEBOOL Case/*[in,def,opt]*/, 
                                     TOLEBOOL WordOnly/*[in,def,opt]*/, 
                                     TOLEBOOL ReplaceAll/*[in,def,opt]*/);
  HRESULT         __fastcall Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/, 
                                    TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/);

  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Count = {read = get_Count};
  __property   BSTR            Str = {read = get_Str, write = set_Str};
};
typedef TCOMITextT<IText> TCOMIText;

// *********************************************************************//
// DispIntf:  IText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {99B840FC-0150-4DAD-BC0E-AD481BAAB8C2}
// *********************************************************************//
template<class T>
class ITextDispT : public TAutoDriver<IText>
{
public:
  ITextDispT(){}

  ITextDispT(IText *pintf)
  {
    TAutoDriver<IText>::Bind(pintf, false);
  }

  ITextDispT(ITextPtr pintf)
  {
    TAutoDriver<IText>::Bind(pintf, true);
  }

  ITextDispT& operator=(IText *pintf)
  {
    TAutoDriver<IText>::Bind(pintf, false);
    return *this;
  }

  ITextDispT& operator=(ITextPtr pintf)
  {
    TAutoDriver<IText>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Text));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Text);
  }

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_TextLines(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_TextLines(void);
  HRESULT         __fastcall get_Count(long* Result/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_TextLine(long Index/*[in]*/, 
                                          Kompasltapi7_tlb::ITextLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_TextLine(long Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall Add(void);
  HRESULT         __fastcall AddBefore(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall AddBefore(long Index/*[in]*/);
  HRESULT         __fastcall get_Str(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Str(void);
  HRESULT         __fastcall set_Str(BSTR PVal/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall AddTextLine(ksTextLineType Type/*[in]*/, 
                                         BSTR FileName/*[in]*/, 
                                         Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall AddTextLine(ksTextLineType Type/*[in]*/, 
                                                        BSTR FileName/*[in]*/);
  HRESULT         __fastcall AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                               long Index/*[in]*/, BSTR FileName/*[in]*/, 
                                               Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                                              long Index/*[in]*/, 
                                                              BSTR FileName/*[in]*/);
  HRESULT         __fastcall Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, 
                                     TOLEBOOL Case/*[in,def,opt]*/, 
                                     TOLEBOOL WordOnly/*[in,def,opt]*/, 
                                     TOLEBOOL ReplaceAll/*[in,def,opt]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, 
                                     TOLEBOOL Case/*[in,def,opt]*/, 
                                     TOLEBOOL WordOnly/*[in,def,opt]*/, 
                                     TOLEBOOL ReplaceAll/*[in,def,opt]*/);
  HRESULT         __fastcall Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/, 
                                    TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Count = {read = get_Count};
  __property   BSTR            Str = {read = get_Str, write = set_Str};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITextDispT<IText> ITextDisp;

// *********************************************************************//
// SmartIntf: TCOMITextLine
// Interface: ITextLine
// *********************************************************************//
template <class T /* ITextLine */ >
class TCOMITextLineT : public TComInterface<ITextLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITextLineT() {}
  TCOMITextLineT(ITextLine *intf, bool addRef = false) : TComInterface<ITextLine>(intf, addRef) {}
  TCOMITextLineT(const TCOMITextLineT& src) : TComInterface<ITextLine>(src) {}
  TCOMITextLineT& operator=(const TCOMITextLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_TextItems(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_TextItems(void);
  HRESULT         __fastcall get_Count(long* Result/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_TextItem(long Index/*[in]*/, 
                                          Kompasltapi7_tlb::ITextItemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITextItemPtr __fastcall get_TextItem(long Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextItemPtr __fastcall Add(void);
  HRESULT         __fastcall AddBefore(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextItemPtr __fastcall AddBefore(long Index/*[in]*/);
  HRESULT         __fastcall get_Str(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Str(void);
  HRESULT         __fastcall set_Str(BSTR PVal/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Align(ksAlignEnum* PVal/*[out,retval]*/);
  ksAlignEnum __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(ksAlignEnum PVal/*[in]*/);
  HRESULT         __fastcall get_IndentedLine(double* PVal/*[out,retval]*/);
  double          __fastcall get_IndentedLine(void);
  HRESULT         __fastcall set_IndentedLine(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepBeforeParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepBeforeParagraph(void);
  HRESULT         __fastcall set_StepBeforeParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepAfterParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepAfterParagraph(void);
  HRESULT         __fastcall set_StepAfterParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftEdge(void);
  HRESULT         __fastcall set_LeftEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightEdge(void);
  HRESULT         __fastcall set_RightEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorsPtr __fastcall get_Tabulators(void);
  HRESULT         __fastcall get_Level(long* Result/*[out,retval]*/);
  long            __fastcall get_Level(void);
  HRESULT         __fastcall set_Level(long Result/*[in]*/);
  HRESULT         __fastcall get_Numbering(ksTextNumberingEnum* Result/*[out,retval]*/);
  ksTextNumberingEnum __fastcall get_Numbering(void);
  HRESULT         __fastcall set_Numbering(ksTextNumberingEnum Result/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_TextLineType(ksTextLineType* Result/*[out,retval]*/);
  ksTextLineType __fastcall get_TextLineType(void);
  HRESULT         __fastcall get_TextLineData(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_TextLineData(void);
  HRESULT         __fastcall get_NewPage(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_NewPage(void);
  HRESULT         __fastcall set_NewPage(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/, 
                                    TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/);

  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Count = {read = get_Count};
  __property   BSTR            Str = {read = get_Str, write = set_Str};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   double          IndentedLine = {read = get_IndentedLine, write = set_IndentedLine};
  __property   double          StepBeforeParagraph = {read = get_StepBeforeParagraph, write = set_StepBeforeParagraph};
  __property   double          StepAfterParagraph = {read = get_StepAfterParagraph, write = set_StepAfterParagraph};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   Kompasltapi7_tlb::ITabulatorsPtr Tabulators = {read = get_Tabulators};
  __property   long            Level = {read = get_Level, write = set_Level};
  __property   ksTextNumberingEnum Numbering = {read = get_Numbering, write = set_Numbering};
  __property   ksTextLineType TextLineType = {read = get_TextLineType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr TextLineData = {read = get_TextLineData};
  __property   TOLEBOOL        NewPage = {read = get_NewPage, write = set_NewPage};
};
typedef TCOMITextLineT<ITextLine> TCOMITextLine;

// *********************************************************************//
// DispIntf:  ITextLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AAB72FE2-DEA3-4FB6-B0DD-B926249EF67C}
// *********************************************************************//
template<class T>
class ITextLineDispT : public TAutoDriver<ITextLine>
{
public:
  ITextLineDispT(){}

  ITextLineDispT(ITextLine *pintf)
  {
    TAutoDriver<ITextLine>::Bind(pintf, false);
  }

  ITextLineDispT(ITextLinePtr pintf)
  {
    TAutoDriver<ITextLine>::Bind(pintf, true);
  }

  ITextLineDispT& operator=(ITextLine *pintf)
  {
    TAutoDriver<ITextLine>::Bind(pintf, false);
    return *this;
  }

  ITextLineDispT& operator=(ITextLinePtr pintf)
  {
    TAutoDriver<ITextLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TextLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TextLine);
  }

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_TextItems(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_TextItems(void);
  HRESULT         __fastcall get_Count(long* Result/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_TextItem(long Index/*[in]*/, 
                                          Kompasltapi7_tlb::ITextItemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITextItemPtr __fastcall get_TextItem(long Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextItemPtr __fastcall Add(void);
  HRESULT         __fastcall AddBefore(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITextItemPtr __fastcall AddBefore(long Index/*[in]*/);
  HRESULT         __fastcall get_Str(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Str(void);
  HRESULT         __fastcall set_Str(BSTR PVal/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Align(ksAlignEnum* PVal/*[out,retval]*/);
  ksAlignEnum __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(ksAlignEnum PVal/*[in]*/);
  HRESULT         __fastcall get_IndentedLine(double* PVal/*[out,retval]*/);
  double          __fastcall get_IndentedLine(void);
  HRESULT         __fastcall set_IndentedLine(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepBeforeParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepBeforeParagraph(void);
  HRESULT         __fastcall set_StepBeforeParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_StepAfterParagraph(double* PVal/*[out,retval]*/);
  double          __fastcall get_StepAfterParagraph(void);
  HRESULT         __fastcall set_StepAfterParagraph(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftEdge(void);
  HRESULT         __fastcall set_LeftEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightEdge(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightEdge(void);
  HRESULT         __fastcall set_RightEdge(double PVal/*[in]*/);
  HRESULT         __fastcall get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITabulatorsPtr __fastcall get_Tabulators(void);
  HRESULT         __fastcall get_Level(long* Result/*[out,retval]*/);
  long            __fastcall get_Level(void);
  HRESULT         __fastcall set_Level(long Result/*[in]*/);
  HRESULT         __fastcall get_Numbering(ksTextNumberingEnum* Result/*[out,retval]*/);
  ksTextNumberingEnum __fastcall get_Numbering(void);
  HRESULT         __fastcall set_Numbering(ksTextNumberingEnum Result/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_TextLineType(ksTextLineType* Result/*[out,retval]*/);
  ksTextLineType __fastcall get_TextLineType(void);
  HRESULT         __fastcall get_TextLineData(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_TextLineData(void);
  HRESULT         __fastcall get_NewPage(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_NewPage(void);
  HRESULT         __fastcall set_NewPage(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/, 
                                    TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Count = {read = get_Count};
  __property   BSTR            Str = {read = get_Str, write = set_Str};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   ksAlignEnum Align = {read = get_Align, write = set_Align};
  __property   double          IndentedLine = {read = get_IndentedLine, write = set_IndentedLine};
  __property   double          StepBeforeParagraph = {read = get_StepBeforeParagraph, write = set_StepBeforeParagraph};
  __property   double          StepAfterParagraph = {read = get_StepAfterParagraph, write = set_StepAfterParagraph};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   Kompasltapi7_tlb::ITabulatorsPtr Tabulators = {read = get_Tabulators};
  __property   long            Level = {read = get_Level, write = set_Level};
  __property   ksTextNumberingEnum Numbering = {read = get_Numbering, write = set_Numbering};
  __property   ksTextLineType TextLineType = {read = get_TextLineType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr TextLineData = {read = get_TextLineData};
  __property   TOLEBOOL        NewPage = {read = get_NewPage, write = set_NewPage};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITextLineDispT<ITextLine> ITextLineDisp;

// *********************************************************************//
// SmartIntf: TCOMITextItem
// Interface: ITextItem
// *********************************************************************//
template <class T /* ITextItem */ >
class TCOMITextItemT : public TComInterface<ITextItem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITextItemT() {}
  TCOMITextItemT(ITextItem *intf, bool addRef = false) : TComInterface<ITextItem>(intf, addRef) {}
  TCOMITextItemT(const TCOMITextItemT& src) : TComInterface<ITextItem>(src) {}
  TCOMITextItemT& operator=(const TCOMITextItemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ItemType(ksTextItemEnum* PVal/*[out,retval]*/);
  ksTextItemEnum __fastcall get_ItemType(void);
  HRESULT         __fastcall set_ItemType(ksTextItemEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Str(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_Str(void);
  HRESULT         __fastcall set_Str(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_SymbolFontName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SymbolFontName(void);
  HRESULT         __fastcall set_SymbolFontName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Number(long* Result/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall set_Number(long Result/*[in]*/);
  HRESULT         __fastcall get_SizeFactor(ksTextSizeEnum* PVal/*[out,retval]*/);
  ksTextSizeEnum __fastcall get_SizeFactor(void);
  HRESULT         __fastcall set_SizeFactor(ksTextSizeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_NewLine(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_NewLine(void);
  HRESULT         __fastcall set_NewLine(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);

  __property   ksTextItemEnum ItemType = {read = get_ItemType, write = set_ItemType};
  __property   BSTR            Str = {read = get_Str, write = set_Str};
  __property   BSTR            SymbolFontName = {read = get_SymbolFontName, write = set_SymbolFontName};
  __property   long            Number = {read = get_Number, write = set_Number};
  __property   ksTextSizeEnum SizeFactor = {read = get_SizeFactor, write = set_SizeFactor};
  __property   TOLEBOOL        NewLine = {read = get_NewLine, write = set_NewLine};
};
typedef TCOMITextItemT<ITextItem> TCOMITextItem;

// *********************************************************************//
// DispIntf:  ITextItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1DE74AFB-5026-4B85-861F-F0CFDBD443E6}
// *********************************************************************//
template<class T>
class ITextItemDispT : public TAutoDriver<ITextItem>
{
public:
  ITextItemDispT(){}

  ITextItemDispT(ITextItem *pintf)
  {
    TAutoDriver<ITextItem>::Bind(pintf, false);
  }

  ITextItemDispT(ITextItemPtr pintf)
  {
    TAutoDriver<ITextItem>::Bind(pintf, true);
  }

  ITextItemDispT& operator=(ITextItem *pintf)
  {
    TAutoDriver<ITextItem>::Bind(pintf, false);
    return *this;
  }

  ITextItemDispT& operator=(ITextItemPtr pintf)
  {
    TAutoDriver<ITextItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TextItem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TextItem);
  }

  HRESULT         __fastcall get_ItemType(ksTextItemEnum* PVal/*[out,retval]*/);
  ksTextItemEnum __fastcall get_ItemType(void);
  HRESULT         __fastcall set_ItemType(ksTextItemEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Str(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_Str(void);
  HRESULT         __fastcall set_Str(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_SymbolFontName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SymbolFontName(void);
  HRESULT         __fastcall set_SymbolFontName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Number(long* Result/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall set_Number(long Result/*[in]*/);
  HRESULT         __fastcall get_SizeFactor(ksTextSizeEnum* PVal/*[out,retval]*/);
  ksTextSizeEnum __fastcall get_SizeFactor(void);
  HRESULT         __fastcall set_SizeFactor(ksTextSizeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_NewLine(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_NewLine(void);
  HRESULT         __fastcall set_NewLine(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksTextItemEnum ItemType = {read = get_ItemType, write = set_ItemType};
  __property   BSTR            Str = {read = get_Str, write = set_Str};
  __property   BSTR            SymbolFontName = {read = get_SymbolFontName, write = set_SymbolFontName};
  __property   long            Number = {read = get_Number, write = set_Number};
  __property   ksTextSizeEnum SizeFactor = {read = get_SizeFactor, write = set_SizeFactor};
  __property   TOLEBOOL        NewLine = {read = get_NewLine, write = set_NewLine};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITextItemDispT<ITextItem> ITextItemDisp;

// *********************************************************************//
// SmartIntf: TCOMIAttachedDocuments
// Interface: IAttachedDocuments
// *********************************************************************//
template <class T /* IAttachedDocuments */ >
class TCOMIAttachedDocumentsT : public TComInterface<IAttachedDocuments>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAttachedDocumentsT() {}
  TCOMIAttachedDocumentsT(IAttachedDocuments *intf, bool addRef = false) : TComInterface<IAttachedDocuments>(intf, addRef) {}
  TCOMIAttachedDocumentsT(const TCOMIAttachedDocumentsT& src) : TComInterface<IAttachedDocuments>(src) {}
  TCOMIAttachedDocumentsT& operator=(const TCOMIAttachedDocumentsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/, 
                                 Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/);

};
typedef TCOMIAttachedDocumentsT<IAttachedDocuments> TCOMIAttachedDocuments;

// *********************************************************************//
// DispIntf:  IAttachedDocuments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {81FAB1C5-F566-4D06-8D3D-17FF01D3566F}
// *********************************************************************//
template<class T>
class IAttachedDocumentsDispT : public TAutoDriver<IAttachedDocuments>
{
public:
  IAttachedDocumentsDispT(){}

  IAttachedDocumentsDispT(IAttachedDocuments *pintf)
  {
    TAutoDriver<IAttachedDocuments>::Bind(pintf, false);
  }

  IAttachedDocumentsDispT(IAttachedDocumentsPtr pintf)
  {
    TAutoDriver<IAttachedDocuments>::Bind(pintf, true);
  }

  IAttachedDocumentsDispT& operator=(IAttachedDocuments *pintf)
  {
    TAutoDriver<IAttachedDocuments>::Bind(pintf, false);
    return *this;
  }

  IAttachedDocumentsDispT& operator=(IAttachedDocumentsPtr pintf)
  {
    TAutoDriver<IAttachedDocuments>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AttachedDocuments));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AttachedDocuments);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/, 
                                 Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAttachedDocumentsDispT<IAttachedDocuments> IAttachedDocumentsDisp;

// *********************************************************************//
// SmartIntf: TCOMIAttachedDocument
// Interface: IAttachedDocument
// *********************************************************************//
template <class T /* IAttachedDocument */ >
class TCOMIAttachedDocumentT : public TComInterface<IAttachedDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAttachedDocumentT() {}
  TCOMIAttachedDocumentT(IAttachedDocument *intf, bool addRef = false) : TComInterface<IAttachedDocument>(intf, addRef) {}
  TCOMIAttachedDocumentT(const TCOMIAttachedDocumentT& src) : TComInterface<IAttachedDocument>(src) {}
  TCOMIAttachedDocumentT& operator=(const TCOMIAttachedDocumentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Transmit(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Transmit(void);
  HRESULT         __fastcall set_Transmit(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);

  __property   BSTR            Name = {read = get_Name};
  __property   TOLEBOOL        Transmit = {read = get_Transmit, write = set_Transmit};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
};
typedef TCOMIAttachedDocumentT<IAttachedDocument> TCOMIAttachedDocument;

// *********************************************************************//
// DispIntf:  IAttachedDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {333E9E11-D161-49AE-9791-8BEDB58B4C78}
// *********************************************************************//
template<class T>
class IAttachedDocumentDispT : public TAutoDriver<IAttachedDocument>
{
public:
  IAttachedDocumentDispT(){}

  IAttachedDocumentDispT(IAttachedDocument *pintf)
  {
    TAutoDriver<IAttachedDocument>::Bind(pintf, false);
  }

  IAttachedDocumentDispT(IAttachedDocumentPtr pintf)
  {
    TAutoDriver<IAttachedDocument>::Bind(pintf, true);
  }

  IAttachedDocumentDispT& operator=(IAttachedDocument *pintf)
  {
    TAutoDriver<IAttachedDocument>::Bind(pintf, false);
    return *this;
  }

  IAttachedDocumentDispT& operator=(IAttachedDocumentPtr pintf)
  {
    TAutoDriver<IAttachedDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AttachedDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AttachedDocument);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Transmit(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Transmit(void);
  HRESULT         __fastcall set_Transmit(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name};
  __property   TOLEBOOL        Transmit = {read = get_Transmit, write = set_Transmit};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAttachedDocumentDispT<IAttachedDocument> IAttachedDocumentDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationCommentObjects
// Interface: ISpecificationCommentObjects
// *********************************************************************//
template <class T /* ISpecificationCommentObjects */ >
class TCOMISpecificationCommentObjectsT : public TComInterface<ISpecificationCommentObjects>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationCommentObjectsT() {}
  TCOMISpecificationCommentObjectsT(ISpecificationCommentObjects *intf, bool addRef = false) : TComInterface<ISpecificationCommentObjects>(intf, addRef) {}
  TCOMISpecificationCommentObjectsT(const TCOMISpecificationCommentObjectsT& src) : TComInterface<ISpecificationCommentObjects>(src) {}
  TCOMISpecificationCommentObjectsT& operator=(const TCOMISpecificationCommentObjectsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long SectionNamb/*[in]*/, 
                                 Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall Add(long SectionNamb/*[in]*/);
  HRESULT         __fastcall Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/);

};
typedef TCOMISpecificationCommentObjectsT<ISpecificationCommentObjects> TCOMISpecificationCommentObjects;

// *********************************************************************//
// DispIntf:  ISpecificationCommentObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B8BD0FC7-AB2B-4E7A-8EC2-82060D7D29A7}
// *********************************************************************//
template<class T>
class ISpecificationCommentObjectsDispT : public TAutoDriver<ISpecificationCommentObjects>
{
public:
  ISpecificationCommentObjectsDispT(){}

  ISpecificationCommentObjectsDispT(ISpecificationCommentObjects *pintf)
  {
    TAutoDriver<ISpecificationCommentObjects>::Bind(pintf, false);
  }

  ISpecificationCommentObjectsDispT(ISpecificationCommentObjectsPtr pintf)
  {
    TAutoDriver<ISpecificationCommentObjects>::Bind(pintf, true);
  }

  ISpecificationCommentObjectsDispT& operator=(ISpecificationCommentObjects *pintf)
  {
    TAutoDriver<ISpecificationCommentObjects>::Bind(pintf, false);
    return *this;
  }

  ISpecificationCommentObjectsDispT& operator=(ISpecificationCommentObjectsPtr pintf)
  {
    TAutoDriver<ISpecificationCommentObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationCommentObjects));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationCommentObjects);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long SectionNamb/*[in]*/, 
                                 Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall Add(long SectionNamb/*[in]*/);
  HRESULT         __fastcall Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationCommentObjectsDispT<ISpecificationCommentObjects> ISpecificationCommentObjectsDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationCommentObject
// Interface: ISpecificationCommentObject
// *********************************************************************//
template <class T /* ISpecificationCommentObject */ >
class TCOMISpecificationCommentObjectT : public TComInterface<ISpecificationCommentObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationCommentObjectT() {}
  TCOMISpecificationCommentObjectT(ISpecificationCommentObject *intf, bool addRef = false) : TComInterface<ISpecificationCommentObject>(intf, addRef) {}
  TCOMISpecificationCommentObjectT(const TCOMISpecificationCommentObjectT& src) : TComInterface<ISpecificationCommentObject>(src) {}
  TCOMISpecificationCommentObjectT& operator=(const TCOMISpecificationCommentObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall get_BlockNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumber(void);
  HRESULT         __fastcall set_BlockNumber(long PVal/*[in]*/);

  __property   Kompasltapi7_tlb::ISpecificationBaseObjectPtr BaseObject = {read = get_BaseObject};
  __property   long            BlockNumber = {read = get_BlockNumber, write = set_BlockNumber};
};
typedef TCOMISpecificationCommentObjectT<ISpecificationCommentObject> TCOMISpecificationCommentObject;

// *********************************************************************//
// DispIntf:  ISpecificationCommentObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3B6B80CA-2145-4184-B786-0C571DF5ACD7}
// *********************************************************************//
template<class T>
class ISpecificationCommentObjectDispT : public TAutoDriver<ISpecificationCommentObject>
{
public:
  ISpecificationCommentObjectDispT(){}

  ISpecificationCommentObjectDispT(ISpecificationCommentObject *pintf)
  {
    TAutoDriver<ISpecificationCommentObject>::Bind(pintf, false);
  }

  ISpecificationCommentObjectDispT(ISpecificationCommentObjectPtr pintf)
  {
    TAutoDriver<ISpecificationCommentObject>::Bind(pintf, true);
  }

  ISpecificationCommentObjectDispT& operator=(ISpecificationCommentObject *pintf)
  {
    TAutoDriver<ISpecificationCommentObject>::Bind(pintf, false);
    return *this;
  }

  ISpecificationCommentObjectDispT& operator=(ISpecificationCommentObjectPtr pintf)
  {
    TAutoDriver<ISpecificationCommentObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationCommentObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationCommentObject);
  }

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall get_BlockNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumber(void);
  HRESULT         __fastcall set_BlockNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectTypeEnum __fastcall get_ObjectType(void);
  HRESULT         __fastcall get_Section(long* PVal/*[out,retval]*/);
  long            __fastcall get_Section(void);
  HRESULT         __fastcall get_Subsection(long* PVal/*[out,retval]*/);
  long            __fastcall get_Subsection(void);
  HRESULT         __fastcall set_Subsection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalSection(void);
  HRESULT         __fastcall set_AdditionalSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_AdditionalBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_AdditionalBlock(void);
  HRESULT         __fastcall set_AdditionalBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedSection(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedSection(void);
  HRESULT         __fastcall set_NestedSection(long PVal/*[in]*/);
  HRESULT         __fastcall get_NestedBlock(long* PVal/*[out,retval]*/);
  long            __fastcall get_NestedBlock(void);
  HRESULT         __fastcall set_NestedBlock(long PVal/*[in]*/);
  HRESULT         __fastcall get_BlockNumberByIndex(long Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall get_BlockNumberByIndex(long Val/*[in]*/);
  HRESULT         __fastcall get_UniqueNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueNumber(void);
  HRESULT         __fastcall get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/);
  ksSpecificationObjectStateEnum __fastcall get_State(void);
  HRESULT         __fastcall get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FirstOnSheet(void);
  HRESULT         __fastcall set_FirstOnSheet(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IncrementPosition(void);
  HRESULT         __fastcall set_IncrementPosition(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_Columns(void);
  HRESULT         __fastcall get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall get_AdditionalColumns(void);
  HRESULT         __fastcall get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall Edit(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Edit(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ISpecificationBaseObjectPtr BaseObject = {read = get_BaseObject};
  __property   long            BlockNumber = {read = get_BlockNumber, write = set_BlockNumber};

  __property   ksSpecificationObjectTypeEnum ObjectType = {read = get_ObjectType};
  __property   long            Section = {read = get_Section};
  __property   long            Subsection = {read = get_Subsection, write = set_Subsection};
  __property   long            AdditionalSection = {read = get_AdditionalSection, write = set_AdditionalSection};
  __property   long            AdditionalBlock = {read = get_AdditionalBlock, write = set_AdditionalBlock};
  __property   long            NestedSection = {read = get_NestedSection, write = set_NestedSection};
  __property   long            NestedBlock = {read = get_NestedBlock, write = set_NestedBlock};
  __property   double          UniqueNumber = {read = get_UniqueNumber};
  __property   ksSpecificationObjectStateEnum State = {read = get_State};
  __property   TOLEBOOL        FirstOnSheet = {read = get_FirstOnSheet, write = set_FirstOnSheet};
  __property   TOLEBOOL        IncrementPosition = {read = get_IncrementPosition, write = set_IncrementPosition};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr Columns = {read = get_Columns};
  __property   Kompasltapi7_tlb::ISpecificationColumnsPtr AdditionalColumns = {read = get_AdditionalColumns};
  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationCommentObjectDispT<ISpecificationCommentObject> ISpecificationCommentObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMILayoutSheets
// Interface: ILayoutSheets
// *********************************************************************//
template <class T /* ILayoutSheets */ >
class TCOMILayoutSheetsT : public TComInterface<ILayoutSheets>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayoutSheetsT() {}
  TCOMILayoutSheetsT(ILayoutSheets *intf, bool addRef = false) : TComInterface<ILayoutSheets>(intf, addRef) {}
  TCOMILayoutSheetsT(const TCOMILayoutSheetsT& src) : TComInterface<ILayoutSheets>(src) {}
  TCOMILayoutSheetsT& operator=(const TCOMILayoutSheetsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ItemByNumber(long Number/*[in]*/, 
                                              Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall get_ItemByNumber(long Number/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall Add(void);

};
typedef TCOMILayoutSheetsT<ILayoutSheets> TCOMILayoutSheets;

// *********************************************************************//
// DispIntf:  ILayoutSheets
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7AB54196-0B76-4B01-B769-7F47637173C4}
// *********************************************************************//
template<class T>
class ILayoutSheetsDispT : public TAutoDriver<ILayoutSheets>
{
public:
  ILayoutSheetsDispT(){}

  ILayoutSheetsDispT(ILayoutSheets *pintf)
  {
    TAutoDriver<ILayoutSheets>::Bind(pintf, false);
  }

  ILayoutSheetsDispT(ILayoutSheetsPtr pintf)
  {
    TAutoDriver<ILayoutSheets>::Bind(pintf, true);
  }

  ILayoutSheetsDispT& operator=(ILayoutSheets *pintf)
  {
    TAutoDriver<ILayoutSheets>::Bind(pintf, false);
    return *this;
  }

  ILayoutSheetsDispT& operator=(ILayoutSheetsPtr pintf)
  {
    TAutoDriver<ILayoutSheets>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LayoutSheets));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LayoutSheets);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ItemByNumber(long Number/*[in]*/, 
                                              Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall get_ItemByNumber(long Number/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetPtr __fastcall Add(void);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayoutSheetsDispT<ILayoutSheets> ILayoutSheetsDisp;

// *********************************************************************//
// SmartIntf: TCOMILayoutSheet
// Interface: ILayoutSheet
// *********************************************************************//
template <class T /* ILayoutSheet */ >
class TCOMILayoutSheetT : public TComInterface<ILayoutSheet>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayoutSheetT() {}
  TCOMILayoutSheetT(ILayoutSheet *intf, bool addRef = false) : TComInterface<ILayoutSheet>(intf, addRef) {}
  TCOMILayoutSheetT(const TCOMILayoutSheetT& src) : TComInterface<ILayoutSheet>(src) {}
  TCOMILayoutSheetT& operator=(const TCOMILayoutSheetT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetFormatPtr __fastcall get_Format(void);
  HRESULT         __fastcall get_LayoutLibraryFileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutLibraryFileName(void);
  HRESULT         __fastcall set_LayoutLibraryFileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_LayoutStyleNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_LayoutStyleNumber(void);
  HRESULT         __fastcall set_LayoutStyleNumber(double PVal/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_Stamp(Kompasltapi7_tlb::IStampPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IStampPtr __fastcall get_Stamp(void);

  __property   Kompasltapi7_tlb::ISheetFormatPtr Format = {read = get_Format};
  __property   BSTR            LayoutLibraryFileName = {read = get_LayoutLibraryFileName, write = set_LayoutLibraryFileName};
  __property   double          LayoutStyleNumber = {read = get_LayoutStyleNumber, write = set_LayoutStyleNumber};
  __property   Kompasltapi7_tlb::IStampPtr Stamp = {read = get_Stamp};
};
typedef TCOMILayoutSheetT<ILayoutSheet> TCOMILayoutSheet;

// *********************************************************************//
// DispIntf:  ILayoutSheet
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D87B5A80-CF52-4510-ADD9-D1344FFFFC07}
// *********************************************************************//
template<class T>
class ILayoutSheetDispT : public TAutoDriver<ILayoutSheet>
{
public:
  ILayoutSheetDispT(){}

  ILayoutSheetDispT(ILayoutSheet *pintf)
  {
    TAutoDriver<ILayoutSheet>::Bind(pintf, false);
  }

  ILayoutSheetDispT(ILayoutSheetPtr pintf)
  {
    TAutoDriver<ILayoutSheet>::Bind(pintf, true);
  }

  ILayoutSheetDispT& operator=(ILayoutSheet *pintf)
  {
    TAutoDriver<ILayoutSheet>::Bind(pintf, false);
    return *this;
  }

  ILayoutSheetDispT& operator=(ILayoutSheetPtr pintf)
  {
    TAutoDriver<ILayoutSheet>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LayoutSheet));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LayoutSheet);
  }

  HRESULT         __fastcall get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetFormatPtr __fastcall get_Format(void);
  HRESULT         __fastcall get_LayoutLibraryFileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LayoutLibraryFileName(void);
  HRESULT         __fastcall set_LayoutLibraryFileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_LayoutStyleNumber(double* PVal/*[out,retval]*/);
  double          __fastcall get_LayoutStyleNumber(void);
  HRESULT         __fastcall set_LayoutStyleNumber(double PVal/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_Stamp(Kompasltapi7_tlb::IStampPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IStampPtr __fastcall get_Stamp(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ISheetFormatPtr Format = {read = get_Format};
  __property   BSTR            LayoutLibraryFileName = {read = get_LayoutLibraryFileName, write = set_LayoutLibraryFileName};
  __property   double          LayoutStyleNumber = {read = get_LayoutStyleNumber, write = set_LayoutStyleNumber};
  __property   Kompasltapi7_tlb::IStampPtr Stamp = {read = get_Stamp};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayoutSheetDispT<ILayoutSheet> ILayoutSheetDisp;

// *********************************************************************//
// SmartIntf: TCOMIStamp
// Interface: IStamp
// *********************************************************************//
template <class T /* IStamp */ >
class TCOMIStampT : public TComInterface<IStamp>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIStampT() {}
  TCOMIStampT(IStamp *intf, bool addRef = false) : TComInterface<IStamp>(intf, addRef) {}
  TCOMIStampT(const TCOMIStampT& src) : TComInterface<IStamp>(src) {}
  TCOMIStampT& operator=(const TCOMIStampT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Text(long Id/*[in]*/, 
                                      Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(long Id/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Clear(long Id/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(long Id/*[in]*/);
  HRESULT         __fastcall GetNextColumnId(long Id/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall GetNextColumnId(long Id/*[in]*/);

};
typedef TCOMIStampT<IStamp> TCOMIStamp;

// *********************************************************************//
// DispIntf:  IStamp
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {250CE350-7C21-47FD-8FF2-C44A9FF177DF}
// *********************************************************************//
template<class T>
class IStampDispT : public TAutoDriver<IStamp>
{
public:
  IStampDispT(){}

  IStampDispT(IStamp *pintf)
  {
    TAutoDriver<IStamp>::Bind(pintf, false);
  }

  IStampDispT(IStampPtr pintf)
  {
    TAutoDriver<IStamp>::Bind(pintf, true);
  }

  IStampDispT& operator=(IStamp *pintf)
  {
    TAutoDriver<IStamp>::Bind(pintf, false);
    return *this;
  }

  IStampDispT& operator=(IStampPtr pintf)
  {
    TAutoDriver<IStamp>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Stamp));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Stamp);
  }

  HRESULT         __fastcall get_Text(long Id/*[in]*/, 
                                      Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(long Id/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Clear(long Id/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(long Id/*[in]*/);
  HRESULT         __fastcall GetNextColumnId(long Id/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall GetNextColumnId(long Id/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IStampDispT<IStamp> IStampDisp;

// *********************************************************************//
// SmartIntf: TCOMIUserDataStoragesMng
// Interface: IUserDataStoragesMng
// *********************************************************************//
template <class T /* IUserDataStoragesMng */ >
class TCOMIUserDataStoragesMngT : public TComInterface<IUserDataStoragesMng>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIUserDataStoragesMngT() {}
  TCOMIUserDataStoragesMngT(IUserDataStoragesMng *intf, bool addRef = false) : TComInterface<IUserDataStoragesMng>(intf, addRef) {}
  TCOMIUserDataStoragesMngT(const TCOMIUserDataStoragesMngT& src) : TComInterface<IUserDataStoragesMng>(src) {}
  TCOMIUserDataStoragesMngT& operator=(const TCOMIUserDataStoragesMngT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                 Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);

};
typedef TCOMIUserDataStoragesMngT<IUserDataStoragesMng> TCOMIUserDataStoragesMng;

// *********************************************************************//
// DispIntf:  IUserDataStoragesMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {77A6D4CA-6418-4DEE-B59C-400BFD052375}
// *********************************************************************//
template<class T>
class IUserDataStoragesMngDispT : public TAutoDriver<IUserDataStoragesMng>
{
public:
  IUserDataStoragesMngDispT(){}

  IUserDataStoragesMngDispT(IUserDataStoragesMng *pintf)
  {
    TAutoDriver<IUserDataStoragesMng>::Bind(pintf, false);
  }

  IUserDataStoragesMngDispT(IUserDataStoragesMngPtr pintf)
  {
    TAutoDriver<IUserDataStoragesMng>::Bind(pintf, true);
  }

  IUserDataStoragesMngDispT& operator=(IUserDataStoragesMng *pintf)
  {
    TAutoDriver<IUserDataStoragesMng>::Bind(pintf, false);
    return *this;
  }

  IUserDataStoragesMngDispT& operator=(IUserDataStoragesMngPtr pintf)
  {
    TAutoDriver<IUserDataStoragesMng>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_UserDataStoragesMng));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_UserDataStoragesMng);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                 Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IUserDataStoragesMngDispT<IUserDataStoragesMng> IUserDataStoragesMngDisp;

// *********************************************************************//
// SmartIntf: TCOMIUserDataStorages
// Interface: IUserDataStorages
// *********************************************************************//
template <class T /* IUserDataStorages */ >
class TCOMIUserDataStoragesT : public TComInterface<IUserDataStorages>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIUserDataStoragesT() {}
  TCOMIUserDataStoragesT(IUserDataStorages *intf, bool addRef = false) : TComInterface<IUserDataStorages>(intf, addRef) {}
  TCOMIUserDataStoragesT(const TCOMIUserDataStoragesT& src) : TComInterface<IUserDataStorages>(src) {}
  TCOMIUserDataStoragesT& operator=(const TCOMIUserDataStoragesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR StorageName/*[in]*/, 
                                 Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragePtr __fastcall Add(BSTR StorageName/*[in]*/);
  HRESULT         __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/);

};
typedef TCOMIUserDataStoragesT<IUserDataStorages> TCOMIUserDataStorages;

// *********************************************************************//
// DispIntf:  IUserDataStorages
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9DBFB4EB-BE9F-46EF-88FF-BB603A9E786B}
// *********************************************************************//
template<class T>
class IUserDataStoragesDispT : public TAutoDriver<IUserDataStorages>
{
public:
  IUserDataStoragesDispT(){}

  IUserDataStoragesDispT(IUserDataStorages *pintf)
  {
    TAutoDriver<IUserDataStorages>::Bind(pintf, false);
  }

  IUserDataStoragesDispT(IUserDataStoragesPtr pintf)
  {
    TAutoDriver<IUserDataStorages>::Bind(pintf, true);
  }

  IUserDataStoragesDispT& operator=(IUserDataStorages *pintf)
  {
    TAutoDriver<IUserDataStorages>::Bind(pintf, false);
    return *this;
  }

  IUserDataStoragesDispT& operator=(IUserDataStoragesPtr pintf)
  {
    TAutoDriver<IUserDataStorages>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_UserDataStorages));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_UserDataStorages);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR StorageName/*[in]*/, 
                                 Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragePtr __fastcall Add(BSTR StorageName/*[in]*/);
  HRESULT         __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IUserDataStoragesDispT<IUserDataStorages> IUserDataStoragesDisp;

// *********************************************************************//
// SmartIntf: TCOMIUserDataStorage
// Interface: IUserDataStorage
// *********************************************************************//
template <class T /* IUserDataStorage */ >
class TCOMIUserDataStorageT : public TComInterface<IUserDataStorage>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIUserDataStorageT() {}
  TCOMIUserDataStorageT(IUserDataStorage *intf, bool addRef = false) : TComInterface<IUserDataStorage>(intf, addRef) {}
  TCOMIUserDataStorageT(const TCOMIUserDataStorageT& src) : TComInterface<IUserDataStorage>(src) {}
  TCOMIUserDataStorageT& operator=(const TCOMIUserDataStorageT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR Pass/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(BSTR Pass/*[in]*/);
  HRESULT         __fastcall set_Name(BSTR Pass/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/);
  HRESULT         __fastcall get_Version(BSTR Pass/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall get_Version(BSTR Pass/*[in]*/);
  HRESULT         __fastcall set_Version(BSTR Pass/*[in]*/, long PVal/*[in]*/);
  HRESULT         __fastcall GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                       long* Numb/*[out]*/, BSTR* Comment/*[out,retval]*/);
  BSTR            __fastcall GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                       long* Numb/*[out]*/);
  HRESULT         __fastcall SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                       TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/, 
                                       long* PVal/*[out,retval]*/);
  long            __fastcall SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                       TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/);
  HRESULT         __fastcall AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                       BSTR Comment/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                       BSTR Comment/*[in]*/);
  HRESULT         __fastcall Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Clear(BSTR Pass/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(BSTR Pass/*[in]*/);

};
typedef TCOMIUserDataStorageT<IUserDataStorage> TCOMIUserDataStorage;

// *********************************************************************//
// DispIntf:  IUserDataStorage
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DD2AF5C4-D5B9-420D-B658-F935F80A8586}
// *********************************************************************//
template<class T>
class IUserDataStorageDispT : public TAutoDriver<IUserDataStorage>
{
public:
  IUserDataStorageDispT(){}

  IUserDataStorageDispT(IUserDataStorage *pintf)
  {
    TAutoDriver<IUserDataStorage>::Bind(pintf, false);
  }

  IUserDataStorageDispT(IUserDataStoragePtr pintf)
  {
    TAutoDriver<IUserDataStorage>::Bind(pintf, true);
  }

  IUserDataStorageDispT& operator=(IUserDataStorage *pintf)
  {
    TAutoDriver<IUserDataStorage>::Bind(pintf, false);
    return *this;
  }

  IUserDataStorageDispT& operator=(IUserDataStoragePtr pintf)
  {
    TAutoDriver<IUserDataStorage>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_UserDataStorage));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_UserDataStorage);
  }

  HRESULT         __fastcall get_Name(BSTR Pass/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(BSTR Pass/*[in]*/);
  HRESULT         __fastcall set_Name(BSTR Pass/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/);
  HRESULT         __fastcall get_Version(BSTR Pass/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall get_Version(BSTR Pass/*[in]*/);
  HRESULT         __fastcall set_Version(BSTR Pass/*[in]*/, long PVal/*[in]*/);
  HRESULT         __fastcall GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                       long* Numb/*[out]*/, BSTR* Comment/*[out,retval]*/);
  BSTR            __fastcall GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                       long* Numb/*[out]*/);
  HRESULT         __fastcall SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                       TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/, 
                                       long* PVal/*[out,retval]*/);
  long            __fastcall SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                       TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/);
  HRESULT         __fastcall AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                       BSTR Comment/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                       BSTR Comment/*[in]*/);
  HRESULT         __fastcall Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Clear(BSTR Pass/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(BSTR Pass/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IUserDataStorageDispT<IUserDataStorage> IUserDataStorageDisp;

// *********************************************************************//
// SmartIntf: TCOMIProcessParam
// Interface: IProcessParam
// *********************************************************************//
template <class T /* IProcessParam */ >
class TCOMIProcessParamT : public TComInterface<IProcessParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIProcessParamT() {}
  TCOMIProcessParamT(IProcessParam *intf, bool addRef = false) : TComInterface<IProcessParam>(intf, addRef) {}
  TCOMIProcessParamT(const TCOMIProcessParamT& src) : TComInterface<IProcessParam>(src) {}
  TCOMIProcessParamT& operator=(const TCOMIProcessParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Caption(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabsPtr __fastcall get_PropertyTabs(void);
  HRESULT         __fastcall set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/);
  SpecPropertyToolBarEnum __fastcall get_SpecToolbar(void);
  HRESULT         __fastcall set_AutoReduce(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_AutoReduce(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoReduce(void);
  HRESULT         __fastcall set_DefaultControlFix(DefaultFixTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DefaultControlFix(DefaultFixTypeEnum* PVal/*[out,retval]*/);
  DefaultFixTypeEnum __fastcall get_DefaultControlFix(void);

  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   Kompasltapi7_tlb::IPropertyTabsPtr PropertyTabs = {read = get_PropertyTabs};
  __property   SpecPropertyToolBarEnum SpecToolbar = {read = get_SpecToolbar, write = set_SpecToolbar};
  __property   TOLEBOOL        AutoReduce = {read = get_AutoReduce, write = set_AutoReduce};
  __property   DefaultFixTypeEnum DefaultControlFix = {read = get_DefaultControlFix, write = set_DefaultControlFix};
};
typedef TCOMIProcessParamT<IProcessParam> TCOMIProcessParam;

// *********************************************************************//
// DispIntf:  IProcessParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CB5FDBC8-4DAE-4C4B-87D5-6FD1F2705C38}
// *********************************************************************//
template<class T>
class IProcessParamDispT : public TAutoDriver<IProcessParam>
{
public:
  IProcessParamDispT(){}

  IProcessParamDispT(IProcessParam *pintf)
  {
    TAutoDriver<IProcessParam>::Bind(pintf, false);
  }

  IProcessParamDispT(IProcessParamPtr pintf)
  {
    TAutoDriver<IProcessParam>::Bind(pintf, true);
  }

  IProcessParamDispT& operator=(IProcessParam *pintf)
  {
    TAutoDriver<IProcessParam>::Bind(pintf, false);
    return *this;
  }

  IProcessParamDispT& operator=(IProcessParamPtr pintf)
  {
    TAutoDriver<IProcessParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ProcessParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ProcessParam);
  }

  HRESULT         __fastcall set_Caption(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabsPtr __fastcall get_PropertyTabs(void);
  HRESULT         __fastcall set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/);
  SpecPropertyToolBarEnum __fastcall get_SpecToolbar(void);
  HRESULT         __fastcall set_AutoReduce(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_AutoReduce(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoReduce(void);
  HRESULT         __fastcall set_DefaultControlFix(DefaultFixTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DefaultControlFix(DefaultFixTypeEnum* PVal/*[out,retval]*/);
  DefaultFixTypeEnum __fastcall get_DefaultControlFix(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   Kompasltapi7_tlb::IPropertyTabsPtr PropertyTabs = {read = get_PropertyTabs};
  __property   SpecPropertyToolBarEnum SpecToolbar = {read = get_SpecToolbar, write = set_SpecToolbar};
  __property   TOLEBOOL        AutoReduce = {read = get_AutoReduce, write = set_AutoReduce};
  __property   DefaultFixTypeEnum DefaultControlFix = {read = get_DefaultControlFix, write = set_DefaultControlFix};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IProcessParamDispT<IProcessParam> IProcessParamDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyTabs
// Interface: IPropertyTabs
// *********************************************************************//
template <class T /* IPropertyTabs */ >
class TCOMIPropertyTabsT : public TComInterface<IPropertyTabs>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyTabsT() {}
  TCOMIPropertyTabsT(IPropertyTabs *intf, bool addRef = false) : TComInterface<IPropertyTabs>(intf, addRef) {}
  TCOMIPropertyTabsT(const TCOMIPropertyTabsT& src) : TComInterface<IPropertyTabs>(src) {}
  TCOMIPropertyTabsT& operator=(const TCOMIPropertyTabsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IPropertyTabPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Caption/*[in]*/, 
                                 Kompasltapi7_tlb::IPropertyTabPtr* PTab/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall Add(BSTR Caption/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_Active(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_Active(void);
  HRESULT         __fastcall get_SystemTab(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_SystemTab(void);

  __property   Kompasltapi7_tlb::IPropertyTabPtr Active = {read = get_Active};
  __property   Kompasltapi7_tlb::IPropertyTabPtr SystemTab = {read = get_SystemTab};
};
typedef TCOMIPropertyTabsT<IPropertyTabs> TCOMIPropertyTabs;

// *********************************************************************//
// DispIntf:  IPropertyTabs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5BA6324E-E555-490F-A0E2-68D3C6C88D92}
// *********************************************************************//
template<class T>
class IPropertyTabsDispT : public TAutoDriver<IPropertyTabs>
{
public:
  IPropertyTabsDispT(){}

  IPropertyTabsDispT(IPropertyTabs *pintf)
  {
    TAutoDriver<IPropertyTabs>::Bind(pintf, false);
  }

  IPropertyTabsDispT(IPropertyTabsPtr pintf)
  {
    TAutoDriver<IPropertyTabs>::Bind(pintf, true);
  }

  IPropertyTabsDispT& operator=(IPropertyTabs *pintf)
  {
    TAutoDriver<IPropertyTabs>::Bind(pintf, false);
    return *this;
  }

  IPropertyTabsDispT& operator=(IPropertyTabsPtr pintf)
  {
    TAutoDriver<IPropertyTabs>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyTabs));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyTabs);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IPropertyTabPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Caption/*[in]*/, 
                                 Kompasltapi7_tlb::IPropertyTabPtr* PTab/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall Add(BSTR Caption/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_Active(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_Active(void);
  HRESULT         __fastcall get_SystemTab(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabPtr __fastcall get_SystemTab(void);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IPropertyTabPtr Active = {read = get_Active};
  __property   Kompasltapi7_tlb::IPropertyTabPtr SystemTab = {read = get_SystemTab};

  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyTabsDispT<IPropertyTabs> IPropertyTabsDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyTab
// Interface: IPropertyTab
// *********************************************************************//
template <class T /* IPropertyTab */ >
class TCOMIPropertyTabT : public TComInterface<IPropertyTab>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyTabT() {}
  TCOMIPropertyTabT(IPropertyTab *intf, bool addRef = false) : TComInterface<IPropertyTab>(intf, addRef) {}
  TCOMIPropertyTabT(const TCOMIPropertyTabT& src) : TComInterface<IPropertyTab>(src) {}
  TCOMIPropertyTabT& operator=(const TCOMIPropertyTabT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Caption(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall get_PropertyControls(Kompasltapi7_tlb::IPropertyControlsPtr* PControls/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyControlsPtr __fastcall get_PropertyControls(void);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_Image(TVariantInParam Bmp/*[in]*/);
  HRESULT         __fastcall get_Image(TVariant* Bmp/*[out,retval]*/);
  TVariant        __fastcall get_Image(void);

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   Kompasltapi7_tlb::IPropertyControlsPtr PropertyControls = {read = get_PropertyControls};
};
typedef TCOMIPropertyTabT<IPropertyTab> TCOMIPropertyTab;

// *********************************************************************//
// DispIntf:  IPropertyTab
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {45DE8E5B-BC2B-4584-8BA7-D3014D3A2397}
// *********************************************************************//
template<class T>
class IPropertyTabDispT : public TAutoDriver<IPropertyTab>
{
public:
  IPropertyTabDispT(){}

  IPropertyTabDispT(IPropertyTab *pintf)
  {
    TAutoDriver<IPropertyTab>::Bind(pintf, false);
  }

  IPropertyTabDispT(IPropertyTabPtr pintf)
  {
    TAutoDriver<IPropertyTab>::Bind(pintf, true);
  }

  IPropertyTabDispT& operator=(IPropertyTab *pintf)
  {
    TAutoDriver<IPropertyTab>::Bind(pintf, false);
    return *this;
  }

  IPropertyTabDispT& operator=(IPropertyTabPtr pintf)
  {
    TAutoDriver<IPropertyTab>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyTab));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyTab);
  }

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Caption(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall get_PropertyControls(Kompasltapi7_tlb::IPropertyControlsPtr* PControls/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyControlsPtr __fastcall get_PropertyControls(void);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_Image(TVariantInParam Bmp/*[in]*/);
  HRESULT         __fastcall get_Image(TVariant* Bmp/*[out,retval]*/);
  TVariant        __fastcall get_Image(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   Kompasltapi7_tlb::IPropertyControlsPtr PropertyControls = {read = get_PropertyControls};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyTabDispT<IPropertyTab> IPropertyTabDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyControls
// Interface: IPropertyControls
// *********************************************************************//
template <class T /* IPropertyControls */ >
class TCOMIPropertyControlsT : public TComInterface<IPropertyControls>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyControlsT() {}
  TCOMIPropertyControlsT(IPropertyControls *intf, bool addRef = false) : TComInterface<IPropertyControls>(intf, addRef) {}
  TCOMIPropertyControlsT(const TCOMIPropertyControlsT& src) : TComInterface<IPropertyControls>(src) {}
  TCOMIPropertyControlsT& operator=(const TCOMIPropertyControlsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IPropertyControlPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyControlPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ControlTypeEnum Type/*[in]*/, 
                                 Kompasltapi7_tlb::IPropertyControlPtr* PControl/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyControlPtr __fastcall Add(ControlTypeEnum Type/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam Index/*[in]*/);

};
typedef TCOMIPropertyControlsT<IPropertyControls> TCOMIPropertyControls;

// *********************************************************************//
// DispIntf:  IPropertyControls
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {548241BA-FDA8-4633-981E-94552BE38D6B}
// *********************************************************************//
template<class T>
class IPropertyControlsDispT : public TAutoDriver<IPropertyControls>
{
public:
  IPropertyControlsDispT(){}

  IPropertyControlsDispT(IPropertyControls *pintf)
  {
    TAutoDriver<IPropertyControls>::Bind(pintf, false);
  }

  IPropertyControlsDispT(IPropertyControlsPtr pintf)
  {
    TAutoDriver<IPropertyControls>::Bind(pintf, true);
  }

  IPropertyControlsDispT& operator=(IPropertyControls *pintf)
  {
    TAutoDriver<IPropertyControls>::Bind(pintf, false);
    return *this;
  }

  IPropertyControlsDispT& operator=(IPropertyControlsPtr pintf)
  {
    TAutoDriver<IPropertyControls>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyControls));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyControls);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IPropertyControlPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyControlPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ControlTypeEnum Type/*[in]*/, 
                                 Kompasltapi7_tlb::IPropertyControlPtr* PControl/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyControlPtr __fastcall Add(ControlTypeEnum Type/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyControlsDispT<IPropertyControls> IPropertyControlsDisp;

typedef TComInterface<IPropertyControl>  TCOMIPropertyControl;

// *********************************************************************//
// DispIntf:  IPropertyControl
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E35F8FF8-03C6-460C-A2F1-294A3A29A029}
// *********************************************************************//
template<class T>
class IPropertyControlDispT : public TAutoDriver<IPropertyControl>
{
public:
  IPropertyControlDispT(){}

  IPropertyControlDispT(IPropertyControl *pintf)
  {
    TAutoDriver<IPropertyControl>::Bind(pintf, false);
  }

  IPropertyControlDispT(IPropertyControlPtr pintf)
  {
    TAutoDriver<IPropertyControl>::Bind(pintf, true);
  }

  IPropertyControlDispT& operator=(IPropertyControl *pintf)
  {
    TAutoDriver<IPropertyControl>::Bind(pintf, false);
    return *this;
  }

  IPropertyControlDispT& operator=(IPropertyControlPtr pintf)
  {
    TAutoDriver<IPropertyControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyControlDispT<IPropertyControl> IPropertyControlDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyManager
// Interface: IPropertyManager
// *********************************************************************//
template <class T /* IPropertyManager */ >
class TCOMIPropertyManagerT : public TComInterface<IPropertyManager>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyManagerT() {}
  TCOMIPropertyManagerT(IPropertyManager *intf, bool addRef = false) : TComInterface<IPropertyManager>(intf, addRef) {}
  TCOMIPropertyManagerT(const TCOMIPropertyManagerT& src) : TComInterface<IPropertyManager>(src) {}
  TCOMIPropertyManagerT& operator=(const TCOMIPropertyManagerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Caption(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall set_Layout(PropertyManagerLayout PVal/*[in]*/);
  HRESULT         __fastcall get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/);
  PropertyManagerLayout __fastcall get_Layout(void);
  HRESULT         __fastcall get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabsPtr __fastcall get_PropertyTabs(void);
  HRESULT         __fastcall SetGabaritRect(long Left/*[in]*/, long Top/*[in]*/, long Right/*[in]*/, 
                                            long Bottom/*[in]*/);
  HRESULT         __fastcall GetGabaritRect(long* Left/*[out]*/, long* Top/*[out]*/, 
                                            long* Right/*[out]*/, long* Bottom/*[out]*/);
  HRESULT         __fastcall ShowTabs(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall ShowTabs(void);
  HRESULT         __fastcall UpdateTabs(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall UpdateTabs(void);
  HRESULT         __fastcall HideTabs(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall HideTabs(void);
  HRESULT         __fastcall set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/);
  SpecPropertyToolBarEnum __fastcall get_SpecToolbar(void);
  HRESULT         __fastcall RepeatCommand(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall RepeatCommand(void);
  HRESULT         __fastcall set_AutoHideMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_AutoHideMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoHideMode(void);

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   PropertyManagerLayout Layout = {read = get_Layout, write = set_Layout};
  __property   Kompasltapi7_tlb::IPropertyTabsPtr PropertyTabs = {read = get_PropertyTabs};
  __property   SpecPropertyToolBarEnum SpecToolbar = {read = get_SpecToolbar, write = set_SpecToolbar};
  __property   TOLEBOOL        AutoHideMode = {read = get_AutoHideMode, write = set_AutoHideMode};
};
typedef TCOMIPropertyManagerT<IPropertyManager> TCOMIPropertyManager;

// *********************************************************************//
// DispIntf:  IPropertyManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {34196EC3-58B2-436C-A353-427703740874}
// *********************************************************************//
template<class T>
class IPropertyManagerDispT : public TAutoDriver<IPropertyManager>
{
public:
  IPropertyManagerDispT(){}

  IPropertyManagerDispT(IPropertyManager *pintf)
  {
    TAutoDriver<IPropertyManager>::Bind(pintf, false);
  }

  IPropertyManagerDispT(IPropertyManagerPtr pintf)
  {
    TAutoDriver<IPropertyManager>::Bind(pintf, true);
  }

  IPropertyManagerDispT& operator=(IPropertyManager *pintf)
  {
    TAutoDriver<IPropertyManager>::Bind(pintf, false);
    return *this;
  }

  IPropertyManagerDispT& operator=(IPropertyManagerPtr pintf)
  {
    TAutoDriver<IPropertyManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyManager));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyManager);
  }

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Caption(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall set_Layout(PropertyManagerLayout PVal/*[in]*/);
  HRESULT         __fastcall get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/);
  PropertyManagerLayout __fastcall get_Layout(void);
  HRESULT         __fastcall get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyTabsPtr __fastcall get_PropertyTabs(void);
  HRESULT         __fastcall SetGabaritRect(long Left/*[in]*/, long Top/*[in]*/, long Right/*[in]*/
                                            , long Bottom/*[in]*/);
  HRESULT         __fastcall GetGabaritRect(long* Left/*[out]*/, long* Top/*[out]*/, 
                                            long* Right/*[out]*/, long* Bottom/*[out]*/);
  HRESULT         __fastcall ShowTabs(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall ShowTabs(void);
  HRESULT         __fastcall UpdateTabs(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall UpdateTabs(void);
  HRESULT         __fastcall HideTabs(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall HideTabs(void);
  HRESULT         __fastcall set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/);
  SpecPropertyToolBarEnum __fastcall get_SpecToolbar(void);
  HRESULT         __fastcall RepeatCommand(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall RepeatCommand(void);
  HRESULT         __fastcall set_AutoHideMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_AutoHideMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoHideMode(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   PropertyManagerLayout Layout = {read = get_Layout, write = set_Layout};
  __property   Kompasltapi7_tlb::IPropertyTabsPtr PropertyTabs = {read = get_PropertyTabs};
  __property   SpecPropertyToolBarEnum SpecToolbar = {read = get_SpecToolbar, write = set_SpecToolbar};
  __property   TOLEBOOL        AutoHideMode = {read = get_AutoHideMode, write = set_AutoHideMode};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyManagerDispT<IPropertyManager> IPropertyManagerDisp;

// *********************************************************************//
// SmartIntf: TCOMILibraryManager
// Interface: ILibraryManager
// *********************************************************************//
template <class T /* ILibraryManager */ >
class TCOMILibraryManagerT : public TComInterface<ILibraryManager>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILibraryManagerT() {}
  TCOMILibraryManagerT(ILibraryManager *intf, bool addRef = false) : TComInterface<ILibraryManager>(intf, addRef) {}
  TCOMILibraryManagerT(const TCOMILibraryManagerT& src) : TComInterface<ILibraryManager>(src) {}
  TCOMILibraryManagerT& operator=(const TCOMILibraryManagerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ProceduresLibraries(Kompasltapi7_tlb::IProceduresLibrariesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibrariesPtr __fastcall get_ProceduresLibraries(void);
  HRESULT         __fastcall get_FragmentsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall get_FragmentsLibraries(void);
  HRESULT         __fastcall get_ModelsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall get_ModelsLibraries(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/);
  PropertyManagerLayout __fastcall get_Layout(void);
  HRESULT         __fastcall get_ActiveFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ActiveFolder(void);
  HRESULT         __fastcall set_ActiveFolder(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ActiveFolderComment(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_ActiveFolderComment(void);
  HRESULT         __fastcall set_ActiveFolderComment(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall AddFolder(BSTR PathFolder/*[in]*/);
  HRESULT         __fastcall RemoveFolder(BSTR PathFolder/*[in]*/);
  HRESULT         __fastcall get_SystemControlStartLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_SystemControlStartLibrary(void);
  HRESULT         __fastcall get_CurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_CurrentLibrary(void);
  HRESULT         __fastcall SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/);
  HRESULT         __fastcall get_SystemControlStartResult(ksSystemControlStartEnum* PVal/*[out,retval]*/);
  ksSystemControlStartEnum __fastcall get_SystemControlStartResult(void);

  __property   Kompasltapi7_tlb::IProceduresLibrariesPtr ProceduresLibraries = {read = get_ProceduresLibraries};
  __property   Kompasltapi7_tlb::IInsertsLibrariesPtr FragmentsLibraries = {read = get_FragmentsLibraries};
  __property   Kompasltapi7_tlb::IInsertsLibrariesPtr ModelsLibraries = {read = get_ModelsLibraries};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   PropertyManagerLayout Layout = {read = get_Layout};
  __property   BSTR            ActiveFolder = {read = get_ActiveFolder, write = set_ActiveFolder};
  __property   Kompasltapi7_tlb::IProceduresLibraryPtr SystemControlStartLibrary = {read = get_SystemControlStartLibrary};
  __property   Kompasltapi7_tlb::IProceduresLibraryPtr CurrentLibrary = {read = get_CurrentLibrary};
  __property   ksSystemControlStartEnum SystemControlStartResult = {read = get_SystemControlStartResult};
};
typedef TCOMILibraryManagerT<ILibraryManager> TCOMILibraryManager;

// *********************************************************************//
// DispIntf:  ILibraryManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {53CDC510-99EA-4736-8542-194F4D8FB32B}
// *********************************************************************//
template<class T>
class ILibraryManagerDispT : public TAutoDriver<ILibraryManager>
{
public:
  ILibraryManagerDispT(){}

  ILibraryManagerDispT(ILibraryManager *pintf)
  {
    TAutoDriver<ILibraryManager>::Bind(pintf, false);
  }

  ILibraryManagerDispT(ILibraryManagerPtr pintf)
  {
    TAutoDriver<ILibraryManager>::Bind(pintf, true);
  }

  ILibraryManagerDispT& operator=(ILibraryManager *pintf)
  {
    TAutoDriver<ILibraryManager>::Bind(pintf, false);
    return *this;
  }

  ILibraryManagerDispT& operator=(ILibraryManagerPtr pintf)
  {
    TAutoDriver<ILibraryManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LibraryManager));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LibraryManager);
  }

  HRESULT         __fastcall get_ProceduresLibraries(Kompasltapi7_tlb::IProceduresLibrariesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibrariesPtr __fastcall get_ProceduresLibraries(void);
  HRESULT         __fastcall get_FragmentsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall get_FragmentsLibraries(void);
  HRESULT         __fastcall get_ModelsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall get_ModelsLibraries(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/);
  PropertyManagerLayout __fastcall get_Layout(void);
  HRESULT         __fastcall get_ActiveFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ActiveFolder(void);
  HRESULT         __fastcall set_ActiveFolder(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ActiveFolderComment(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_ActiveFolderComment(void);
  HRESULT         __fastcall set_ActiveFolderComment(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall AddFolder(BSTR PathFolder/*[in]*/);
  HRESULT         __fastcall RemoveFolder(BSTR PathFolder/*[in]*/);
  HRESULT         __fastcall get_SystemControlStartLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_SystemControlStartLibrary(void);
  HRESULT         __fastcall get_CurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_CurrentLibrary(void);
  HRESULT         __fastcall SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/
                                               , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/);
  HRESULT         __fastcall get_SystemControlStartResult(ksSystemControlStartEnum* PVal/*[out,retval]*/);
  ksSystemControlStartEnum __fastcall get_SystemControlStartResult(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IProceduresLibrariesPtr ProceduresLibraries = {read = get_ProceduresLibraries};
  __property   Kompasltapi7_tlb::IInsertsLibrariesPtr FragmentsLibraries = {read = get_FragmentsLibraries};
  __property   Kompasltapi7_tlb::IInsertsLibrariesPtr ModelsLibraries = {read = get_ModelsLibraries};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   PropertyManagerLayout Layout = {read = get_Layout};
  __property   BSTR            ActiveFolder = {read = get_ActiveFolder, write = set_ActiveFolder};
  __property   Kompasltapi7_tlb::IProceduresLibraryPtr SystemControlStartLibrary = {read = get_SystemControlStartLibrary};
  __property   Kompasltapi7_tlb::IProceduresLibraryPtr CurrentLibrary = {read = get_CurrentLibrary};
  __property   ksSystemControlStartEnum SystemControlStartResult = {read = get_SystemControlStartResult};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILibraryManagerDispT<ILibraryManager> ILibraryManagerDisp;

// *********************************************************************//
// SmartIntf: TCOMIProceduresLibraries
// Interface: IProceduresLibraries
// *********************************************************************//
template <class T /* IProceduresLibraries */ >
class TCOMIProceduresLibrariesT : public TComInterface<IProceduresLibraries>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIProceduresLibrariesT() {}
  TCOMIProceduresLibrariesT(IProceduresLibraries *intf, bool addRef = false) : TComInterface<IProceduresLibraries>(intf, addRef) {}
  TCOMIProceduresLibrariesT(const TCOMIProceduresLibrariesT& src) : TComInterface<IProceduresLibraries>(src) {}
  TCOMIProceduresLibrariesT& operator=(const TCOMIProceduresLibrariesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IProceduresLibraryPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIProceduresLibrariesT<IProceduresLibraries> TCOMIProceduresLibraries;

// *********************************************************************//
// DispIntf:  IProceduresLibraries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {80F95B5B-DB8A-46B7-8C22-605A0AECD597}
// *********************************************************************//
template<class T>
class IProceduresLibrariesDispT : public TAutoDriver<IProceduresLibraries>
{
public:
  IProceduresLibrariesDispT(){}

  IProceduresLibrariesDispT(IProceduresLibraries *pintf)
  {
    TAutoDriver<IProceduresLibraries>::Bind(pintf, false);
  }

  IProceduresLibrariesDispT(IProceduresLibrariesPtr pintf)
  {
    TAutoDriver<IProceduresLibraries>::Bind(pintf, true);
  }

  IProceduresLibrariesDispT& operator=(IProceduresLibraries *pintf)
  {
    TAutoDriver<IProceduresLibraries>::Bind(pintf, false);
    return *this;
  }

  IProceduresLibrariesDispT& operator=(IProceduresLibrariesPtr pintf)
  {
    TAutoDriver<IProceduresLibraries>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ProceduresLibraries));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ProceduresLibraries);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IProceduresLibraryPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IProceduresLibrariesDispT<IProceduresLibraries> IProceduresLibrariesDisp;

typedef TComInterface<ILibrary>  TCOMILibrary;

// *********************************************************************//
// DispIntf:  ILibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D6E9AE1-7DDF-4354-B8D0-E12023B186FA}
// *********************************************************************//
template<class T>
class ILibraryDispT : public TAutoDriver<ILibrary>
{
public:
  ILibraryDispT(){}

  ILibraryDispT(ILibrary *pintf)
  {
    TAutoDriver<ILibrary>::Bind(pintf, false);
  }

  ILibraryDispT(ILibraryPtr pintf)
  {
    TAutoDriver<ILibrary>::Bind(pintf, true);
  }

  ILibraryDispT& operator=(ILibrary *pintf)
  {
    TAutoDriver<ILibrary>::Bind(pintf, false);
    return *this;
  }

  ILibraryDispT& operator=(ILibraryPtr pintf)
  {
    TAutoDriver<ILibrary>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_LibraryManagerFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryManagerFolder(void);
  HRESULT         __fastcall get_Attach(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Attach(void);
  HRESULT         __fastcall set_Attach(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_LibraryType(ksLibraryTypeEnum* PVal/*[out,retval]*/);
  ksLibraryTypeEnum __fastcall get_LibraryType(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                     TOLEBOOL Post/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                     TOLEBOOL Post/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            LibraryManagerFolder = {read = get_LibraryManagerFolder};
  __property   TOLEBOOL        Attach = {read = get_Attach, write = set_Attach};
  __property   ksLibraryTypeEnum LibraryType = {read = get_LibraryType};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   TOLEBOOL        Enable = {read = get_Enable};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILibraryDispT<ILibrary> ILibraryDisp;

// *********************************************************************//
// SmartIntf: TCOMIProceduresLibrary
// Interface: IProceduresLibrary
// *********************************************************************//
template <class T /* IProceduresLibrary */ >
class TCOMIProceduresLibraryT : public TComInterface<IProceduresLibrary>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIProceduresLibraryT() {}
  TCOMIProceduresLibraryT(IProceduresLibrary *intf, bool addRef = false) : TComInterface<IProceduresLibrary>(intf, addRef) {}
  TCOMIProceduresLibraryT(const TCOMIProceduresLibraryT& src) : TComInterface<IProceduresLibrary>(src) {}
  TCOMIProceduresLibraryT& operator=(const TCOMIProceduresLibraryT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Style(ksLibraryStyleEnum* PVal/*[out,retval]*/);
  ksLibraryStyleEnum __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(ksLibraryStyleEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Procedures(Kompasltapi7_tlb::IProceduresPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresPtr __fastcall get_Procedures(void);
  HRESULT         __fastcall get_CurrentCommand(long* PVal/*[out,retval]*/);
  long            __fastcall get_CurrentCommand(void);
  HRESULT         __fastcall SystemControlStop(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SystemControlStop(void);
  HRESULT         __fastcall SystemControlStart(BSTR menuCommand/*[in]*/, 
                                                ksSystemControlStartEnum* PVal/*[out,retval]*/);
  ksSystemControlStartEnum __fastcall SystemControlStart(BSTR menuCommand/*[in]*/);
  HRESULT         __fastcall get_UniqueId(long* PVal/*[out,retval]*/);
  long            __fastcall get_UniqueId(void);
  HRESULT         __fastcall get_Executable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Executable(void);
  HRESULT         __fastcall get_AddIns(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AddIns(void);
  HRESULT         __fastcall get_ExternalInterface(LPDISPATCH* PVal/*[out,retval]*/);
  LPDISPATCH      __fastcall get_ExternalInterface(void);
  HRESULT         __fastcall get_LibraryName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryName(void);

  __property   ksLibraryStyleEnum Style = {read = get_Style, write = set_Style};
  __property   Kompasltapi7_tlb::IProceduresPtr Procedures = {read = get_Procedures};
  __property   long            CurrentCommand = {read = get_CurrentCommand};
  __property   long            UniqueId = {read = get_UniqueId};
  __property   TOLEBOOL        Executable = {read = get_Executable};
  __property   TOLEBOOL        AddIns = {read = get_AddIns};
  __property   LPDISPATCH      ExternalInterface = {read = get_ExternalInterface};
  __property   BSTR            LibraryName = {read = get_LibraryName};
};
typedef TCOMIProceduresLibraryT<IProceduresLibrary> TCOMIProceduresLibrary;

// *********************************************************************//
// DispIntf:  IProceduresLibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1AECE59E-DE4C-4FB9-B62B-7967573AD3B1}
// *********************************************************************//
template<class T>
class IProceduresLibraryDispT : public TAutoDriver<IProceduresLibrary>
{
public:
  IProceduresLibraryDispT(){}

  IProceduresLibraryDispT(IProceduresLibrary *pintf)
  {
    TAutoDriver<IProceduresLibrary>::Bind(pintf, false);
  }

  IProceduresLibraryDispT(IProceduresLibraryPtr pintf)
  {
    TAutoDriver<IProceduresLibrary>::Bind(pintf, true);
  }

  IProceduresLibraryDispT& operator=(IProceduresLibrary *pintf)
  {
    TAutoDriver<IProceduresLibrary>::Bind(pintf, false);
    return *this;
  }

  IProceduresLibraryDispT& operator=(IProceduresLibraryPtr pintf)
  {
    TAutoDriver<IProceduresLibrary>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ProceduresLibrary));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ProceduresLibrary);
  }

  HRESULT         __fastcall get_Style(ksLibraryStyleEnum* PVal/*[out,retval]*/);
  ksLibraryStyleEnum __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(ksLibraryStyleEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Procedures(Kompasltapi7_tlb::IProceduresPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IProceduresPtr __fastcall get_Procedures(void);
  HRESULT         __fastcall get_CurrentCommand(long* PVal/*[out,retval]*/);
  long            __fastcall get_CurrentCommand(void);
  HRESULT         __fastcall SystemControlStop(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SystemControlStop(void);
  HRESULT         __fastcall SystemControlStart(BSTR menuCommand/*[in]*/, 
                                                ksSystemControlStartEnum* PVal/*[out,retval]*/);
  ksSystemControlStartEnum __fastcall SystemControlStart(BSTR menuCommand/*[in]*/);
  HRESULT         __fastcall get_UniqueId(long* PVal/*[out,retval]*/);
  long            __fastcall get_UniqueId(void);
  HRESULT         __fastcall get_Executable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Executable(void);
  HRESULT         __fastcall get_AddIns(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AddIns(void);
  HRESULT         __fastcall get_ExternalInterface(LPDISPATCH* PVal/*[out,retval]*/);
  LPDISPATCH      __fastcall get_ExternalInterface(void);
  HRESULT         __fastcall get_LibraryName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryName(void);
  HRESULT         __fastcall get_LibraryManagerFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryManagerFolder(void);
  HRESULT         __fastcall get_Attach(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Attach(void);
  HRESULT         __fastcall set_Attach(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_LibraryType(ksLibraryTypeEnum* PVal/*[out,retval]*/);
  ksLibraryTypeEnum __fastcall get_LibraryType(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                     TOLEBOOL Post/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                     TOLEBOOL Post/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksLibraryStyleEnum Style = {read = get_Style, write = set_Style};
  __property   Kompasltapi7_tlb::IProceduresPtr Procedures = {read = get_Procedures};
  __property   long            CurrentCommand = {read = get_CurrentCommand};
  __property   long            UniqueId = {read = get_UniqueId};
  __property   TOLEBOOL        Executable = {read = get_Executable};
  __property   TOLEBOOL        AddIns = {read = get_AddIns};
  __property   LPDISPATCH      ExternalInterface = {read = get_ExternalInterface};
  __property   BSTR            LibraryName = {read = get_LibraryName};

  __property   BSTR            LibraryManagerFolder = {read = get_LibraryManagerFolder};
  __property   TOLEBOOL        Attach = {read = get_Attach, write = set_Attach};
  __property   ksLibraryTypeEnum LibraryType = {read = get_LibraryType};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   TOLEBOOL        Enable = {read = get_Enable};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IProceduresLibraryDispT<IProceduresLibrary> IProceduresLibraryDisp;

// *********************************************************************//
// SmartIntf: TCOMIProcedures
// Interface: IProcedures
// *********************************************************************//
template <class T /* IProcedures */ >
class TCOMIProceduresT : public TComInterface<IProcedures>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIProceduresT() {}
  TCOMIProceduresT(IProcedures *intf, bool addRef = false) : TComInterface<IProcedures>(intf, addRef) {}
  TCOMIProceduresT(const TCOMIProceduresT& src) : TComInterface<IProcedures>(src) {}
  TCOMIProceduresT& operator=(const TCOMIProceduresT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProcedurePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ItemByID(long Id/*[in]*/, 
                                          Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProcedurePtr __fastcall get_ItemByID(long Id/*[in]*/);

};
typedef TCOMIProceduresT<IProcedures> TCOMIProcedures;

// *********************************************************************//
// DispIntf:  IProcedures
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1A77F076-2295-40F9-B1AA-2838C4CA0887}
// *********************************************************************//
template<class T>
class IProceduresDispT : public TAutoDriver<IProcedures>
{
public:
  IProceduresDispT(){}

  IProceduresDispT(IProcedures *pintf)
  {
    TAutoDriver<IProcedures>::Bind(pintf, false);
  }

  IProceduresDispT(IProceduresPtr pintf)
  {
    TAutoDriver<IProcedures>::Bind(pintf, true);
  }

  IProceduresDispT& operator=(IProcedures *pintf)
  {
    TAutoDriver<IProcedures>::Bind(pintf, false);
    return *this;
  }

  IProceduresDispT& operator=(IProceduresPtr pintf)
  {
    TAutoDriver<IProcedures>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Procedures));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Procedures);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProcedurePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ItemByID(long Id/*[in]*/, 
                                          Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IProcedurePtr __fastcall get_ItemByID(long Id/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IProceduresDispT<IProcedures> IProceduresDisp;

// *********************************************************************//
// SmartIntf: TCOMIProcedure
// Interface: IProcedure
// *********************************************************************//
template <class T /* IProcedure */ >
class TCOMIProcedureT : public TComInterface<IProcedure>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIProcedureT() {}
  TCOMIProcedureT(IProcedure *intf, bool addRef = false) : TComInterface<IProcedure>(intf, addRef) {}
  TCOMIProcedureT(const TCOMIProcedureT& src) : TComInterface<IProcedure>(src) {}
  TCOMIProcedureT& operator=(const TCOMIProcedureT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_LibraryFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryFolder(void);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/);

  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            LibraryFolder = {read = get_LibraryFolder};
  __property   long            Id = {read = get_Id};
};
typedef TCOMIProcedureT<IProcedure> TCOMIProcedure;

// *********************************************************************//
// DispIntf:  IProcedure
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7BF9DF08-D14D-4DA9-ABC2-FB458E7122D0}
// *********************************************************************//
template<class T>
class IProcedureDispT : public TAutoDriver<IProcedure>
{
public:
  IProcedureDispT(){}

  IProcedureDispT(IProcedure *pintf)
  {
    TAutoDriver<IProcedure>::Bind(pintf, false);
  }

  IProcedureDispT(IProcedurePtr pintf)
  {
    TAutoDriver<IProcedure>::Bind(pintf, true);
  }

  IProcedureDispT& operator=(IProcedure *pintf)
  {
    TAutoDriver<IProcedure>::Bind(pintf, false);
    return *this;
  }

  IProcedureDispT& operator=(IProcedurePtr pintf)
  {
    TAutoDriver<IProcedure>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Procedure));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Procedure);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_LibraryFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryFolder(void);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            LibraryFolder = {read = get_LibraryFolder};
  __property   long            Id = {read = get_Id};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IProcedureDispT<IProcedure> IProcedureDisp;

// *********************************************************************//
// SmartIntf: TCOMIInsertsLibraries
// Interface: IInsertsLibraries
// *********************************************************************//
template <class T /* IInsertsLibraries */ >
class TCOMIInsertsLibrariesT : public TComInterface<IInsertsLibraries>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertsLibrariesT() {}
  TCOMIInsertsLibrariesT(IInsertsLibraries *intf, bool addRef = false) : TComInterface<IInsertsLibraries>(intf, addRef) {}
  TCOMIInsertsLibrariesT(const TCOMIInsertsLibrariesT& src) : TComInterface<IInsertsLibraries>(src) {}
  TCOMIInsertsLibrariesT& operator=(const TCOMIInsertsLibrariesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IInsertsLibraryPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsLibraryPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIInsertsLibrariesT<IInsertsLibraries> TCOMIInsertsLibraries;

// *********************************************************************//
// DispIntf:  IInsertsLibraries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6E82D68-69D5-40C0-9A85-275B22219135}
// *********************************************************************//
template<class T>
class IInsertsLibrariesDispT : public TAutoDriver<IInsertsLibraries>
{
public:
  IInsertsLibrariesDispT(){}

  IInsertsLibrariesDispT(IInsertsLibraries *pintf)
  {
    TAutoDriver<IInsertsLibraries>::Bind(pintf, false);
  }

  IInsertsLibrariesDispT(IInsertsLibrariesPtr pintf)
  {
    TAutoDriver<IInsertsLibraries>::Bind(pintf, true);
  }

  IInsertsLibrariesDispT& operator=(IInsertsLibraries *pintf)
  {
    TAutoDriver<IInsertsLibraries>::Bind(pintf, false);
    return *this;
  }

  IInsertsLibrariesDispT& operator=(IInsertsLibrariesPtr pintf)
  {
    TAutoDriver<IInsertsLibraries>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_InsertsLibraries));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_InsertsLibraries);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IInsertsLibraryPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsLibraryPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertsLibrariesDispT<IInsertsLibraries> IInsertsLibrariesDisp;

// *********************************************************************//
// SmartIntf: TCOMIInsertsLibrary
// Interface: IInsertsLibrary
// *********************************************************************//
template <class T /* IInsertsLibrary */ >
class TCOMIInsertsLibraryT : public TComInterface<IInsertsLibrary>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertsLibraryT() {}
  TCOMIInsertsLibraryT(IInsertsLibrary *intf, bool addRef = false) : TComInterface<IInsertsLibrary>(intf, addRef) {}
  TCOMIInsertsLibraryT(const TCOMIInsertsLibraryT& src) : TComInterface<IInsertsLibrary>(src) {}
  TCOMIInsertsLibraryT& operator=(const TCOMIInsertsLibraryT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ActiveFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ActiveFolder(void);
  HRESULT         __fastcall SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                             TOLEBOOL HaveLibName, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                             TOLEBOOL HaveLibName);
  HRESULT         __fastcall get_Inserts(Kompasltapi7_tlb::IInsertsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsPtr __fastcall get_Inserts(void);
  HRESULT         __fastcall AddFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddFolder(BSTR PathFolder/*[in]*/);
  HRESULT         __fastcall RemoveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveFolder(BSTR PathFolder/*[in]*/);

  __property   BSTR            ActiveFolder = {read = get_ActiveFolder};
  __property   Kompasltapi7_tlb::IInsertsPtr Inserts = {read = get_Inserts};
};
typedef TCOMIInsertsLibraryT<IInsertsLibrary> TCOMIInsertsLibrary;

// *********************************************************************//
// DispIntf:  IInsertsLibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {885CAD68-B42B-45CF-8620-E0138558EFE3}
// *********************************************************************//
template<class T>
class IInsertsLibraryDispT : public TAutoDriver<IInsertsLibrary>
{
public:
  IInsertsLibraryDispT(){}

  IInsertsLibraryDispT(IInsertsLibrary *pintf)
  {
    TAutoDriver<IInsertsLibrary>::Bind(pintf, false);
  }

  IInsertsLibraryDispT(IInsertsLibraryPtr pintf)
  {
    TAutoDriver<IInsertsLibrary>::Bind(pintf, true);
  }

  IInsertsLibraryDispT& operator=(IInsertsLibrary *pintf)
  {
    TAutoDriver<IInsertsLibrary>::Bind(pintf, false);
    return *this;
  }

  IInsertsLibraryDispT& operator=(IInsertsLibraryPtr pintf)
  {
    TAutoDriver<IInsertsLibrary>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_InsertsLibrary));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_InsertsLibrary);
  }

  HRESULT         __fastcall get_ActiveFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ActiveFolder(void);
  HRESULT         __fastcall SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                             TOLEBOOL HaveLibName, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                             TOLEBOOL HaveLibName);
  HRESULT         __fastcall get_Inserts(Kompasltapi7_tlb::IInsertsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertsPtr __fastcall get_Inserts(void);
  HRESULT         __fastcall AddFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddFolder(BSTR PathFolder/*[in]*/);
  HRESULT         __fastcall RemoveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveFolder(BSTR PathFolder/*[in]*/);
  HRESULT         __fastcall get_LibraryManagerFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryManagerFolder(void);
  HRESULT         __fastcall get_Attach(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Attach(void);
  HRESULT         __fastcall set_Attach(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_LibraryType(ksLibraryTypeEnum* PVal/*[out,retval]*/);
  ksLibraryTypeEnum __fastcall get_LibraryType(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                     TOLEBOOL Post/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                     TOLEBOOL Post/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            ActiveFolder = {read = get_ActiveFolder};
  __property   Kompasltapi7_tlb::IInsertsPtr Inserts = {read = get_Inserts};

  __property   BSTR            LibraryManagerFolder = {read = get_LibraryManagerFolder};
  __property   TOLEBOOL        Attach = {read = get_Attach, write = set_Attach};
  __property   ksLibraryTypeEnum LibraryType = {read = get_LibraryType};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   TOLEBOOL        Enable = {read = get_Enable};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertsLibraryDispT<IInsertsLibrary> IInsertsLibraryDisp;

// *********************************************************************//
// SmartIntf: TCOMIInserts
// Interface: IInserts
// *********************************************************************//
template <class T /* IInserts */ >
class TCOMIInsertsT : public TComInterface<IInserts>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertsT() {}
  TCOMIInsertsT(IInserts *intf, bool addRef = false) : TComInterface<IInserts>(intf, addRef) {}
  TCOMIInsertsT(const TCOMIInsertsT& src) : TComInterface<IInserts>(src) {}
  TCOMIInsertsT& operator=(const TCOMIInsertsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, DocumentTypeEnum DocType, 
                                 Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertPtr __fastcall Add(BSTR Name/*[in]*/, 
                                              DocumentTypeEnum DocType);

};
typedef TCOMIInsertsT<IInserts> TCOMIInserts;

// *********************************************************************//
// DispIntf:  IInserts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FCBF6340-119D-4736-BB95-F1EAB4BEF1B8}
// *********************************************************************//
template<class T>
class IInsertsDispT : public TAutoDriver<IInserts>
{
public:
  IInsertsDispT(){}

  IInsertsDispT(IInserts *pintf)
  {
    TAutoDriver<IInserts>::Bind(pintf, false);
  }

  IInsertsDispT(IInsertsPtr pintf)
  {
    TAutoDriver<IInserts>::Bind(pintf, true);
  }

  IInsertsDispT& operator=(IInserts *pintf)
  {
    TAutoDriver<IInserts>::Bind(pintf, false);
    return *this;
  }

  IInsertsDispT& operator=(IInsertsPtr pintf)
  {
    TAutoDriver<IInserts>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Inserts));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Inserts);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(BSTR Name/*[in]*/, DocumentTypeEnum DocType, 
                                 Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertPtr __fastcall Add(BSTR Name/*[in]*/, 
                                              DocumentTypeEnum DocType);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertsDispT<IInserts> IInsertsDisp;

// *********************************************************************//
// SmartIntf: TCOMIInsert
// Interface: IInsert
// *********************************************************************//
template <class T /* IInsert */ >
class TCOMIInsertT : public TComInterface<IInsert>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertT() {}
  TCOMIInsertT(IInsert *intf, bool addRef = false) : TComInterface<IInsert>(intf, addRef) {}
  TCOMIInsertT(const TCOMIInsertT& src) : TComInterface<IInsert>(src) {}
  TCOMIInsertT& operator=(const TCOMIInsertT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_LibraryFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryFolder(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall Edit(Kompasltapi7_tlb::IKompasDocumentPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Edit(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            LibraryFolder = {read = get_LibraryFolder};
  __property   BSTR            PathName = {read = get_PathName};
};
typedef TCOMIInsertT<IInsert> TCOMIInsert;

// *********************************************************************//
// DispIntf:  IInsert
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D6A6D305-6B5C-4392-B61D-D669C092EEF2}
// *********************************************************************//
template<class T>
class IInsertDispT : public TAutoDriver<IInsert>
{
public:
  IInsertDispT(){}

  IInsertDispT(IInsert *pintf)
  {
    TAutoDriver<IInsert>::Bind(pintf, false);
  }

  IInsertDispT(IInsertPtr pintf)
  {
    TAutoDriver<IInsert>::Bind(pintf, true);
  }

  IInsertDispT& operator=(IInsert *pintf)
  {
    TAutoDriver<IInsert>::Bind(pintf, false);
    return *this;
  }

  IInsertDispT& operator=(IInsertPtr pintf)
  {
    TAutoDriver<IInsert>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Insert));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Insert);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_LibraryFolder(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryFolder(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall Edit(Kompasltapi7_tlb::IKompasDocumentPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocumentPtr __fastcall Edit(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            LibraryFolder = {read = get_LibraryFolder};
  __property   BSTR            PathName = {read = get_PathName};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertDispT<IInsert> IInsertDisp;

// *********************************************************************//
// SmartIntf: TCOMIKompasError
// Interface: IKompasError
// *********************************************************************//
template <class T /* IKompasError */ >
class TCOMIKompasErrorT : public TComInterface<IKompasError>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIKompasErrorT() {}
  TCOMIKompasErrorT(IKompasError *intf, bool addRef = false) : TComInterface<IKompasError>(intf, addRef) {}
  TCOMIKompasErrorT(const TCOMIKompasErrorT& src) : TComInterface<IKompasError>(src) {}
  TCOMIKompasErrorT& operator=(const TCOMIKompasErrorT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Code(long* PVal/*[out,retval]*/);
  long            __fastcall get_Code(void);
  HRESULT         __fastcall get_Description(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Description(void);
  HRESULT         __fastcall get_Error3D(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Error3D(void);
  HRESULT         __fastcall Report(void);
  HRESULT         __fastcall Clear(void);

  __property   long            Code = {read = get_Code};
  __property   BSTR            Description = {read = get_Description};
  __property   TOLEBOOL        Error3D = {read = get_Error3D};
};
typedef TCOMIKompasErrorT<IKompasError> TCOMIKompasError;

// *********************************************************************//
// DispIntf:  IKompasError
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0A8B4CD1-7158-4CE6-96E0-885376F5DE1B}
// *********************************************************************//
template<class T>
class IKompasErrorDispT : public TAutoDriver<IKompasError>
{
public:
  IKompasErrorDispT(){}

  IKompasErrorDispT(IKompasError *pintf)
  {
    TAutoDriver<IKompasError>::Bind(pintf, false);
  }

  IKompasErrorDispT(IKompasErrorPtr pintf)
  {
    TAutoDriver<IKompasError>::Bind(pintf, true);
  }

  IKompasErrorDispT& operator=(IKompasError *pintf)
  {
    TAutoDriver<IKompasError>::Bind(pintf, false);
    return *this;
  }

  IKompasErrorDispT& operator=(IKompasErrorPtr pintf)
  {
    TAutoDriver<IKompasError>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_KompasError));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_KompasError);
  }

  HRESULT         __fastcall get_Code(long* PVal/*[out,retval]*/);
  long            __fastcall get_Code(void);
  HRESULT         __fastcall get_Description(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Description(void);
  HRESULT         __fastcall get_Error3D(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Error3D(void);
  HRESULT         __fastcall Report();
  HRESULT         __fastcall Clear();
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Code = {read = get_Code};
  __property   BSTR            Description = {read = get_Description};
  __property   TOLEBOOL        Error3D = {read = get_Error3D};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IKompasErrorDispT<IKompasError> IKompasErrorDisp;

// *********************************************************************//
// SmartIntf: TCOMIConverter
// Interface: IConverter
// *********************************************************************//
template <class T /* IConverter */ >
class TCOMIConverterT : public TComInterface<IConverter>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIConverterT() {}
  TCOMIConverterT(IConverter *intf, bool addRef = false) : TComInterface<IConverter>(intf, addRef) {}
  TCOMIConverterT(const TCOMIConverterT& src) : TComInterface<IConverter>(src) {}
  TCOMIConverterT& operator=(const TCOMIConverterT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall ConverterParameters(long Command/*[in]*/, 
                                                 LPUNKNOWN* PVal/*[out,retval]*/);
  LPUNKNOWN       __fastcall ConverterParameters(long Command/*[in]*/);
  HRESULT         __fastcall GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, 
                                       long* Command/*[out]*/, BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, 
                                       long* Command/*[out]*/);
  HRESULT         __fastcall Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, 
                                     long Command/*[in]*/, TOLEBOOL ShowParam/*[in]*/, 
                                     long* Result/*[out,retval]*/);
  long            __fastcall Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, 
                                     long Command/*[in]*/, TOLEBOOL ShowParam/*[in]*/);
  HRESULT         __fastcall VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, 
                                                    long Command/*[in]*/, 
                                                    TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, 
                                                    long Command/*[in]*/);

};
typedef TCOMIConverterT<IConverter> TCOMIConverter;

// *********************************************************************//
// DispIntf:  IConverter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {642D03AB-4798-48A5-B075-3CD9AFA18554}
// *********************************************************************//
template<class T>
class IConverterDispT : public TAutoDriver<IConverter>
{
public:
  IConverterDispT(){}

  IConverterDispT(IConverter *pintf)
  {
    TAutoDriver<IConverter>::Bind(pintf, false);
  }

  IConverterDispT(IConverterPtr pintf)
  {
    TAutoDriver<IConverter>::Bind(pintf, true);
  }

  IConverterDispT& operator=(IConverter *pintf)
  {
    TAutoDriver<IConverter>::Bind(pintf, false);
    return *this;
  }

  IConverterDispT& operator=(IConverterPtr pintf)
  {
    TAutoDriver<IConverter>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Converter));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Converter);
  }

  HRESULT         __fastcall ConverterParameters(long Command/*[in]*/, 
                                                 LPUNKNOWN* PVal/*[out,retval]*/);
  LPUNKNOWN       __fastcall ConverterParameters(long Command/*[in]*/);
  HRESULT         __fastcall GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, 
                                       long* Command/*[out]*/, BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, 
                                       long* Command/*[out]*/);
  HRESULT         __fastcall Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, 
                                     long Command/*[in]*/, TOLEBOOL ShowParam/*[in]*/, 
                                     long* Result/*[out,retval]*/);
  long            __fastcall Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, 
                                     long Command/*[in]*/, TOLEBOOL ShowParam/*[in]*/);
  HRESULT         __fastcall VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, 
                                                    long Command/*[in]*/, 
                                                    TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, 
                                                    long Command/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IConverterDispT<IConverter> IConverterDisp;

// *********************************************************************//
// SmartIntf: TCOMICheckSum
// Interface: ICheckSum
// *********************************************************************//
template <class T /* ICheckSum */ >
class TCOMICheckSumT : public TComInterface<ICheckSum>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICheckSumT() {}
  TCOMICheckSumT(ICheckSum *intf, bool addRef = false) : TComInterface<ICheckSum>(intf, addRef) {}
  TCOMICheckSumT(const TCOMICheckSumT& src) : TComInterface<ICheckSum>(src) {}
  TCOMICheckSumT& operator=(const TCOMICheckSumT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Add(TVariantInParam Value/*[in]*/, TOLEBOOL Com/*[in]*/);
  HRESULT         __fastcall get_Result(TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall get_Result(void);
  HRESULT         __fastcall get_StrResult(BSTR* StrVal/*[out,retval]*/);
  BSTR            __fastcall get_StrResult(void);
  HRESULT         __fastcall AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/, 
                                          TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/);
  HRESULT         __fastcall AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, 
                                          TOLEBOOL Com/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, 
                                          TOLEBOOL Com/*[in]*/);
  HRESULT         __fastcall Clear(void);
  HRESULT         __fastcall get_Version(long* PVal/*[out,retval]*/);
  long            __fastcall get_Version(void);
  HRESULT         __fastcall set_Version(long PVal/*[in]*/);

  __property   BSTR            StrResult = {read = get_StrResult};
  __property   long            Version = {read = get_Version, write = set_Version};
};
typedef TCOMICheckSumT<ICheckSum> TCOMICheckSum;

// *********************************************************************//
// DispIntf:  ICheckSum
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2AA9F713-2328-4E8F-B996-9DFDABC67DC9}
// *********************************************************************//
template<class T>
class ICheckSumDispT : public TAutoDriver<ICheckSum>
{
public:
  ICheckSumDispT(){}

  ICheckSumDispT(ICheckSum *pintf)
  {
    TAutoDriver<ICheckSum>::Bind(pintf, false);
  }

  ICheckSumDispT(ICheckSumPtr pintf)
  {
    TAutoDriver<ICheckSum>::Bind(pintf, true);
  }

  ICheckSumDispT& operator=(ICheckSum *pintf)
  {
    TAutoDriver<ICheckSum>::Bind(pintf, false);
    return *this;
  }

  ICheckSumDispT& operator=(ICheckSumPtr pintf)
  {
    TAutoDriver<ICheckSum>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CheckSum));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CheckSum);
  }

  HRESULT         __fastcall Add(TVariantInParam Value/*[in]*/, TOLEBOOL Com/*[in]*/);
  HRESULT         __fastcall get_Result(TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall get_Result(void);
  HRESULT         __fastcall get_StrResult(BSTR* StrVal/*[out,retval]*/);
  BSTR            __fastcall get_StrResult(void);
  HRESULT         __fastcall AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/, 
                                          TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/);
  HRESULT         __fastcall AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, 
                                          TOLEBOOL Com/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, 
                                          TOLEBOOL Com/*[in]*/);
  HRESULT         __fastcall Clear();
  HRESULT         __fastcall get_Version(long* PVal/*[out,retval]*/);
  long            __fastcall get_Version(void);
  HRESULT         __fastcall set_Version(long PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            StrResult = {read = get_StrResult};
  __property   long            Version = {read = get_Version, write = set_Version};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICheckSumDispT<ICheckSum> ICheckSumDisp;

// *********************************************************************//
// SmartIntf: TCOMIProgressBarIndicator
// Interface: IProgressBarIndicator
// *********************************************************************//
template <class T /* IProgressBarIndicator */ >
class TCOMIProgressBarIndicatorT : public TComInterface<IProgressBarIndicator>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIProgressBarIndicatorT() {}
  TCOMIProgressBarIndicatorT(IProgressBarIndicator *intf, bool addRef = false) : TComInterface<IProgressBarIndicator>(intf, addRef) {}
  TCOMIProgressBarIndicatorT(const TCOMIProgressBarIndicatorT& src) : TComInterface<IProgressBarIndicator>(src) {}
  TCOMIProgressBarIndicatorT& operator=(const TCOMIProgressBarIndicatorT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Start(long MinVal/*[in]*/, long MaxVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                   TOLEBOOL ResetVal/*[in]*/);
  HRESULT         __fastcall SetProgress(long CurrentVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                         TOLEBOOL ResetVal/*[in]*/);
  HRESULT         __fastcall SetText(BSTR TextVal/*[in]*/);
  HRESULT         __fastcall Stop(BSTR TextVal/*[in]*/, TOLEBOOL ResetVal/*[in]*/);

};
typedef TCOMIProgressBarIndicatorT<IProgressBarIndicator> TCOMIProgressBarIndicator;

// *********************************************************************//
// DispIntf:  IProgressBarIndicator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BE125ABA-EAB2-4A22-99D7-108C84B6DCC5}
// *********************************************************************//
template<class T>
class IProgressBarIndicatorDispT : public TAutoDriver<IProgressBarIndicator>
{
public:
  IProgressBarIndicatorDispT(){}

  IProgressBarIndicatorDispT(IProgressBarIndicator *pintf)
  {
    TAutoDriver<IProgressBarIndicator>::Bind(pintf, false);
  }

  IProgressBarIndicatorDispT(IProgressBarIndicatorPtr pintf)
  {
    TAutoDriver<IProgressBarIndicator>::Bind(pintf, true);
  }

  IProgressBarIndicatorDispT& operator=(IProgressBarIndicator *pintf)
  {
    TAutoDriver<IProgressBarIndicator>::Bind(pintf, false);
    return *this;
  }

  IProgressBarIndicatorDispT& operator=(IProgressBarIndicatorPtr pintf)
  {
    TAutoDriver<IProgressBarIndicator>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ProgressBarIndicator));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ProgressBarIndicator);
  }

  HRESULT         __fastcall Start(long MinVal/*[in]*/, long MaxVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                   TOLEBOOL ResetVal/*[in]*/);
  HRESULT         __fastcall SetProgress(long CurrentVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                         TOLEBOOL ResetVal/*[in]*/);
  HRESULT         __fastcall SetText(BSTR TextVal/*[in]*/);
  HRESULT         __fastcall Stop(BSTR TextVal/*[in]*/, TOLEBOOL ResetVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IProgressBarIndicatorDispT<IProgressBarIndicator> IProgressBarIndicatorDisp;

// *********************************************************************//
// SmartIntf: TCOMISystemSettings
// Interface: ISystemSettings
// *********************************************************************//
template <class T /* ISystemSettings */ >
class TCOMISystemSettingsT : public TComInterface<ISystemSettings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISystemSettingsT() {}
  TCOMISystemSettingsT(ISystemSettings *intf, bool addRef = false) : TComInterface<ISystemSettings>(intf, addRef) {}
  TCOMISystemSettingsT(const TCOMISystemSettingsT& src) : TComInterface<ISystemSettings>(src) {}
  TCOMISystemSettingsT& operator=(const TCOMISystemSettingsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_FilesAutoSaveSwitchOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_FilesAutoSaveSwitchOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FilesAutoSaveSwitchOn(void);
  HRESULT         __fastcall set_FilesBackupPrevCopySwitchOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_FilesBackupPrevCopySwitchOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FilesBackupPrevCopySwitchOn(void);
  HRESULT         __fastcall set_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ModelLocalCSCreateInAbsoluteCS(void);
  HRESULT         __fastcall set_ModelLocalCSSetActive(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ModelLocalCSSetActive(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ModelLocalCSSetActive(void);
  HRESULT         __fastcall set_ModelSmoothMotion(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ModelSmoothMotion(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ModelSmoothMotion(void);
  HRESULT         __fastcall get_ReportStyleListSettings(Kompasltapi7_tlb::ILibArraySettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILibArraySettingsPtr __fastcall get_ReportStyleListSettings(void);

  __property   TOLEBOOL        FilesAutoSaveSwitchOn = {read = get_FilesAutoSaveSwitchOn, write = set_FilesAutoSaveSwitchOn};
  __property   TOLEBOOL        FilesBackupPrevCopySwitchOn = {read = get_FilesBackupPrevCopySwitchOn, write = set_FilesBackupPrevCopySwitchOn};
  __property   TOLEBOOL        ModelLocalCSCreateInAbsoluteCS = {read = get_ModelLocalCSCreateInAbsoluteCS, write = set_ModelLocalCSCreateInAbsoluteCS};
  __property   TOLEBOOL        ModelLocalCSSetActive = {read = get_ModelLocalCSSetActive, write = set_ModelLocalCSSetActive};
  __property   TOLEBOOL        ModelSmoothMotion = {read = get_ModelSmoothMotion, write = set_ModelSmoothMotion};
  __property   Kompasltapi7_tlb::ILibArraySettingsPtr ReportStyleListSettings = {read = get_ReportStyleListSettings};
};
typedef TCOMISystemSettingsT<ISystemSettings> TCOMISystemSettings;

// *********************************************************************//
// DispIntf:  ISystemSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FFB66332-17FF-47EB-AC43-32084F8F6077}
// *********************************************************************//
template<class T>
class ISystemSettingsDispT : public TAutoDriver<ISystemSettings>
{
public:
  ISystemSettingsDispT(){}

  ISystemSettingsDispT(ISystemSettings *pintf)
  {
    TAutoDriver<ISystemSettings>::Bind(pintf, false);
  }

  ISystemSettingsDispT(ISystemSettingsPtr pintf)
  {
    TAutoDriver<ISystemSettings>::Bind(pintf, true);
  }

  ISystemSettingsDispT& operator=(ISystemSettings *pintf)
  {
    TAutoDriver<ISystemSettings>::Bind(pintf, false);
    return *this;
  }

  ISystemSettingsDispT& operator=(ISystemSettingsPtr pintf)
  {
    TAutoDriver<ISystemSettings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SystemSettings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SystemSettings);
  }

  HRESULT         __fastcall set_FilesAutoSaveSwitchOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_FilesAutoSaveSwitchOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FilesAutoSaveSwitchOn(void);
  HRESULT         __fastcall set_FilesBackupPrevCopySwitchOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_FilesBackupPrevCopySwitchOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FilesBackupPrevCopySwitchOn(void);
  HRESULT         __fastcall set_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ModelLocalCSCreateInAbsoluteCS(void);
  HRESULT         __fastcall set_ModelLocalCSSetActive(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ModelLocalCSSetActive(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ModelLocalCSSetActive(void);
  HRESULT         __fastcall set_ModelSmoothMotion(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ModelSmoothMotion(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ModelSmoothMotion(void);
  HRESULT         __fastcall get_ReportStyleListSettings(Kompasltapi7_tlb::ILibArraySettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILibArraySettingsPtr __fastcall get_ReportStyleListSettings(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        FilesAutoSaveSwitchOn = {read = get_FilesAutoSaveSwitchOn, write = set_FilesAutoSaveSwitchOn};
  __property   TOLEBOOL        FilesBackupPrevCopySwitchOn = {read = get_FilesBackupPrevCopySwitchOn, write = set_FilesBackupPrevCopySwitchOn};
  __property   TOLEBOOL        ModelLocalCSCreateInAbsoluteCS = {read = get_ModelLocalCSCreateInAbsoluteCS, write = set_ModelLocalCSCreateInAbsoluteCS};
  __property   TOLEBOOL        ModelLocalCSSetActive = {read = get_ModelLocalCSSetActive, write = set_ModelLocalCSSetActive};
  __property   TOLEBOOL        ModelSmoothMotion = {read = get_ModelSmoothMotion, write = set_ModelSmoothMotion};
  __property   Kompasltapi7_tlb::ILibArraySettingsPtr ReportStyleListSettings = {read = get_ReportStyleListSettings};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISystemSettingsDispT<ISystemSettings> ISystemSettingsDisp;

// *********************************************************************//
// SmartIntf: TCOMILibArraySettings
// Interface: ILibArraySettings
// *********************************************************************//
template <class T /* ILibArraySettings */ >
class TCOMILibArraySettingsT : public TComInterface<ILibArraySettings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILibArraySettingsT() {}
  TCOMILibArraySettingsT(ILibArraySettings *intf, bool addRef = false) : TComInterface<ILibArraySettings>(intf, addRef) {}
  TCOMILibArraySettingsT(const TCOMILibArraySettingsT& src) : TComInterface<ILibArraySettings>(src) {}
  TCOMILibArraySettingsT& operator=(const TCOMILibArraySettingsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LibraryCount(long* Count/*[out,retval]*/);
  long            __fastcall get_LibraryCount(void);
  HRESULT         __fastcall GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                        BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/);
  HRESULT         __fastcall SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/);
  HRESULT         __fastcall GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/);
  HRESULT         __fastcall AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/);
  HRESULT         __fastcall RemoveLibrary(TVariantInParam Index/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveLibrary(TVariantInParam Index/*[in]*/);

  __property   long            LibraryCount = {read = get_LibraryCount};
};
typedef TCOMILibArraySettingsT<ILibArraySettings> TCOMILibArraySettings;

// *********************************************************************//
// DispIntf:  ILibArraySettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {76D9033D-5F87-41CC-A3E8-55EFEE94B677}
// *********************************************************************//
template<class T>
class ILibArraySettingsDispT : public TAutoDriver<ILibArraySettings>
{
public:
  ILibArraySettingsDispT(){}

  ILibArraySettingsDispT(ILibArraySettings *pintf)
  {
    TAutoDriver<ILibArraySettings>::Bind(pintf, false);
  }

  ILibArraySettingsDispT(ILibArraySettingsPtr pintf)
  {
    TAutoDriver<ILibArraySettings>::Bind(pintf, true);
  }

  ILibArraySettingsDispT& operator=(ILibArraySettings *pintf)
  {
    TAutoDriver<ILibArraySettings>::Bind(pintf, false);
    return *this;
  }

  ILibArraySettingsDispT& operator=(ILibArraySettingsPtr pintf)
  {
    TAutoDriver<ILibArraySettings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LibArraySettings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LibArraySettings);
  }

  HRESULT         __fastcall get_LibraryCount(long* Count/*[out,retval]*/);
  long            __fastcall get_LibraryCount(void);
  HRESULT         __fastcall GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                        BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/);
  HRESULT         __fastcall SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/);
  HRESULT         __fastcall GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/);
  HRESULT         __fastcall AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/);
  HRESULT         __fastcall RemoveLibrary(TVariantInParam Index/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveLibrary(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            LibraryCount = {read = get_LibraryCount};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILibArraySettingsDispT<ILibArraySettings> ILibArraySettingsDisp;

typedef TComInterface<IMath2D>  TCOMIMath2D;

// *********************************************************************//
// DispIntf:  IMath2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0409EC8F-88F7-4242-81E7-965ABEAE932C}
// *********************************************************************//
template<class T>
class IMath2DDispT : public TAutoDriver<IMath2D>
{
public:
  IMath2DDispT(){}

  IMath2DDispT(IMath2D *pintf)
  {
    TAutoDriver<IMath2D>::Bind(pintf, false);
  }

  IMath2DDispT(IMath2DPtr pintf)
  {
    TAutoDriver<IMath2D>::Bind(pintf, true);
  }

  IMath2DDispT& operator=(IMath2D *pintf)
  {
    TAutoDriver<IMath2D>::Bind(pintf, false);
    return *this;
  }

  IMath2DDispT& operator=(IMath2DPtr pintf)
  {
    TAutoDriver<IMath2D>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall Line(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                  Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall Line(double X/*[in]*/, double Y/*[in]*/, 
                                                double Angle/*[in]*/);
  HRESULT         __fastcall LineSeg(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                     double Y2/*[in]*/, 
                                     Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall LineSeg(double X1/*[in]*/, double Y1/*[in]*/, 
                                                   double X2/*[in]*/, double Y2/*[in]*/);
  HRESULT         __fastcall Arc(double Xc/*[in]*/, double Yc/*[in]*/, double Radius/*[in]*/, 
                                 double Angle1/*[in]*/, double Angle2/*[in]*/, 
                                 TOLEBOOL Direction/*[in]*/, 
                                 Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall Arc(double Xc/*[in]*/, double Yc/*[in]*/, 
                                               double Radius/*[in]*/, double Angle1/*[in]*/, 
                                               double Angle2/*[in]*/, TOLEBOOL Direction/*[in]*/);
  HRESULT         __fastcall Circle(double Xc/*[in]*/, double Yc/*[in]*/, double Radius/*[in]*/, 
                                    Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall Circle(double Xc/*[in]*/, double Yc/*[in]*/, 
                                                  double Radius/*[in]*/);
  HRESULT         __fastcall PolyLine(TVariantInParam Points/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                      Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall PolyLine(TVariantInParam Points/*[in]*/, 
                                                    TOLEBOOL Closed/*[in]*/);
  HRESULT         __fastcall Ellipse(double Xc/*[in]*/, double Yc/*[in]*/, double A/*[in]*/, 
                                     double B/*[in]*/, double Angle/*[in]*/, 
                                     Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall Ellipse(double Xc/*[in]*/, double Yc/*[in]*/, 
                                                   double A/*[in]*/, double B/*[in]*/, 
                                                   double Angle/*[in]*/);
  HRESULT         __fastcall EllipseArc(double Xc/*[in]*/, double Yc/*[in]*/, double A/*[in]*/, 
                                        double B/*[in]*/, double Angle/*[in]*/, 
                                        double Angle1/*[in]*/, double Angle2/*[in]*/, 
                                        TOLEBOOL Direction/*[in]*/, 
                                        Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall EllipseArc(double Xc/*[in]*/, double Yc/*[in]*/, 
                                                      double A/*[in]*/, double B/*[in]*/, 
                                                      double Angle/*[in]*/, double Angle1/*[in]*/, 
                                                      double Angle2/*[in]*/, 
                                                      TOLEBOOL Direction/*[in]*/);
  HRESULT         __fastcall Bezier(TOLEBOOL Closed/*[in]*/, TOLEBOOL AllPoints/*[in]*/, 
                                    TVariantInParam Points/*[in]*/, 
                                    Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall Bezier(TOLEBOOL Closed/*[in]*/, 
                                                  TOLEBOOL AllPoints/*[in]*/, 
                                                  TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall Nurbs(TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                   TVariantInParam Points/*[in]*/, TVariantInParam Weights/*[in]*/, 
                                   TVariantInParam Knots/*[in]*/, 
                                   Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall Nurbs(TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                                 TVariantInParam Points/*[in]*/, 
                                                 TVariantInParam Weights/*[in]*/, 
                                                 TVariantInParam Knots/*[in]*/);
  HRESULT         __fastcall Symmetry(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                      Kompasltapi7_tlb::ICurve2DPtr Curve/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Symmetry(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                      Kompasltapi7_tlb::ICurve2DPtr Curve/*[in]*/);
  HRESULT         __fastcall Rotate(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Xc/*[in]*/
                                    , double Yc/*[in]*/, double Angle/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Rotate(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Xc/*[in]*/, 
                                    double Yc/*[in]*/, double Angle/*[in]*/);
  HRESULT         __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                       double Angle/*[in]*/, double Len/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                       double Angle/*[in]*/, double Len/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMath2DDispT<IMath2D> IMath2DDisp;

// *********************************************************************//
// SmartIntf: TCOMICurve2D
// Interface: ICurve2D
// *********************************************************************//
template <class T /* ICurve2D */ >
class TCOMICurve2DT : public TComInterface<ICurve2D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICurve2DT() {}
  TCOMICurve2DT(ICurve2D *intf, bool addRef = false) : TComInterface<ICurve2D>(intf, addRef) {}
  TCOMICurve2DT(const TCOMICurve2DT& src) : TComInterface<ICurve2D>(src) {}
  TCOMICurve2DT& operator=(const TCOMICurve2DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                       TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/);
  HRESULT         __fastcall Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                     TVariant* Curve1Points/*[out]*/, 
                                     TVariant* Curve2Points/*[out]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                     TVariant* Curve1Points/*[out]*/, 
                                     TVariant* Curve2Points/*[out]*/);
  HRESULT         __fastcall TangentLinePoint(double X/*[in]*/, double Y/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall TangentLinePoint(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                              double Radius/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                              double Radius/*[in]*/);
  HRESULT         __fastcall PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                             double* Ky/*[out]*/, double* T/*[out]*/, 
                                             double* Angle/*[out]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                             double* Ky/*[out]*/, double* T/*[out]*/, 
                                             double* Angle/*[out]*/);
  HRESULT         __fastcall CalculatePolygonByStep(double Step/*[in]*/, 
                                                    TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall CalculatePolygonByStep(double Step/*[in]*/);
  HRESULT         __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                       double Lenght/*[in]*/, TOLEBOOL Direction/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                       double Lenght/*[in]*/, TOLEBOOL Direction/*[in]*/);
  HRESULT         __fastcall get_Length(double* Result/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, 
                                                   double X2/*[in]*/, double Y2/*[in]*/, 
                                                   double* Result/*[out,retval]*/);
  double          __fastcall GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, 
                                                   double X2/*[in]*/, double Y2/*[in]*/);
  HRESULT         __fastcall GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                double* Result/*[out,retval]*/);
  double          __fastcall GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall GetMetricLength(double T1/*[in]*/, double T2/*[in]*/, 
                                             double* Result/*[out,retval]*/);
  double          __fastcall GetMetricLength(double T1/*[in]*/, double T2/*[in]*/);
  HRESULT         __fastcall get_ParamMin(double* Result/*[out,retval]*/);
  double          __fastcall get_ParamMin(void);
  HRESULT         __fastcall get_ParamMax(double* Result/*[out,retval]*/);
  double          __fastcall get_ParamMax(void);
  HRESULT         __fastcall get_IsClosed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsClosed(void);
  HRESULT         __fastcall GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                            TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                            double* TMin/*[out]*/, double* TMax/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                            TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                            double* TMin/*[out]*/, double* TMax/*[out]*/);

  __property   double          Length = {read = get_Length};
  __property   double          ParamMin = {read = get_ParamMin};
  __property   double          ParamMax = {read = get_ParamMax};
  __property   TOLEBOOL        IsClosed = {read = get_IsClosed};
};
typedef TCOMICurve2DT<ICurve2D> TCOMICurve2D;

// *********************************************************************//
// DispIntf:  ICurve2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {65C82884-C41B-47A1-8C07-E8820D6718EA}
// *********************************************************************//
template<class T>
class ICurve2DDispT : public TAutoDriver<ICurve2D>
{
public:
  ICurve2DDispT(){}

  ICurve2DDispT(ICurve2D *pintf)
  {
    TAutoDriver<ICurve2D>::Bind(pintf, false);
  }

  ICurve2DDispT(ICurve2DPtr pintf)
  {
    TAutoDriver<ICurve2D>::Bind(pintf, true);
  }

  ICurve2DDispT& operator=(ICurve2D *pintf)
  {
    TAutoDriver<ICurve2D>::Bind(pintf, false);
    return *this;
  }

  ICurve2DDispT& operator=(ICurve2DPtr pintf)
  {
    TAutoDriver<ICurve2D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Curve2D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Curve2D);
  }

  HRESULT         __fastcall Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                       TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/);
  HRESULT         __fastcall Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                     TVariant* Curve1Points/*[out]*/, 
                                     TVariant* Curve2Points/*[out]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                     TVariant* Curve1Points/*[out]*/, 
                                     TVariant* Curve2Points/*[out]*/);
  HRESULT         __fastcall TangentLinePoint(double X/*[in]*/, double Y/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall TangentLinePoint(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                              double Radius/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                              double Radius/*[in]*/);
  HRESULT         __fastcall PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/
                                             , double* Ky/*[out]*/, double* T/*[out]*/, 
                                             double* Angle/*[out]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                             double* Ky/*[out]*/, double* T/*[out]*/, 
                                             double* Angle/*[out]*/);
  HRESULT         __fastcall CalculatePolygonByStep(double Step/*[in]*/, 
                                                    TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall CalculatePolygonByStep(double Step/*[in]*/);
  HRESULT         __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                       double Lenght/*[in]*/, TOLEBOOL Direction/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                                       double Lenght/*[in]*/, TOLEBOOL Direction/*[in]*/);
  HRESULT         __fastcall get_Length(double* Result/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, 
                                                   double X2/*[in]*/, double Y2/*[in]*/, 
                                                   double* Result/*[out,retval]*/);
  double          __fastcall GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, 
                                                   double X2/*[in]*/, double Y2/*[in]*/);
  HRESULT         __fastcall GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                double* Result/*[out,retval]*/);
  double          __fastcall GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall GetMetricLength(double T1/*[in]*/, double T2/*[in]*/, 
                                             double* Result/*[out,retval]*/);
  double          __fastcall GetMetricLength(double T1/*[in]*/, double T2/*[in]*/);
  HRESULT         __fastcall get_ParamMin(double* Result/*[out,retval]*/);
  double          __fastcall get_ParamMin(void);
  HRESULT         __fastcall get_ParamMax(double* Result/*[out,retval]*/);
  double          __fastcall get_ParamMax(void);
  HRESULT         __fastcall get_IsClosed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsClosed(void);
  HRESULT         __fastcall GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                            TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                            double* TMin/*[out]*/, double* TMax/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                            TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                            double* TMin/*[out]*/, double* TMax/*[out]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Length = {read = get_Length};
  __property   double          ParamMin = {read = get_ParamMin};
  __property   double          ParamMax = {read = get_ParamMax};
  __property   TOLEBOOL        IsClosed = {read = get_IsClosed};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICurve2DDispT<ICurve2D> ICurve2DDisp;

// *********************************************************************//
// SmartIntf: TCOMIPrintJob
// Interface: IPrintJob
// *********************************************************************//
template <class T /* IPrintJob */ >
class TCOMIPrintJobT : public TComInterface<IPrintJob>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPrintJobT() {}
  TCOMIPrintJobT(IPrintJob *intf, bool addRef = false) : TComInterface<IPrintJob>(intf, addRef) {}
  TCOMIPrintJobT(const TCOMIPrintJobT& src) : TComInterface<IPrintJob>(src) {}
  TCOMIPrintJobT& operator=(const TCOMIPrintJobT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall ShowPreviewWindow(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ShowPreviewWindow(void);
  HRESULT         __fastcall Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/);
  HRESULT         __fastcall Save(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Save(BSTR FileName/*[in]*/);
  HRESULT         __fastcall Execute(BSTR OutputFileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Execute(BSTR OutputFileName/*[in]*/);
  HRESULT         __fastcall AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                                       ksSheetsRangeEnum Range/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                                       ksSheetsRangeEnum Range/*[in]*/);
  HRESULT         __fastcall get_SheetsCount(long* Count/*[out,retval]*/);
  long            __fastcall get_SheetsCount(void);
  HRESULT         __fastcall get_Sheet(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::IPrintJob_SheetPtr* Sheet/*[out,retval]*/);
  Kompasltapi7_tlb::IPrintJob_SheetPtr __fastcall get_Sheet(long Index/*[in]*/);
  HRESULT         __fastcall RemoveSheets(TVariantInParam Index/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveSheets(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_PagesCount(long* Count/*[out,retval]*/);
  long            __fastcall get_PagesCount(void);
  HRESULT         __fastcall GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/);
  HRESULT         __fastcall GetPagesMapGabarites(long* WPageCount/*[out]*/, 
                                                  long* HPageCount/*[out]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPagesMapGabarites(long* WPageCount/*[out]*/, 
                                                  long* HPageCount/*[out]*/);
  HRESULT         __fastcall get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/);
  HRESULT         __fastcall set_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                                   TOLEBOOL Result/*[in]*/);

  __property   long            SheetsCount = {read = get_SheetsCount};
  __property   long            PagesCount = {read = get_PagesCount};
};
typedef TCOMIPrintJobT<IPrintJob> TCOMIPrintJob;

// *********************************************************************//
// DispIntf:  IPrintJob
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D86880B-C004-475D-8221-B786FD5A228B}
// *********************************************************************//
template<class T>
class IPrintJobDispT : public TAutoDriver<IPrintJob>
{
public:
  IPrintJobDispT(){}

  IPrintJobDispT(IPrintJob *pintf)
  {
    TAutoDriver<IPrintJob>::Bind(pintf, false);
  }

  IPrintJobDispT(IPrintJobPtr pintf)
  {
    TAutoDriver<IPrintJob>::Bind(pintf, true);
  }

  IPrintJobDispT& operator=(IPrintJob *pintf)
  {
    TAutoDriver<IPrintJob>::Bind(pintf, false);
    return *this;
  }

  IPrintJobDispT& operator=(IPrintJobPtr pintf)
  {
    TAutoDriver<IPrintJob>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PrintJob));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PrintJob);
  }

  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall ShowPreviewWindow(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ShowPreviewWindow(void);
  HRESULT         __fastcall Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/);
  HRESULT         __fastcall Save(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Save(BSTR FileName/*[in]*/);
  HRESULT         __fastcall Execute(BSTR OutputFileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Execute(BSTR OutputFileName/*[in]*/);
  HRESULT         __fastcall AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                                       ksSheetsRangeEnum Range/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                                       ksSheetsRangeEnum Range/*[in]*/);
  HRESULT         __fastcall get_SheetsCount(long* Count/*[out,retval]*/);
  long            __fastcall get_SheetsCount(void);
  HRESULT         __fastcall get_Sheet(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::IPrintJob_SheetPtr* Sheet/*[out,retval]*/);
  Kompasltapi7_tlb::IPrintJob_SheetPtr __fastcall get_Sheet(long Index/*[in]*/);
  HRESULT         __fastcall RemoveSheets(TVariantInParam Index/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveSheets(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_PagesCount(long* Count/*[out,retval]*/);
  long            __fastcall get_PagesCount(void);
  HRESULT         __fastcall GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/);
  HRESULT         __fastcall GetPagesMapGabarites(long* WPageCount/*[out]*/, 
                                                  long* HPageCount/*[out]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPagesMapGabarites(long* WPageCount/*[out]*/, 
                                                  long* HPageCount/*[out]*/);
  HRESULT         __fastcall get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/);
  HRESULT         __fastcall set_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                                   TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            SheetsCount = {read = get_SheetsCount};
  __property   long            PagesCount = {read = get_PagesCount};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPrintJobDispT<IPrintJob> IPrintJobDisp;

// *********************************************************************//
// SmartIntf: TCOMIPrintJob_Sheet
// Interface: IPrintJob_Sheet
// *********************************************************************//
template <class T /* IPrintJob_Sheet */ >
class TCOMIPrintJob_SheetT : public TComInterface<IPrintJob_Sheet>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPrintJob_SheetT() {}
  TCOMIPrintJob_SheetT(IPrintJob_Sheet *intf, bool addRef = false) : TComInterface<IPrintJob_Sheet>(intf, addRef) {}
  TCOMIPrintJob_SheetT(const TCOMIPrintJob_SheetT& src) : TComInterface<IPrintJob_Sheet>(src) {}
  TCOMIPrintJob_SheetT& operator=(const TCOMIPrintJob_SheetT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DocumentName(BSTR* DocumentName/*[out,retval]*/);
  BSTR            __fastcall get_DocumentName(void);
  HRESULT         __fastcall get_Number(long* Number/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/);
  HRESULT         __fastcall get_Orientation(ksAngleEnum* Value/*[out,retval]*/);
  ksAngleEnum __fastcall get_Orientation(void);
  HRESULT         __fastcall set_Orientation(ksAngleEnum Value/*[in]*/);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall get_ClipFlag(TOLEBOOL* Flag/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ClipFlag(void);
  HRESULT         __fastcall set_ClipFlag(TOLEBOOL Flag/*[in]*/);
  HRESULT         __fastcall GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                                   double* Right/*[out]*/, double* Top/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                                   double* Right/*[out]*/, double* Top/*[out]*/);
  HRESULT         __fastcall SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                                   double Right/*[in]*/, double Top/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                                   double Right/*[in]*/, double Top/*[in]*/);

  __property   BSTR            DocumentName = {read = get_DocumentName};
  __property   long            Number = {read = get_Number};
  __property   ksAngleEnum Orientation = {read = get_Orientation, write = set_Orientation};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   TOLEBOOL        ClipFlag = {read = get_ClipFlag, write = set_ClipFlag};
};
typedef TCOMIPrintJob_SheetT<IPrintJob_Sheet> TCOMIPrintJob_Sheet;

// *********************************************************************//
// DispIntf:  IPrintJob_Sheet
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0EC985BC-81FC-498E-BF15-03DDC870AA33}
// *********************************************************************//
template<class T>
class IPrintJob_SheetDispT : public TAutoDriver<IPrintJob_Sheet>
{
public:
  IPrintJob_SheetDispT(){}

  IPrintJob_SheetDispT(IPrintJob_Sheet *pintf)
  {
    TAutoDriver<IPrintJob_Sheet>::Bind(pintf, false);
  }

  IPrintJob_SheetDispT(IPrintJob_SheetPtr pintf)
  {
    TAutoDriver<IPrintJob_Sheet>::Bind(pintf, true);
  }

  IPrintJob_SheetDispT& operator=(IPrintJob_Sheet *pintf)
  {
    TAutoDriver<IPrintJob_Sheet>::Bind(pintf, false);
    return *this;
  }

  IPrintJob_SheetDispT& operator=(IPrintJob_SheetPtr pintf)
  {
    TAutoDriver<IPrintJob_Sheet>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PrintJob_Sheet));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PrintJob_Sheet);
  }

  HRESULT         __fastcall get_DocumentName(BSTR* DocumentName/*[out,retval]*/);
  BSTR            __fastcall get_DocumentName(void);
  HRESULT         __fastcall get_Number(long* Number/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/);
  HRESULT         __fastcall get_Orientation(ksAngleEnum* Value/*[out,retval]*/);
  ksAngleEnum __fastcall get_Orientation(void);
  HRESULT         __fastcall set_Orientation(ksAngleEnum Value/*[in]*/);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall get_ClipFlag(TOLEBOOL* Flag/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ClipFlag(void);
  HRESULT         __fastcall set_ClipFlag(TOLEBOOL Flag/*[in]*/);
  HRESULT         __fastcall GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                                   double* Right/*[out]*/, double* Top/*[out]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                                   double* Right/*[out]*/, double* Top/*[out]*/);
  HRESULT         __fastcall SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                                   double Right/*[in]*/, double Top/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                                   double Right/*[in]*/, double Top/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            DocumentName = {read = get_DocumentName};
  __property   long            Number = {read = get_Number};
  __property   ksAngleEnum Orientation = {read = get_Orientation, write = set_Orientation};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   TOLEBOOL        ClipFlag = {read = get_ClipFlag, write = set_ClipFlag};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPrintJob_SheetDispT<IPrintJob_Sheet> IPrintJob_SheetDisp;

typedef TComInterface<IKompasDocument2D>  TCOMIKompasDocument2D;

// *********************************************************************//
// DispIntf:  IKompasDocument2D
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {096E62B3-7184-4998-9925-74BB710D8D8E}
// *********************************************************************//
template<class T>
class IKompasDocument2DDispT : public TAutoDriver<IKompasDocument2D>
{
public:
  IKompasDocument2DDispT(){}

  IKompasDocument2DDispT(IKompasDocument2D *pintf)
  {
    TAutoDriver<IKompasDocument2D>::Bind(pintf, false);
  }

  IKompasDocument2DDispT(IKompasDocument2DPtr pintf)
  {
    TAutoDriver<IKompasDocument2D>::Bind(pintf, true);
  }

  IKompasDocument2DDispT& operator=(IKompasDocument2D *pintf)
  {
    TAutoDriver<IKompasDocument2D>::Bind(pintf, false);
    return *this;
  }

  IKompasDocument2DDispT& operator=(IKompasDocument2DPtr pintf)
  {
    TAutoDriver<IKompasDocument2D>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ViewsAndLayersManager(Kompasltapi7_tlb::IViewsAndLayersManagerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewsAndLayersManagerPtr __fastcall get_ViewsAndLayersManager(void);
  HRESULT         __fastcall GetDrawingObjectNotifyResult(LPDISPATCH* Result/*[out,retval]*/);
  LPDISPATCH      __fastcall GetDrawingObjectNotifyResult(void);
  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IViewsAndLayersManagerPtr ViewsAndLayersManager = {read = get_ViewsAndLayersManager};

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IKompasDocument2DDispT<IKompasDocument2D> IKompasDocument2DDisp;

// *********************************************************************//
// SmartIntf: TCOMIViewsAndLayersManager
// Interface: IViewsAndLayersManager
// *********************************************************************//
template <class T /* IViewsAndLayersManager */ >
class TCOMIViewsAndLayersManagerT : public TComInterface<IViewsAndLayersManager>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIViewsAndLayersManagerT() {}
  TCOMIViewsAndLayersManagerT(IViewsAndLayersManager *intf, bool addRef = false) : TComInterface<IViewsAndLayersManager>(intf, addRef) {}
  TCOMIViewsAndLayersManagerT(const TCOMIViewsAndLayersManagerT& src) : TComInterface<IViewsAndLayersManager>(src) {}
  TCOMIViewsAndLayersManagerT& operator=(const TCOMIViewsAndLayersManagerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Views(Kompasltapi7_tlb::IViewsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IViewsPtr __fastcall get_Views(void);
  HRESULT         __fastcall get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupsPtr __fastcall get_LayerGroups(void);

  __property   Kompasltapi7_tlb::IViewsPtr Views = {read = get_Views};
  __property   Kompasltapi7_tlb::ILayerGroupsPtr LayerGroups = {read = get_LayerGroups};
};
typedef TCOMIViewsAndLayersManagerT<IViewsAndLayersManager> TCOMIViewsAndLayersManager;

// *********************************************************************//
// DispIntf:  IViewsAndLayersManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A4737593-578B-4187-8CAD-E1056EB5404B}
// *********************************************************************//
template<class T>
class IViewsAndLayersManagerDispT : public TAutoDriver<IViewsAndLayersManager>
{
public:
  IViewsAndLayersManagerDispT(){}

  IViewsAndLayersManagerDispT(IViewsAndLayersManager *pintf)
  {
    TAutoDriver<IViewsAndLayersManager>::Bind(pintf, false);
  }

  IViewsAndLayersManagerDispT(IViewsAndLayersManagerPtr pintf)
  {
    TAutoDriver<IViewsAndLayersManager>::Bind(pintf, true);
  }

  IViewsAndLayersManagerDispT& operator=(IViewsAndLayersManager *pintf)
  {
    TAutoDriver<IViewsAndLayersManager>::Bind(pintf, false);
    return *this;
  }

  IViewsAndLayersManagerDispT& operator=(IViewsAndLayersManagerPtr pintf)
  {
    TAutoDriver<IViewsAndLayersManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ViewsAndLayersManager));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ViewsAndLayersManager);
  }

  HRESULT         __fastcall get_Views(Kompasltapi7_tlb::IViewsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IViewsPtr __fastcall get_Views(void);
  HRESULT         __fastcall get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupsPtr __fastcall get_LayerGroups(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IViewsPtr Views = {read = get_Views};
  __property   Kompasltapi7_tlb::ILayerGroupsPtr LayerGroups = {read = get_LayerGroups};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IViewsAndLayersManagerDispT<IViewsAndLayersManager> IViewsAndLayersManagerDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingObjects
// Interface: IDrawingObjects
// *********************************************************************//
template <class T /* IDrawingObjects */ >
class TCOMIDrawingObjectsT : public TComInterface<IDrawingObjects>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingObjectsT() {}
  TCOMIDrawingObjectsT(IDrawingObjects *intf, bool addRef = false) : TComInterface<IDrawingObjects>(intf, addRef) {}
  TCOMIDrawingObjectsT(const TCOMIDrawingObjectsT& src) : TComInterface<IDrawingObjects>(src) {}
  TCOMIDrawingObjectsT& operator=(const TCOMIDrawingObjectsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIDrawingObjectsT<IDrawingObjects> TCOMIDrawingObjects;

// *********************************************************************//
// DispIntf:  IDrawingObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3DD7F97B-59CB-4297-A1BA-04E5A7FFF448}
// *********************************************************************//
template<class T>
class IDrawingObjectsDispT : public TAutoDriver<IDrawingObjects>
{
public:
  IDrawingObjectsDispT(){}

  IDrawingObjectsDispT(IDrawingObjects *pintf)
  {
    TAutoDriver<IDrawingObjects>::Bind(pintf, false);
  }

  IDrawingObjectsDispT(IDrawingObjectsPtr pintf)
  {
    TAutoDriver<IDrawingObjects>::Bind(pintf, true);
  }

  IDrawingObjectsDispT& operator=(IDrawingObjects *pintf)
  {
    TAutoDriver<IDrawingObjects>::Bind(pintf, false);
    return *this;
  }

  IDrawingObjectsDispT& operator=(IDrawingObjectsPtr pintf)
  {
    TAutoDriver<IDrawingObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingObjects));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingObjects);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingObjectsDispT<IDrawingObjects> IDrawingObjectsDisp;

// *********************************************************************//
// SmartIntf: TCOMIViews
// Interface: IViews
// *********************************************************************//
template <class T /* IViews */ >
class TCOMIViewsT : public TComInterface<IViews>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIViewsT() {}
  TCOMIViewsT(IViews *intf, bool addRef = false) : TComInterface<IViews>(intf, addRef) {}
  TCOMIViewsT(const TCOMIViewsT& src) : TComInterface<IViews>(src) {}
  TCOMIViewsT& operator=(const TCOMIViewsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_View(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_View(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ViewByNumber(long Numb/*[in]*/, 
                                              Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_ViewByNumber(long Numb/*[in]*/);
  HRESULT         __fastcall Add(LtViewType ViewType/*[in]*/, 
                                 Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall Add(LtViewType ViewType/*[in]*/);
  HRESULT         __fastcall get_ActiveView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_ActiveView(void);
  HRESULT         __fastcall AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                              TVariantInParam ProjectionsTypes/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/, 
                                              double Scale/*[in]*/, double DX/*[in]*/, 
                                              double DY/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                              TVariantInParam ProjectionsTypes/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/, 
                                              double Scale/*[in]*/, double DX/*[in]*/, 
                                              double DY/*[in]*/);

  __property   Kompasltapi7_tlb::IViewPtr ActiveView = {read = get_ActiveView};
};
typedef TCOMIViewsT<IViews> TCOMIViews;

// *********************************************************************//
// DispIntf:  IViews
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CD1B5E6-C1A2-4910-8D0C-97080B14AA3D}
// *********************************************************************//
template<class T>
class IViewsDispT : public TAutoDriver<IViews>
{
public:
  IViewsDispT(){}

  IViewsDispT(IViews *pintf)
  {
    TAutoDriver<IViews>::Bind(pintf, false);
  }

  IViewsDispT(IViewsPtr pintf)
  {
    TAutoDriver<IViews>::Bind(pintf, true);
  }

  IViewsDispT& operator=(IViews *pintf)
  {
    TAutoDriver<IViews>::Bind(pintf, false);
    return *this;
  }

  IViewsDispT& operator=(IViewsPtr pintf)
  {
    TAutoDriver<IViews>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Views));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Views);
  }

  HRESULT         __fastcall get_View(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_View(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ViewByNumber(long Numb/*[in]*/, 
                                              Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_ViewByNumber(long Numb/*[in]*/);
  HRESULT         __fastcall Add(LtViewType ViewType/*[in]*/, 
                                 Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall Add(LtViewType ViewType/*[in]*/);
  HRESULT         __fastcall get_ActiveView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_ActiveView(void);
  HRESULT         __fastcall AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                              TVariantInParam ProjectionsTypes/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/, 
                                              double Scale/*[in]*/, double DX/*[in]*/, 
                                              double DY/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                              TVariantInParam ProjectionsTypes/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/, 
                                              double Scale/*[in]*/, double DX/*[in]*/, 
                                              double DY/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IViewPtr ActiveView = {read = get_ActiveView};


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IViewsDispT<IViews> IViewsDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingObject
// Interface: IDrawingObject
// *********************************************************************//
template <class T /* IDrawingObject */ >
class TCOMIDrawingObjectT : public TComInterface<IDrawingObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingObjectT() {}
  TCOMIDrawingObjectT(IDrawingObject *intf, bool addRef = false) : TComInterface<IDrawingObject>(intf, addRef) {}
  TCOMIDrawingObjectT(const TCOMIDrawingObjectT& src) : TComInterface<IDrawingObject>(src) {}
  TCOMIDrawingObjectT& operator=(const TCOMIDrawingObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};
};
typedef TCOMIDrawingObjectT<IDrawingObject> TCOMIDrawingObject;

// *********************************************************************//
// DispIntf:  IDrawingObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {07EF021F-11C1-4015-8D87-4DC94A2A71B0}
// *********************************************************************//
template<class T>
class IDrawingObjectDispT : public TAutoDriver<IDrawingObject>
{
public:
  IDrawingObjectDispT(){}

  IDrawingObjectDispT(IDrawingObject *pintf)
  {
    TAutoDriver<IDrawingObject>::Bind(pintf, false);
  }

  IDrawingObjectDispT(IDrawingObjectPtr pintf)
  {
    TAutoDriver<IDrawingObject>::Bind(pintf, true);
  }

  IDrawingObjectDispT& operator=(IDrawingObject *pintf)
  {
    TAutoDriver<IDrawingObject>::Bind(pintf, false);
    return *this;
  }

  IDrawingObjectDispT& operator=(IDrawingObjectPtr pintf)
  {
    TAutoDriver<IDrawingObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingObject);
  }

  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingObjectDispT<IDrawingObject> IDrawingObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMIView
// Interface: IView
// *********************************************************************//
template <class T /* IView */ >
class TCOMIViewT : public TComInterface<IView>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIViewT() {}
  TCOMIViewT(IView *intf, bool addRef = false) : TComInterface<IView>(intf, addRef) {}
  TCOMIViewT(const TCOMIViewT& src) : TComInterface<IView>(src) {}
  TCOMIViewT& operator=(const TCOMIViewT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Number(long PVal/*[in]*/);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Background(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Background(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Background(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Current(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall get_ObjectCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectCount(void);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_ViewType(LtViewType* PVal/*[out,retval]*/);
  LtViewType __fastcall get_ViewType(void);
  HRESULT         __fastcall get_Layers(Kompasltapi7_tlb::ILayersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayersPtr __fastcall get_Layers(void);
  HRESULT         __fastcall get_Variables(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Variables(void);
  HRESULT         __fastcall get_Variable(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_VariablesCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VariablesCount(void);

  __property   long            Number = {read = get_Number, write = set_Number};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Background = {read = get_Background, write = set_Background};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   long            ObjectCount = {read = get_ObjectCount};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   LtViewType ViewType = {read = get_ViewType};
  __property   Kompasltapi7_tlb::ILayersPtr Layers = {read = get_Layers};
  __property   long            VariablesCount = {read = get_VariablesCount};
};
typedef TCOMIViewT<IView> TCOMIView;

// *********************************************************************//
// DispIntf:  IView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {21A7BA87-1C8B-41B4-8247-CDD593546F37}
// *********************************************************************//
template<class T>
class IViewDispT : public TAutoDriver<IView>
{
public:
  IViewDispT(){}

  IViewDispT(IView *pintf)
  {
    TAutoDriver<IView>::Bind(pintf, false);
  }

  IViewDispT(IViewPtr pintf)
  {
    TAutoDriver<IView>::Bind(pintf, true);
  }

  IViewDispT& operator=(IView *pintf)
  {
    TAutoDriver<IView>::Bind(pintf, false);
    return *this;
  }

  IViewDispT& operator=(IViewPtr pintf)
  {
    TAutoDriver<IView>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_View));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_View);
  }

  HRESULT         __fastcall set_Number(long PVal/*[in]*/);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Background(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Background(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Background(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Current(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall get_ObjectCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectCount(void);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_ViewType(LtViewType* PVal/*[out,retval]*/);
  LtViewType __fastcall get_ViewType(void);
  HRESULT         __fastcall get_Layers(Kompasltapi7_tlb::ILayersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayersPtr __fastcall get_Layers(void);
  HRESULT         __fastcall get_Variables(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Variables(void);
  HRESULT         __fastcall get_Variable(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_VariablesCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VariablesCount(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Number = {read = get_Number, write = set_Number};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Background = {read = get_Background, write = set_Background};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   long            ObjectCount = {read = get_ObjectCount};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   LtViewType ViewType = {read = get_ViewType};
  __property   Kompasltapi7_tlb::ILayersPtr Layers = {read = get_Layers};
  __property   long            VariablesCount = {read = get_VariablesCount};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IViewDispT<IView> IViewDisp;

// *********************************************************************//
// SmartIntf: TCOMILayers
// Interface: ILayers
// *********************************************************************//
template <class T /* ILayers */ >
class TCOMILayersT : public TComInterface<ILayers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayersT() {}
  TCOMILayersT(ILayers *intf, bool addRef = false) : TComInterface<ILayers>(intf, addRef) {}
  TCOMILayersT(const TCOMILayersT& src) : TComInterface<ILayers>(src) {}
  TCOMILayersT& operator=(const TCOMILayersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Layer(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerPtr __fastcall get_Layer(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_LayerByNumber(long Number/*[in]*/, 
                                               Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerPtr __fastcall get_LayerByNumber(long Number/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerPtr __fastcall Add(void);
  HRESULT         __fastcall Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/);
  HRESULT         __fastcall Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/);

};
typedef TCOMILayersT<ILayers> TCOMILayers;

// *********************************************************************//
// DispIntf:  ILayers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6DC2898-D596-4418-A21A-D15AE07B9A40}
// *********************************************************************//
template<class T>
class ILayersDispT : public TAutoDriver<ILayers>
{
public:
  ILayersDispT(){}

  ILayersDispT(ILayers *pintf)
  {
    TAutoDriver<ILayers>::Bind(pintf, false);
  }

  ILayersDispT(ILayersPtr pintf)
  {
    TAutoDriver<ILayers>::Bind(pintf, true);
  }

  ILayersDispT& operator=(ILayers *pintf)
  {
    TAutoDriver<ILayers>::Bind(pintf, false);
    return *this;
  }

  ILayersDispT& operator=(ILayersPtr pintf)
  {
    TAutoDriver<ILayers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Layers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Layers);
  }

  HRESULT         __fastcall get_Layer(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerPtr __fastcall get_Layer(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_LayerByNumber(long Number/*[in]*/, 
                                               Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerPtr __fastcall get_LayerByNumber(long Number/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerPtr __fastcall Add(void);
  HRESULT         __fastcall Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/);
  HRESULT         __fastcall Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayersDispT<ILayers> ILayersDisp;

// *********************************************************************//
// SmartIntf: TCOMILayer
// Interface: ILayer
// *********************************************************************//
template <class T /* ILayer */ >
class TCOMILayerT : public TComInterface<ILayer>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayerT() {}
  TCOMILayerT(ILayer *intf, bool addRef = false) : TComInterface<ILayer>(intf, addRef) {}
  TCOMILayerT(const TCOMILayerT& src) : TComInterface<ILayer>(src) {}
  TCOMILayerT& operator=(const TCOMILayerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Background(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Background(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Background(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Current(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall get_ObjectCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectCount(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Background = {read = get_Background, write = set_Background};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   long            ObjectCount = {read = get_ObjectCount};
};
typedef TCOMILayerT<ILayer> TCOMILayer;

// *********************************************************************//
// DispIntf:  ILayer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9AD76C38-CC48-4901-AEE5-27B48F51563C}
// *********************************************************************//
template<class T>
class ILayerDispT : public TAutoDriver<ILayer>
{
public:
  ILayerDispT(){}

  ILayerDispT(ILayer *pintf)
  {
    TAutoDriver<ILayer>::Bind(pintf, false);
  }

  ILayerDispT(ILayerPtr pintf)
  {
    TAutoDriver<ILayer>::Bind(pintf, true);
  }

  ILayerDispT& operator=(ILayer *pintf)
  {
    TAutoDriver<ILayer>::Bind(pintf, false);
    return *this;
  }

  ILayerDispT& operator=(ILayerPtr pintf)
  {
    TAutoDriver<ILayer>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Layer));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Layer);
  }

  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Background(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Background(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Background(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Current(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall get_ObjectCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectCount(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Background = {read = get_Background, write = set_Background};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   long            ObjectCount = {read = get_ObjectCount};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayerDispT<ILayer> ILayerDisp;

// *********************************************************************//
// SmartIntf: TCOMIVariable7
// Interface: IVariable7
// *********************************************************************//
template <class T /* IVariable7 */ >
class TCOMIVariable7T : public TComInterface<IVariable7>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIVariable7T() {}
  TCOMIVariable7T(IVariable7 *intf, bool addRef = false) : TComInterface<IVariable7>(intf, addRef) {}
  TCOMIVariable7T(const TCOMIVariable7T& src) : TComInterface<IVariable7>(src) {}
  TCOMIVariable7T& operator=(const TCOMIVariable7T& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Note(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Note(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Note(void);
  HRESULT         __fastcall set_Value(double PVal/*[in]*/);
  HRESULT         __fastcall get_Value(double* PVal/*[out,retval]*/);
  double          __fastcall get_Value(void);
  HRESULT         __fastcall set_External(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_External(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_External(void);
  HRESULT         __fastcall set_Information(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Information(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Information(void);
  HRESULT         __fastcall set_Expression(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Expression(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Expression(void);
  HRESULT         __fastcall get_ParameterNote(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ParameterNote(void);
  HRESULT         __fastcall get_DisplayName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_DisplayName(void);
  HRESULT         __fastcall get_LinkVariableName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LinkVariableName(void);
  HRESULT         __fastcall get_LinkDocumentName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LinkDocumentName(void);
  HRESULT         __fastcall SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);

  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            Note = {read = get_Note, write = set_Note};
  __property   double          Value = {read = get_Value, write = set_Value};
  __property   TOLEBOOL        External = {read = get_External, write = set_External};
  __property   TOLEBOOL        Information = {read = get_Information, write = set_Information};
  __property   BSTR            Expression = {read = get_Expression, write = set_Expression};
  __property   BSTR            ParameterNote = {read = get_ParameterNote};
  __property   BSTR            DisplayName = {read = get_DisplayName};
  __property   BSTR            LinkVariableName = {read = get_LinkVariableName};
  __property   BSTR            LinkDocumentName = {read = get_LinkDocumentName};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
};
typedef TCOMIVariable7T<IVariable7> TCOMIVariable7;

// *********************************************************************//
// DispIntf:  IVariable7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BAB52D9-8EF6-43A6-A1B8-AF42D5961A94}
// *********************************************************************//
template<class T>
class IVariable7DispT : public TAutoDriver<IVariable7>
{
public:
  IVariable7DispT(){}

  IVariable7DispT(IVariable7 *pintf)
  {
    TAutoDriver<IVariable7>::Bind(pintf, false);
  }

  IVariable7DispT(IVariable7Ptr pintf)
  {
    TAutoDriver<IVariable7>::Bind(pintf, true);
  }

  IVariable7DispT& operator=(IVariable7 *pintf)
  {
    TAutoDriver<IVariable7>::Bind(pintf, false);
    return *this;
  }

  IVariable7DispT& operator=(IVariable7Ptr pintf)
  {
    TAutoDriver<IVariable7>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Variable7));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Variable7);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Note(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Note(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Note(void);
  HRESULT         __fastcall set_Value(double PVal/*[in]*/);
  HRESULT         __fastcall get_Value(double* PVal/*[out,retval]*/);
  double          __fastcall get_Value(void);
  HRESULT         __fastcall set_External(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_External(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_External(void);
  HRESULT         __fastcall set_Information(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Information(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Information(void);
  HRESULT         __fastcall set_Expression(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Expression(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Expression(void);
  HRESULT         __fastcall get_ParameterNote(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ParameterNote(void);
  HRESULT         __fastcall get_DisplayName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_DisplayName(void);
  HRESULT         __fastcall get_LinkVariableName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LinkVariableName(void);
  HRESULT         __fastcall get_LinkDocumentName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LinkDocumentName(void);
  HRESULT         __fastcall SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            Note = {read = get_Note, write = set_Note};
  __property   double          Value = {read = get_Value, write = set_Value};
  __property   TOLEBOOL        External = {read = get_External, write = set_External};
  __property   TOLEBOOL        Information = {read = get_Information, write = set_Information};
  __property   BSTR            Expression = {read = get_Expression, write = set_Expression};
  __property   BSTR            ParameterNote = {read = get_ParameterNote};
  __property   BSTR            DisplayName = {read = get_DisplayName};
  __property   BSTR            LinkVariableName = {read = get_LinkVariableName};
  __property   BSTR            LinkDocumentName = {read = get_LinkDocumentName};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IVariable7DispT<IVariable7> IVariable7Disp;

// *********************************************************************//
// SmartIntf: TCOMILayerGroups
// Interface: ILayerGroups
// *********************************************************************//
template <class T /* ILayerGroups */ >
class TCOMILayerGroupsT : public TComInterface<ILayerGroups>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayerGroupsT() {}
  TCOMILayerGroupsT(ILayerGroups *intf, bool addRef = false) : TComInterface<ILayerGroups>(intf, addRef) {}
  TCOMILayerGroupsT(const TCOMILayerGroupsT& src) : TComInterface<ILayerGroups>(src) {}
  TCOMILayerGroupsT& operator=(const TCOMILayerGroupsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, TOLEBOOL Dinamic/*[in]*/, 
                                 Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupPtr __fastcall Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, 
                                                  TOLEBOOL Dinamic/*[in]*/);
  HRESULT         __fastcall Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/);
  HRESULT         __fastcall Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/);

};
typedef TCOMILayerGroupsT<ILayerGroups> TCOMILayerGroups;

// *********************************************************************//
// DispIntf:  ILayerGroups
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DBFF6D98-8F79-453E-9B8B-81E40A6D8027}
// *********************************************************************//
template<class T>
class ILayerGroupsDispT : public TAutoDriver<ILayerGroups>
{
public:
  ILayerGroupsDispT(){}

  ILayerGroupsDispT(ILayerGroups *pintf)
  {
    TAutoDriver<ILayerGroups>::Bind(pintf, false);
  }

  ILayerGroupsDispT(ILayerGroupsPtr pintf)
  {
    TAutoDriver<ILayerGroups>::Bind(pintf, true);
  }

  ILayerGroupsDispT& operator=(ILayerGroups *pintf)
  {
    TAutoDriver<ILayerGroups>::Bind(pintf, false);
    return *this;
  }

  ILayerGroupsDispT& operator=(ILayerGroupsPtr pintf)
  {
    TAutoDriver<ILayerGroups>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LayerGroups));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LayerGroups);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, TOLEBOOL Dinamic/*[in]*/
                                 , Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupPtr __fastcall Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, 
                                                  TOLEBOOL Dinamic/*[in]*/);
  HRESULT         __fastcall Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/);
  HRESULT         __fastcall Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayerGroupsDispT<ILayerGroups> ILayerGroupsDisp;

// *********************************************************************//
// SmartIntf: TCOMILayerGroup
// Interface: ILayerGroup
// *********************************************************************//
template <class T /* ILayerGroup */ >
class TCOMILayerGroupT : public TComInterface<ILayerGroup>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayerGroupT() {}
  TCOMILayerGroupT(ILayerGroup *intf, bool addRef = false) : TComInterface<ILayerGroup>(intf, addRef) {}
  TCOMILayerGroupT(const TCOMILayerGroupT& src) : TComInterface<ILayerGroup>(src) {}
  TCOMILayerGroupT& operator=(const TCOMILayerGroupT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_OwnerGroup(Kompasltapi7_tlb::ILayerGroupPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupPtr __fastcall get_OwnerGroup(void);
  HRESULT         __fastcall get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupsPtr __fastcall get_LayerGroups(void);
  HRESULT         __fastcall get_Layers(Kompasltapi7_tlb::ILayersPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayersPtr __fastcall get_Layers(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_LayerFilterConditions(Kompasltapi7_tlb::ILayerFilterConditionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerFilterConditionsPtr __fastcall get_LayerFilterConditions(void);
  HRESULT         __fastcall GetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL* Visible/*[out]*/, 
                                            TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                            long* Color/*[out]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL* Visible/*[out]*/, 
                                            TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                            long* Color/*[out]*/);
  HRESULT         __fastcall SetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL Visible/*[in]*/, TOLEBOOL Background/*[in]*/, 
                                            TOLEBOOL Curent/*[in]*/, long Color/*[in]*/, 
                                            TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL Visible/*[in]*/, TOLEBOOL Background/*[in]*/, 
                                            TOLEBOOL Curent/*[in]*/, long Color/*[in]*/);
  HRESULT         __fastcall set_Current(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_OwnerView(Kompasltapi7_tlb::IViewPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_OwnerView(void);
  HRESULT         __fastcall set_OwnerView(Kompasltapi7_tlb::IViewPtr PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_UniqueId(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueId(void);

  __property   Kompasltapi7_tlb::ILayerGroupPtr OwnerGroup = {read = get_OwnerGroup};
  __property   Kompasltapi7_tlb::ILayerGroupsPtr LayerGroups = {read = get_LayerGroups};
  __property   Kompasltapi7_tlb::ILayersPtr Layers = {read = get_Layers};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   Kompasltapi7_tlb::ILayerFilterConditionsPtr LayerFilterConditions = {read = get_LayerFilterConditions};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   Kompasltapi7_tlb::IViewPtr OwnerView = {read = get_OwnerView, write = set_OwnerView};
  __property   double          UniqueId = {read = get_UniqueId};
};
typedef TCOMILayerGroupT<ILayerGroup> TCOMILayerGroup;

// *********************************************************************//
// DispIntf:  ILayerGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {265BBB5A-7B8A-4AA5-A0BB-FF64D23BE62B}
// *********************************************************************//
template<class T>
class ILayerGroupDispT : public TAutoDriver<ILayerGroup>
{
public:
  ILayerGroupDispT(){}

  ILayerGroupDispT(ILayerGroup *pintf)
  {
    TAutoDriver<ILayerGroup>::Bind(pintf, false);
  }

  ILayerGroupDispT(ILayerGroupPtr pintf)
  {
    TAutoDriver<ILayerGroup>::Bind(pintf, true);
  }

  ILayerGroupDispT& operator=(ILayerGroup *pintf)
  {
    TAutoDriver<ILayerGroup>::Bind(pintf, false);
    return *this;
  }

  ILayerGroupDispT& operator=(ILayerGroupPtr pintf)
  {
    TAutoDriver<ILayerGroup>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LayerGroup));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LayerGroup);
  }

  HRESULT         __fastcall get_OwnerGroup(Kompasltapi7_tlb::ILayerGroupPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupPtr __fastcall get_OwnerGroup(void);
  HRESULT         __fastcall get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerGroupsPtr __fastcall get_LayerGroups(void);
  HRESULT         __fastcall get_Layers(Kompasltapi7_tlb::ILayersPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayersPtr __fastcall get_Layers(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_LayerFilterConditions(Kompasltapi7_tlb::ILayerFilterConditionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerFilterConditionsPtr __fastcall get_LayerFilterConditions(void);
  HRESULT         __fastcall GetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL* Visible/*[out]*/, 
                                            TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/
                                            , long* Color/*[out]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL* Visible/*[out]*/, 
                                            TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                            long* Color/*[out]*/);
  HRESULT         __fastcall SetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL Visible/*[in]*/, TOLEBOOL Background/*[in]*/, 
                                            TOLEBOOL Curent/*[in]*/, long Color/*[in]*/, 
                                            TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLayerStates(TVariantInParam LayerIndex/*[in]*/, 
                                            TOLEBOOL Visible/*[in]*/, TOLEBOOL Background/*[in]*/, 
                                            TOLEBOOL Curent/*[in]*/, long Color/*[in]*/);
  HRESULT         __fastcall set_Current(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_OwnerView(Kompasltapi7_tlb::IViewPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_OwnerView(void);
  HRESULT         __fastcall set_OwnerView(Kompasltapi7_tlb::IViewPtr PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_UniqueId(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueId(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ILayerGroupPtr OwnerGroup = {read = get_OwnerGroup};
  __property   Kompasltapi7_tlb::ILayerGroupsPtr LayerGroups = {read = get_LayerGroups};
  __property   Kompasltapi7_tlb::ILayersPtr Layers = {read = get_Layers};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   Kompasltapi7_tlb::ILayerFilterConditionsPtr LayerFilterConditions = {read = get_LayerFilterConditions};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   Kompasltapi7_tlb::IViewPtr OwnerView = {read = get_OwnerView, write = set_OwnerView};
  __property   double          UniqueId = {read = get_UniqueId};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayerGroupDispT<ILayerGroup> ILayerGroupDisp;

// *********************************************************************//
// SmartIntf: TCOMILayerFilterConditions
// Interface: ILayerFilterConditions
// *********************************************************************//
template <class T /* ILayerFilterConditions */ >
class TCOMILayerFilterConditionsT : public TComInterface<ILayerFilterConditions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayerFilterConditionsT() {}
  TCOMILayerFilterConditionsT(ILayerFilterConditions *intf, bool addRef = false) : TComInterface<ILayerFilterConditions>(intf, addRef) {}
  TCOMILayerFilterConditionsT(const TCOMILayerFilterConditionsT& src) : TComInterface<ILayerFilterConditions>(src) {}
  TCOMILayerFilterConditionsT& operator=(const TCOMILayerFilterConditionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall Add(void);

};
typedef TCOMILayerFilterConditionsT<ILayerFilterConditions> TCOMILayerFilterConditions;

// *********************************************************************//
// DispIntf:  ILayerFilterConditions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BCA22E27-AB60-4BA6-87EE-92158AA6D366}
// *********************************************************************//
template<class T>
class ILayerFilterConditionsDispT : public TAutoDriver<ILayerFilterConditions>
{
public:
  ILayerFilterConditionsDispT(){}

  ILayerFilterConditionsDispT(ILayerFilterConditions *pintf)
  {
    TAutoDriver<ILayerFilterConditions>::Bind(pintf, false);
  }

  ILayerFilterConditionsDispT(ILayerFilterConditionsPtr pintf)
  {
    TAutoDriver<ILayerFilterConditions>::Bind(pintf, true);
  }

  ILayerFilterConditionsDispT& operator=(ILayerFilterConditions *pintf)
  {
    TAutoDriver<ILayerFilterConditions>::Bind(pintf, false);
    return *this;
  }

  ILayerFilterConditionsDispT& operator=(ILayerFilterConditionsPtr pintf)
  {
    TAutoDriver<ILayerFilterConditions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LayerFilterConditions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LayerFilterConditions);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall Add(void);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayerFilterConditionsDispT<ILayerFilterConditions> ILayerFilterConditionsDisp;

// *********************************************************************//
// SmartIntf: TCOMILayerFilterCondition
// Interface: ILayerFilterCondition
// *********************************************************************//
template <class T /* ILayerFilterCondition */ >
class TCOMILayerFilterConditionT : public TComInterface<ILayerFilterCondition>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILayerFilterConditionT() {}
  TCOMILayerFilterConditionT(ILayerFilterCondition *intf, bool addRef = false) : TComInterface<ILayerFilterCondition>(intf, addRef) {}
  TCOMILayerFilterConditionT(const TCOMILayerFilterConditionT& src) : TComInterface<ILayerFilterCondition>(src) {}
  TCOMILayerFilterConditionT& operator=(const TCOMILayerFilterConditionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Number(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Number(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Number(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Background(FilterCondotionStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Background(FilterCondotionStateEnum* PVal/*[out,retval]*/);
  FilterCondotionStateEnum __fastcall get_Background(void);
  HRESULT         __fastcall set_Visible(FilterCondotionStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Visible(FilterCondotionStateEnum* PVal/*[out,retval]*/);
  FilterCondotionStateEnum __fastcall get_Visible(void);
  HRESULT         __fastcall set_HaveObjects(FilterCondotionStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_HaveObjects(FilterCondotionStateEnum* PVal/*[out,retval]*/);
  FilterCondotionStateEnum __fastcall get_HaveObjects(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);

  __property   BSTR            Number = {read = get_Number, write = set_Number};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   FilterCondotionStateEnum Background = {read = get_Background, write = set_Background};
  __property   FilterCondotionStateEnum Visible = {read = get_Visible, write = set_Visible};
  __property   FilterCondotionStateEnum HaveObjects = {read = get_HaveObjects, write = set_HaveObjects};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
};
typedef TCOMILayerFilterConditionT<ILayerFilterCondition> TCOMILayerFilterCondition;

// *********************************************************************//
// DispIntf:  ILayerFilterCondition
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D743BC12-82A9-4E8F-85B2-7154A356ACC0}
// *********************************************************************//
template<class T>
class ILayerFilterConditionDispT : public TAutoDriver<ILayerFilterCondition>
{
public:
  ILayerFilterConditionDispT(){}

  ILayerFilterConditionDispT(ILayerFilterCondition *pintf)
  {
    TAutoDriver<ILayerFilterCondition>::Bind(pintf, false);
  }

  ILayerFilterConditionDispT(ILayerFilterConditionPtr pintf)
  {
    TAutoDriver<ILayerFilterCondition>::Bind(pintf, true);
  }

  ILayerFilterConditionDispT& operator=(ILayerFilterCondition *pintf)
  {
    TAutoDriver<ILayerFilterCondition>::Bind(pintf, false);
    return *this;
  }

  ILayerFilterConditionDispT& operator=(ILayerFilterConditionPtr pintf)
  {
    TAutoDriver<ILayerFilterCondition>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LayerFilterCondition));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LayerFilterCondition);
  }

  HRESULT         __fastcall set_Number(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Number(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Number(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Background(FilterCondotionStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Background(FilterCondotionStateEnum* PVal/*[out,retval]*/);
  FilterCondotionStateEnum __fastcall get_Background(void);
  HRESULT         __fastcall set_Visible(FilterCondotionStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Visible(FilterCondotionStateEnum* PVal/*[out,retval]*/);
  FilterCondotionStateEnum __fastcall get_Visible(void);
  HRESULT         __fastcall set_HaveObjects(FilterCondotionStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_HaveObjects(FilterCondotionStateEnum* PVal/*[out,retval]*/);
  FilterCondotionStateEnum __fastcall get_HaveObjects(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Number = {read = get_Number, write = set_Number};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   FilterCondotionStateEnum Background = {read = get_Background, write = set_Background};
  __property   FilterCondotionStateEnum Visible = {read = get_Visible, write = set_Visible};
  __property   FilterCondotionStateEnum HaveObjects = {read = get_HaveObjects, write = set_HaveObjects};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILayerFilterConditionDispT<ILayerFilterCondition> ILayerFilterConditionDisp;

// *********************************************************************//
// SmartIntf: TCOMIKompasDocument3D
// Interface: IKompasDocument3D
// *********************************************************************//
template <class T /* IKompasDocument3D */ >
class TCOMIKompasDocument3DT : public TComInterface<IKompasDocument3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIKompasDocument3DT() {}
  TCOMIKompasDocument3DT(IKompasDocument3D *intf, bool addRef = false) : TComInterface<IKompasDocument3D>(intf, addRef) {}
  TCOMIKompasDocument3DT(const TCOMIKompasDocument3DT& src) : TComInterface<IKompasDocument3D>(src) {}
  TCOMIKompasDocument3DT& operator=(const TCOMIKompasDocument3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_TopPart(void);
  HRESULT         __fastcall set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlanes(void);
  HRESULT         __fastcall set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAxis(void);
  HRESULT         __fastcall set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSketches(void);
  HRESULT         __fastcall set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlaces(void);
  HRESULT         __fastcall set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSurfaces(void);
  HRESULT         __fastcall set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllThreads(void);
  HRESULT         __fastcall set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllCurves(void);
  HRESULT         __fastcall set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllControlPoints(void);
  HRESULT         __fastcall set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Perspective(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Perspective(void);
  HRESULT         __fastcall set_DrawMode(long PVal/*[in]*/);
  HRESULT         __fastcall get_DrawMode(long* PVal/*[out,retval]*/);
  long            __fastcall get_DrawMode(void);
  HRESULT         __fastcall set_ShadedWireframe(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShadedWireframe(void);
  HRESULT         __fastcall set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateObjectsInCurrentLocalCS(void);
  HRESULT         __fastcall set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDimensions(void);
  HRESULT         __fastcall set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDesignations(void);
  HRESULT         __fastcall set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAuxiliaryGeom(void);
  HRESULT         __fastcall set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideInComponentsMode(void);
  HRESULT         __fastcall get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISelectionManagerPtr __fastcall get_SelectionManager(void);
  HRESULT         __fastcall get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IChooseManagerPtr __fastcall get_ChooseManager(void);
  HRESULT         __fastcall CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                          TVariantInParam Objects/*[in]*/, 
                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                          Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributePtr __fastcall CreateAttrEx(double AttrID/*[in]*/, 
                                                          BSTR Libname/*[in]*/, 
                                                          TVariantInParam Objects/*[in]*/, 
                                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);
  HRESULT         __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);

  __property   Kompasltapi7_tlb::IPart7Ptr TopPart = {read = get_TopPart};
  __property   TOLEBOOL        HideAllPlanes = {read = get_HideAllPlanes, write = set_HideAllPlanes};
  __property   TOLEBOOL        HideAllAxis = {read = get_HideAllAxis, write = set_HideAllAxis};
  __property   TOLEBOOL        HideAllSketches = {read = get_HideAllSketches, write = set_HideAllSketches};
  __property   TOLEBOOL        HideAllPlaces = {read = get_HideAllPlaces, write = set_HideAllPlaces};
  __property   TOLEBOOL        HideAllSurfaces = {read = get_HideAllSurfaces, write = set_HideAllSurfaces};
  __property   TOLEBOOL        HideAllThreads = {read = get_HideAllThreads, write = set_HideAllThreads};
  __property   TOLEBOOL        HideAllCurves = {read = get_HideAllCurves, write = set_HideAllCurves};
  __property   TOLEBOOL        HideAllControlPoints = {read = get_HideAllControlPoints, write = set_HideAllControlPoints};
  __property   TOLEBOOL        Perspective = {read = get_Perspective, write = set_Perspective};
  __property   long            DrawMode = {read = get_DrawMode, write = set_DrawMode};
  __property   TOLEBOOL        ShadedWireframe = {read = get_ShadedWireframe, write = set_ShadedWireframe};
  __property   TOLEBOOL        CreateObjectsInCurrentLocalCS = {read = get_CreateObjectsInCurrentLocalCS, write = set_CreateObjectsInCurrentLocalCS};
  __property   TOLEBOOL        HideAllDimensions = {read = get_HideAllDimensions, write = set_HideAllDimensions};
  __property   TOLEBOOL        HideAllDesignations = {read = get_HideAllDesignations, write = set_HideAllDesignations};
  __property   TOLEBOOL        HideAllAuxiliaryGeom = {read = get_HideAllAuxiliaryGeom, write = set_HideAllAuxiliaryGeom};
  __property   TOLEBOOL        HideInComponentsMode = {read = get_HideInComponentsMode, write = set_HideInComponentsMode};
  __property   Kompasltapi7_tlb::ISelectionManagerPtr SelectionManager = {read = get_SelectionManager};
  __property   Kompasltapi7_tlb::IChooseManagerPtr ChooseManager = {read = get_ChooseManager};
};
typedef TCOMIKompasDocument3DT<IKompasDocument3D> TCOMIKompasDocument3D;

// *********************************************************************//
// DispIntf:  IKompasDocument3D
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7B60E769-06C3-4FDC-9677-7B5EF5180308}
// *********************************************************************//
template<class T>
class IKompasDocument3DDispT : public TAutoDriver<IKompasDocument3D>
{
public:
  IKompasDocument3DDispT(){}

  IKompasDocument3DDispT(IKompasDocument3D *pintf)
  {
    TAutoDriver<IKompasDocument3D>::Bind(pintf, false);
  }

  IKompasDocument3DDispT(IKompasDocument3DPtr pintf)
  {
    TAutoDriver<IKompasDocument3D>::Bind(pintf, true);
  }

  IKompasDocument3DDispT& operator=(IKompasDocument3D *pintf)
  {
    TAutoDriver<IKompasDocument3D>::Bind(pintf, false);
    return *this;
  }

  IKompasDocument3DDispT& operator=(IKompasDocument3DPtr pintf)
  {
    TAutoDriver<IKompasDocument3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_KompasDocument3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_KompasDocument3D);
  }

  HRESULT         __fastcall get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_TopPart(void);
  HRESULT         __fastcall set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlanes(void);
  HRESULT         __fastcall set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAxis(void);
  HRESULT         __fastcall set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSketches(void);
  HRESULT         __fastcall set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlaces(void);
  HRESULT         __fastcall set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSurfaces(void);
  HRESULT         __fastcall set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllThreads(void);
  HRESULT         __fastcall set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllCurves(void);
  HRESULT         __fastcall set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllControlPoints(void);
  HRESULT         __fastcall set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Perspective(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Perspective(void);
  HRESULT         __fastcall set_DrawMode(long PVal/*[in]*/);
  HRESULT         __fastcall get_DrawMode(long* PVal/*[out,retval]*/);
  long            __fastcall get_DrawMode(void);
  HRESULT         __fastcall set_ShadedWireframe(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShadedWireframe(void);
  HRESULT         __fastcall set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateObjectsInCurrentLocalCS(void);
  HRESULT         __fastcall set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDimensions(void);
  HRESULT         __fastcall set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDesignations(void);
  HRESULT         __fastcall set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAuxiliaryGeom(void);
  HRESULT         __fastcall set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideInComponentsMode(void);
  HRESULT         __fastcall get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISelectionManagerPtr __fastcall get_SelectionManager(void);
  HRESULT         __fastcall get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IChooseManagerPtr __fastcall get_ChooseManager(void);
  HRESULT         __fastcall CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                          TVariantInParam Objects/*[in]*/, 
                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                          Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributePtr __fastcall CreateAttrEx(double AttrID/*[in]*/, 
                                                          BSTR Libname/*[in]*/, 
                                                          TVariantInParam Objects/*[in]*/, 
                                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);
  HRESULT         __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);
  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IPart7Ptr TopPart = {read = get_TopPart};
  __property   TOLEBOOL        HideAllPlanes = {read = get_HideAllPlanes, write = set_HideAllPlanes};
  __property   TOLEBOOL        HideAllAxis = {read = get_HideAllAxis, write = set_HideAllAxis};
  __property   TOLEBOOL        HideAllSketches = {read = get_HideAllSketches, write = set_HideAllSketches};
  __property   TOLEBOOL        HideAllPlaces = {read = get_HideAllPlaces, write = set_HideAllPlaces};
  __property   TOLEBOOL        HideAllSurfaces = {read = get_HideAllSurfaces, write = set_HideAllSurfaces};
  __property   TOLEBOOL        HideAllThreads = {read = get_HideAllThreads, write = set_HideAllThreads};
  __property   TOLEBOOL        HideAllCurves = {read = get_HideAllCurves, write = set_HideAllCurves};
  __property   TOLEBOOL        HideAllControlPoints = {read = get_HideAllControlPoints, write = set_HideAllControlPoints};
  __property   TOLEBOOL        Perspective = {read = get_Perspective, write = set_Perspective};
  __property   long            DrawMode = {read = get_DrawMode, write = set_DrawMode};
  __property   TOLEBOOL        ShadedWireframe = {read = get_ShadedWireframe, write = set_ShadedWireframe};
  __property   TOLEBOOL        CreateObjectsInCurrentLocalCS = {read = get_CreateObjectsInCurrentLocalCS, write = set_CreateObjectsInCurrentLocalCS};
  __property   TOLEBOOL        HideAllDimensions = {read = get_HideAllDimensions, write = set_HideAllDimensions};
  __property   TOLEBOOL        HideAllDesignations = {read = get_HideAllDesignations, write = set_HideAllDesignations};
  __property   TOLEBOOL        HideAllAuxiliaryGeom = {read = get_HideAllAuxiliaryGeom, write = set_HideAllAuxiliaryGeom};
  __property   TOLEBOOL        HideInComponentsMode = {read = get_HideInComponentsMode, write = set_HideInComponentsMode};
  __property   Kompasltapi7_tlb::ISelectionManagerPtr SelectionManager = {read = get_SelectionManager};
  __property   Kompasltapi7_tlb::IChooseManagerPtr ChooseManager = {read = get_ChooseManager};

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IKompasDocument3DDispT<IKompasDocument3D> IKompasDocument3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIModelObject
// Interface: IModelObject
// *********************************************************************//
template <class T /* IModelObject */ >
class TCOMIModelObjectT : public TComInterface<IModelObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIModelObjectT() {}
  TCOMIModelObjectT(IModelObject *intf, bool addRef = false) : TComInterface<IModelObject>(intf, addRef) {}
  TCOMIModelObjectT(const TCOMIModelObjectT& src) : TComInterface<IModelObject>(src) {}
  TCOMIModelObjectT& operator=(const TCOMIModelObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};
};
typedef TCOMIModelObjectT<IModelObject> TCOMIModelObject;

// *********************************************************************//
// DispIntf:  IModelObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E37256D4-9021-47AC-8FAF-3713FB2A50C3}
// *********************************************************************//
template<class T>
class IModelObjectDispT : public TAutoDriver<IModelObject>
{
public:
  IModelObjectDispT(){}

  IModelObjectDispT(IModelObject *pintf)
  {
    TAutoDriver<IModelObject>::Bind(pintf, false);
  }

  IModelObjectDispT(IModelObjectPtr pintf)
  {
    TAutoDriver<IModelObject>::Bind(pintf, true);
  }

  IModelObjectDispT& operator=(IModelObject *pintf)
  {
    TAutoDriver<IModelObject>::Bind(pintf, false);
    return *this;
  }

  IModelObjectDispT& operator=(IModelObjectPtr pintf)
  {
    TAutoDriver<IModelObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ModelObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ModelObject);
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IModelObjectDispT<IModelObject> IModelObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMIPart7
// Interface: IPart7
// *********************************************************************//
template <class T /* IPart7 */ >
class TCOMIPart7T : public TComInterface<IPart7>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPart7T() {}
  TCOMIPart7T(IPart7 *intf, bool addRef = false) : TComInterface<IPart7>(intf, addRef) {}
  TCOMIPart7T(const TCOMIPart7T& src) : TComInterface<IPart7>(src) {}
  TCOMIPart7T& operator=(const TCOMIPart7T& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Marking(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Marking(void);
  HRESULT         __fastcall set_Marking(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Standard(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Standard(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Standard(void);
  HRESULT         __fastcall set_Fixed(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Fixed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Fixed(void);
  HRESULT         __fastcall get_Detail(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Detail(void);
  HRESULT         __fastcall get_Mass(double* PVal/*[out,retval]*/);
  double          __fastcall get_Mass(void);
  HRESULT         __fastcall get_Density(double* PVal/*[out,retval]*/);
  double          __fastcall get_Density(void);
  HRESULT         __fastcall get_Material(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Material(void);
  HRESULT         __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/);
  HRESULT         __fastcall get_Parts(Kompasltapi7_tlb::IParts7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IParts7Ptr __fastcall get_Parts(void);
  HRESULT         __fastcall get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariableTablePtr __fastcall get_VariableTable(void);
  HRESULT         __fastcall get_PartsEx(TVariantInParam PartCollectionType/*[in]*/, 
                                         TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_PartsEx(TVariantInParam PartCollectionType/*[in]*/);
  HRESULT         __fastcall get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/, 
                                               long* Count/*[out,retval]*/);
  long            __fastcall get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/);
  HRESULT         __fastcall SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, 
                                           double Y/*[in]*/, double Z/*[in]*/, 
                                           TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, 
                                           double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall TransferObjects(TVariantInParam Objects/*[in]*/, 
                                             Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                             TOLEBOOL holdPosition/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall TransferObjects(TVariantInParam Objects/*[in]*/, 
                                             Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                             TOLEBOOL holdPosition/*[in]*/);
  HRESULT         __fastcall Load(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Load(TOLEBOOL Full/*[in]*/);
  HRESULT         __fastcall Unload(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Unload(TOLEBOOL Full/*[in]*/);
  HRESULT         __fastcall get_LoadState(ksLoadStateEnum* Type/*[out,retval]*/);
  ksLoadStateEnum __fastcall get_LoadState(void);
  HRESULT         __fastcall get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/);

  __property   BSTR            Marking = {read = get_Marking, write = set_Marking};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        Standard = {read = get_Standard, write = set_Standard};
  __property   TOLEBOOL        Fixed = {read = get_Fixed, write = set_Fixed};
  __property   TOLEBOOL        Detail = {read = get_Detail};
  __property   double          Mass = {read = get_Mass};
  __property   double          Density = {read = get_Density};
  __property   BSTR            Material = {read = get_Material};
  __property   Kompasltapi7_tlb::IParts7Ptr Parts = {read = get_Parts};
  __property   Kompasltapi7_tlb::IVariableTablePtr VariableTable = {read = get_VariableTable};
  __property   ksLoadStateEnum LoadState = {read = get_LoadState};
};
typedef TCOMIPart7T<IPart7> TCOMIPart7;

// *********************************************************************//
// DispIntf:  IPart7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA4A5FDE-A08C-4F5A-8C04-98395BA44307}
// *********************************************************************//
template<class T>
class IPart7DispT : public TAutoDriver<IPart7>
{
public:
  IPart7DispT(){}

  IPart7DispT(IPart7 *pintf)
  {
    TAutoDriver<IPart7>::Bind(pintf, false);
  }

  IPart7DispT(IPart7Ptr pintf)
  {
    TAutoDriver<IPart7>::Bind(pintf, true);
  }

  IPart7DispT& operator=(IPart7 *pintf)
  {
    TAutoDriver<IPart7>::Bind(pintf, false);
    return *this;
  }

  IPart7DispT& operator=(IPart7Ptr pintf)
  {
    TAutoDriver<IPart7>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Part7));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Part7);
  }

  HRESULT         __fastcall get_Marking(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Marking(void);
  HRESULT         __fastcall set_Marking(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Standard(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Standard(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Standard(void);
  HRESULT         __fastcall set_Fixed(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Fixed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Fixed(void);
  HRESULT         __fastcall get_Detail(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Detail(void);
  HRESULT         __fastcall get_Mass(double* PVal/*[out,retval]*/);
  double          __fastcall get_Mass(void);
  HRESULT         __fastcall get_Density(double* PVal/*[out,retval]*/);
  double          __fastcall get_Density(void);
  HRESULT         __fastcall get_Material(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Material(void);
  HRESULT         __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/);
  HRESULT         __fastcall get_Parts(Kompasltapi7_tlb::IParts7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IParts7Ptr __fastcall get_Parts(void);
  HRESULT         __fastcall get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariableTablePtr __fastcall get_VariableTable(void);
  HRESULT         __fastcall get_PartsEx(TVariantInParam PartCollectionType/*[in]*/, 
                                         TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_PartsEx(TVariantInParam PartCollectionType/*[in]*/);
  HRESULT         __fastcall get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/, 
                                               long* Count/*[out,retval]*/);
  long            __fastcall get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/);
  HRESULT         __fastcall SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, 
                                           double Y/*[in]*/, double Z/*[in]*/, 
                                           TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, 
                                           double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall TransferObjects(TVariantInParam Objects/*[in]*/, 
                                             Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/
                                             , TOLEBOOL holdPosition/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall TransferObjects(TVariantInParam Objects/*[in]*/, 
                                             Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                             TOLEBOOL holdPosition/*[in]*/);
  HRESULT         __fastcall Load(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Load(TOLEBOOL Full/*[in]*/);
  HRESULT         __fastcall Unload(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Unload(TOLEBOOL Full/*[in]*/);
  HRESULT         __fastcall get_LoadState(ksLoadStateEnum* Type/*[out,retval]*/);
  ksLoadStateEnum __fastcall get_LoadState(void);
  HRESULT         __fastcall get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/
                                               , 
                                               Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Marking = {read = get_Marking, write = set_Marking};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        Standard = {read = get_Standard, write = set_Standard};
  __property   TOLEBOOL        Fixed = {read = get_Fixed, write = set_Fixed};
  __property   TOLEBOOL        Detail = {read = get_Detail};
  __property   double          Mass = {read = get_Mass};
  __property   double          Density = {read = get_Density};
  __property   BSTR            Material = {read = get_Material};
  __property   Kompasltapi7_tlb::IParts7Ptr Parts = {read = get_Parts};
  __property   Kompasltapi7_tlb::IVariableTablePtr VariableTable = {read = get_VariableTable};
  __property   ksLoadStateEnum LoadState = {read = get_LoadState};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPart7DispT<IPart7> IPart7Disp;

typedef TComInterface<IFeature7>  TCOMIFeature7;

// *********************************************************************//
// DispIntf:  IFeature7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EF4343FA-985D-4FE9-AD5F-439BC8F92958}
// *********************************************************************//
template<class T>
class IFeature7DispT : public TAutoDriver<IFeature7>
{
public:
  IFeature7DispT(){}

  IFeature7DispT(IFeature7 *pintf)
  {
    TAutoDriver<IFeature7>::Bind(pintf, false);
  }

  IFeature7DispT(IFeature7Ptr pintf)
  {
    TAutoDriver<IFeature7>::Bind(pintf, true);
  }

  IFeature7DispT& operator=(IFeature7 *pintf)
  {
    TAutoDriver<IFeature7>::Bind(pintf, false);
    return *this;
  }

  IFeature7DispT& operator=(IFeature7Ptr pintf)
  {
    TAutoDriver<IFeature7>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_UpdateStamp(long* PVal/*[out,retval]*/);
  long            __fastcall get_UpdateStamp(void);
  HRESULT         __fastcall get_OwnerFeature(Kompasltapi7_tlb::IFeature7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_OwnerFeature(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall set_Excluded(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Excluded(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Excluded(void);
  HRESULT         __fastcall get_ModelObjects(TVariantInParam ObjType/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_ModelObjects(TVariantInParam ObjType/*[in]*/);
  HRESULT         __fastcall get_FeatureType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_FeatureType(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_SubFeatures(ksTreeTypeEnum TreeType/*[in]*/, 
                                             TOLEBOOL Through/*[in]*/, TOLEBOOL LibObject/*[in]*/, 
                                             TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_SubFeatures(ksTreeTypeEnum TreeType/*[in]*/, 
                                             TOLEBOOL Through/*[in]*/, TOLEBOOL LibObject/*[in]*/);
  HRESULT         __fastcall get_ResultBodies(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_ResultBodies(void);

  __property   BSTR            Name = {read = get_Name};
  __property   long            UpdateStamp = {read = get_UpdateStamp};
  __property   Kompasltapi7_tlb::IFeature7Ptr OwnerFeature = {read = get_OwnerFeature};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   TOLEBOOL        Excluded = {read = get_Excluded, write = set_Excluded};
  __property   ksObj3dTypeEnum FeatureType = {read = get_FeatureType};
};
typedef IFeature7DispT<IFeature7> IFeature7Disp;

// *********************************************************************//
// SmartIntf: TCOMIModelObjects
// Interface: IModelObjects
// *********************************************************************//
template <class T /* IModelObjects */ >
class TCOMIModelObjectsT : public TComInterface<IModelObjects>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIModelObjectsT() {}
  TCOMIModelObjectsT(IModelObjects *intf, bool addRef = false) : TComInterface<IModelObjects>(intf, addRef) {}
  TCOMIModelObjectsT(const TCOMIModelObjectsT& src) : TComInterface<IModelObjects>(src) {}
  TCOMIModelObjectsT& operator=(const TCOMIModelObjectsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);

};
typedef TCOMIModelObjectsT<IModelObjects> TCOMIModelObjects;

// *********************************************************************//
// DispIntf:  IModelObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {125CB096-639E-479F-98DE-F27FAB23838A}
// *********************************************************************//
template<class T>
class IModelObjectsDispT : public TAutoDriver<IModelObjects>
{
public:
  IModelObjectsDispT(){}

  IModelObjectsDispT(IModelObjects *pintf)
  {
    TAutoDriver<IModelObjects>::Bind(pintf, false);
  }

  IModelObjectsDispT(IModelObjectsPtr pintf)
  {
    TAutoDriver<IModelObjects>::Bind(pintf, true);
  }

  IModelObjectsDispT& operator=(IModelObjects *pintf)
  {
    TAutoDriver<IModelObjects>::Bind(pintf, false);
    return *this;
  }

  IModelObjectsDispT& operator=(IModelObjectsPtr pintf)
  {
    TAutoDriver<IModelObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ModelObjects));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ModelObjects);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IModelObjectsDispT<IModelObjects> IModelObjectsDisp;

// *********************************************************************//
// SmartIntf: TCOMIParts7
// Interface: IParts7
// *********************************************************************//
template <class T /* IParts7 */ >
class TCOMIParts7T : public TComInterface<IParts7>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIParts7T() {}
  TCOMIParts7T(IParts7 *intf, bool addRef = false) : TComInterface<IParts7>(intf, addRef) {}
  TCOMIParts7T(const TCOMIParts7T& src) : TComInterface<IParts7>(src) {}
  TCOMIParts7T& operator=(const TCOMIParts7T& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Part(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall AddFromFile(BSTR FileName/*[in]*/, 
                                         TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                                         TOLEBOOL Redraw/*[in,def,opt]*/, 
                                         Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall AddFromFile(BSTR FileName/*[in]*/, 
                                                     TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                                                     TOLEBOOL Redraw/*[in,def,opt]*/);
  HRESULT         __fastcall Add(BSTR FileName/*[in]*/, 
                                 Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/, 
                                 Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall Add(BSTR FileName/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/);

};
typedef TCOMIParts7T<IParts7> TCOMIParts7;

// *********************************************************************//
// DispIntf:  IParts7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42F8FCEF-E56F-466C-8814-BEBAC0719AE6}
// *********************************************************************//
template<class T>
class IParts7DispT : public TAutoDriver<IParts7>
{
public:
  IParts7DispT(){}

  IParts7DispT(IParts7 *pintf)
  {
    TAutoDriver<IParts7>::Bind(pintf, false);
  }

  IParts7DispT(IParts7Ptr pintf)
  {
    TAutoDriver<IParts7>::Bind(pintf, true);
  }

  IParts7DispT& operator=(IParts7 *pintf)
  {
    TAutoDriver<IParts7>::Bind(pintf, false);
    return *this;
  }

  IParts7DispT& operator=(IParts7Ptr pintf)
  {
    TAutoDriver<IParts7>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Parts7));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Parts7);
  }

  HRESULT         __fastcall get_Part(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall AddFromFile(BSTR FileName/*[in]*/, 
                                         TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                                         TOLEBOOL Redraw/*[in,def,opt]*/, 
                                         Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall AddFromFile(BSTR FileName/*[in]*/, 
                                                     TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                                                     TOLEBOOL Redraw/*[in,def,opt]*/);
  HRESULT         __fastcall Add(BSTR FileName/*[in]*/, 
                                 Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/, 
                                 Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall Add(BSTR FileName/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IParts7DispT<IParts7> IParts7Disp;

// *********************************************************************//
// SmartIntf: TCOMIVariableTable
// Interface: IVariableTable
// *********************************************************************//
template <class T /* IVariableTable */ >
class TCOMIVariableTableT : public TComInterface<IVariableTable>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIVariableTableT() {}
  TCOMIVariableTableT(IVariableTable *intf, bool addRef = false) : TComInterface<IVariableTable>(intf, addRef) {}
  TCOMIVariableTableT(const TCOMIVariableTableT& src) : TComInterface<IVariableTable>(src) {}
  TCOMIVariableTableT& operator=(const TCOMIVariableTableT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_RowsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_RowsCount(void);
  HRESULT         __fastcall get_ColumnsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_ColumnsCount(void);
  HRESULT         __fastcall get_VarName(long Column/*[in]*/, BSTR* Val/*[out,retval]*/);
  BSTR            __fastcall get_VarName(long Column/*[in]*/);
  HRESULT         __fastcall set_VarName(long Column/*[in]*/, BSTR Val/*[in]*/);
  HRESULT         __fastcall get_VarNames(TVariant* Val/*[out,retval]*/);
  TVariant        __fastcall get_VarNames(void);
  HRESULT         __fastcall set_VarNames(TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall get_Comment(long Val/*[in]*/, BSTR* BstrVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(long Val/*[in]*/);
  HRESULT         __fastcall set_Comment(long Val/*[in]*/, BSTR BstrVal/*[in]*/);
  HRESULT         __fastcall get_TableRow(TVariantInParam Index/*[in]*/, 
                                          TVariant* Val/*[out,retval]*/);
  TVariant        __fastcall get_TableRow(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall set_TableRow(TVariantInParam Index/*[in]*/, TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                      double* Val/*[out,retval]*/);
  double          __fastcall get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/);
  HRESULT         __fastcall set_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                      double Val/*[in]*/);
  HRESULT         __fastcall ApplyVars(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall ApplyVars(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/, 
                                             long* PVal/*[out,retval]*/);
  long            __fastcall get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/);
  HRESULT         __fastcall AddColumn(BSTR Val/*[in]*/, long* ColVal/*[out,retval]*/);
  long            __fastcall AddColumn(BSTR Val/*[in]*/);
  HRESULT         __fastcall DeleteColumn(TVariantInParam ColVal/*[in]*/, 
                                          TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteColumn(TVariantInParam ColVal/*[in]*/);
  HRESULT         __fastcall AddRow(BSTR Val/*[in]*/, long* RowVal/*[out,retval]*/);
  long            __fastcall AddRow(BSTR Val/*[in]*/);
  HRESULT         __fastcall DeleteRow(TVariantInParam RowVal/*[in]*/, 
                                       TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteRow(TVariantInParam RowVal/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall FindColumnIndex(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall FindColumnIndex(BSTR Val/*[in]*/);

  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};
};
typedef TCOMIVariableTableT<IVariableTable> TCOMIVariableTable;

// *********************************************************************//
// DispIntf:  IVariableTable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2B8B154E-ED76-4FF0-B3E4-FEE691D014A4}
// *********************************************************************//
template<class T>
class IVariableTableDispT : public TAutoDriver<IVariableTable>
{
public:
  IVariableTableDispT(){}

  IVariableTableDispT(IVariableTable *pintf)
  {
    TAutoDriver<IVariableTable>::Bind(pintf, false);
  }

  IVariableTableDispT(IVariableTablePtr pintf)
  {
    TAutoDriver<IVariableTable>::Bind(pintf, true);
  }

  IVariableTableDispT& operator=(IVariableTable *pintf)
  {
    TAutoDriver<IVariableTable>::Bind(pintf, false);
    return *this;
  }

  IVariableTableDispT& operator=(IVariableTablePtr pintf)
  {
    TAutoDriver<IVariableTable>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_VariableTable));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_VariableTable);
  }

  HRESULT         __fastcall get_RowsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_RowsCount(void);
  HRESULT         __fastcall get_ColumnsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_ColumnsCount(void);
  HRESULT         __fastcall get_VarName(long Column/*[in]*/, BSTR* Val/*[out,retval]*/);
  BSTR            __fastcall get_VarName(long Column/*[in]*/);
  HRESULT         __fastcall set_VarName(long Column/*[in]*/, BSTR Val/*[in]*/);
  HRESULT         __fastcall get_VarNames(TVariant* Val/*[out,retval]*/);
  TVariant        __fastcall get_VarNames(void);
  HRESULT         __fastcall set_VarNames(TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall get_Comment(long Val/*[in]*/, BSTR* BstrVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(long Val/*[in]*/);
  HRESULT         __fastcall set_Comment(long Val/*[in]*/, BSTR BstrVal/*[in]*/);
  HRESULT         __fastcall get_TableRow(TVariantInParam Index/*[in]*/, 
                                          TVariant* Val/*[out,retval]*/);
  TVariant        __fastcall get_TableRow(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall set_TableRow(TVariantInParam Index/*[in]*/, TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                      double* Val/*[out,retval]*/);
  double          __fastcall get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/);
  HRESULT         __fastcall set_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                      double Val/*[in]*/);
  HRESULT         __fastcall ApplyVars(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall ApplyVars(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/, 
                                             long* PVal/*[out,retval]*/);
  long            __fastcall get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/);
  HRESULT         __fastcall AddColumn(BSTR Val/*[in]*/, long* ColVal/*[out,retval]*/);
  long            __fastcall AddColumn(BSTR Val/*[in]*/);
  HRESULT         __fastcall DeleteColumn(TVariantInParam ColVal/*[in]*/, 
                                          TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteColumn(TVariantInParam ColVal/*[in]*/);
  HRESULT         __fastcall AddRow(BSTR Val/*[in]*/, long* RowVal/*[out,retval]*/);
  long            __fastcall AddRow(BSTR Val/*[in]*/);
  HRESULT         __fastcall DeleteRow(TVariantInParam RowVal/*[in]*/, 
                                       TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteRow(TVariantInParam RowVal/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall FindColumnIndex(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall FindColumnIndex(BSTR Val/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IVariableTableDispT<IVariableTable> IVariableTableDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint3D
// Interface: IPoint3D
// *********************************************************************//
template <class T /* IPoint3D */ >
class TCOMIPoint3DT : public TComInterface<IPoint3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoint3DT() {}
  TCOMIPoint3DT(IPoint3D *intf, bool addRef = false) : TComInterface<IPoint3D>(intf, addRef) {}
  TCOMIPoint3DT(const TCOMIPoint3DT& src) : TComInterface<IPoint3D>(src) {}
  TCOMIPoint3DT& operator=(const TCOMIPoint3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Z(double PVal/*[in]*/);
  HRESULT         __fastcall get_Z(double* PVal/*[out,retval]*/);
  double          __fastcall get_Z(void);
  HRESULT         __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationObject(void);
  HRESULT         __fastcall set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/);
  ksAnnotationSymbolEnum __fastcall get_Symbol(void);
  HRESULT         __fastcall set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DTypeEnum __fastcall get_ParameterType(void);
  HRESULT         __fastcall get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parameters(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Z = {read = get_Z, write = set_Z};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationObject = {read = get_AssociationObject};
  __property   ksAnnotationSymbolEnum Symbol = {read = get_Symbol, write = set_Symbol};
  __property   ksPoint3DTypeEnum ParameterType = {read = get_ParameterType, write = set_ParameterType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parameters = {read = get_Parameters};
};
typedef TCOMIPoint3DT<IPoint3D> TCOMIPoint3D;

// *********************************************************************//
// DispIntf:  IPoint3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D71AEDBE-01D4-4C7D-96DC-94981F2A1C37}
// *********************************************************************//
template<class T>
class IPoint3DDispT : public TAutoDriver<IPoint3D>
{
public:
  IPoint3DDispT(){}

  IPoint3DDispT(IPoint3D *pintf)
  {
    TAutoDriver<IPoint3D>::Bind(pintf, false);
  }

  IPoint3DDispT(IPoint3DPtr pintf)
  {
    TAutoDriver<IPoint3D>::Bind(pintf, true);
  }

  IPoint3DDispT& operator=(IPoint3D *pintf)
  {
    TAutoDriver<IPoint3D>::Bind(pintf, false);
    return *this;
  }

  IPoint3DDispT& operator=(IPoint3DPtr pintf)
  {
    TAutoDriver<IPoint3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Point3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Point3D);
  }

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Z(double PVal/*[in]*/);
  HRESULT         __fastcall get_Z(double* PVal/*[out,retval]*/);
  double          __fastcall get_Z(void);
  HRESULT         __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationObject(void);
  HRESULT         __fastcall set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/);
  ksAnnotationSymbolEnum __fastcall get_Symbol(void);
  HRESULT         __fastcall set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DTypeEnum __fastcall get_ParameterType(void);
  HRESULT         __fastcall get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parameters(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Z = {read = get_Z, write = set_Z};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationObject = {read = get_AssociationObject};
  __property   ksAnnotationSymbolEnum Symbol = {read = get_Symbol, write = set_Symbol};
  __property   ksPoint3DTypeEnum ParameterType = {read = get_ParameterType, write = set_ParameterType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parameters = {read = get_Parameters};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoint3DDispT<IPoint3D> IPoint3DDisp;

// *********************************************************************//
// SmartIntf: TCOMILocalCoordinateSystem
// Interface: ILocalCoordinateSystem
// *********************************************************************//
template <class T /* ILocalCoordinateSystem */ >
class TCOMILocalCoordinateSystemT : public TComInterface<ILocalCoordinateSystem>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILocalCoordinateSystemT() {}
  TCOMILocalCoordinateSystemT(ILocalCoordinateSystem *intf, bool addRef = false) : TComInterface<ILocalCoordinateSystem>(intf, addRef) {}
  TCOMILocalCoordinateSystemT(const TCOMILocalCoordinateSystemT& src) : TComInterface<ILocalCoordinateSystem>(src) {}
  TCOMILocalCoordinateSystemT& operator=(const TCOMILocalCoordinateSystemT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                   double NewVal/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                   double NewVal/*[in]*/);
  HRESULT         __fastcall set_OrientationType(ksOrientationTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_OrientationType(ksOrientationTypeEnum* Result/*[out,retval]*/);
  ksOrientationTypeEnum __fastcall get_OrientationType(void);
  HRESULT         __fastcall ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall SetStartingOrientation(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetStartingOrientation(void);
  HRESULT         __fastcall GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                       double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                       double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall get_LocalCSParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_LocalCSParameters(void);
  HRESULT         __fastcall set_Current(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall InitByMatrix3D(TVariantInParam mtr/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall InitByMatrix3D(TVariantInParam mtr/*[in]*/);

  __property   ksOrientationTypeEnum OrientationType = {read = get_OrientationType, write = set_OrientationType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr LocalCSParameters = {read = get_LocalCSParameters};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
};
typedef TCOMILocalCoordinateSystemT<ILocalCoordinateSystem> TCOMILocalCoordinateSystem;

// *********************************************************************//
// DispIntf:  ILocalCoordinateSystem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BA6395F5-3506-4483-8864-4EEC220AF316}
// *********************************************************************//
template<class T>
class ILocalCoordinateSystemDispT : public TAutoDriver<ILocalCoordinateSystem>
{
public:
  ILocalCoordinateSystemDispT(){}

  ILocalCoordinateSystemDispT(ILocalCoordinateSystem *pintf)
  {
    TAutoDriver<ILocalCoordinateSystem>::Bind(pintf, false);
  }

  ILocalCoordinateSystemDispT(ILocalCoordinateSystemPtr pintf)
  {
    TAutoDriver<ILocalCoordinateSystem>::Bind(pintf, true);
  }

  ILocalCoordinateSystemDispT& operator=(ILocalCoordinateSystem *pintf)
  {
    TAutoDriver<ILocalCoordinateSystem>::Bind(pintf, false);
    return *this;
  }

  ILocalCoordinateSystemDispT& operator=(ILocalCoordinateSystemPtr pintf)
  {
    TAutoDriver<ILocalCoordinateSystem>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LocalCoordinateSystem));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LocalCoordinateSystem);
  }

  HRESULT         __fastcall SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/
                                                   , double NewVal/*[in]*/, 
                                                   TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                   double NewVal/*[in]*/);
  HRESULT         __fastcall set_OrientationType(ksOrientationTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_OrientationType(ksOrientationTypeEnum* Result/*[out,retval]*/);
  ksOrientationTypeEnum __fastcall get_OrientationType(void);
  HRESULT         __fastcall ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall SetStartingOrientation(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetStartingOrientation(void);
  HRESULT         __fastcall GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                       double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                       double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall get_LocalCSParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_LocalCSParameters(void);
  HRESULT         __fastcall set_Current(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall InitByMatrix3D(TVariantInParam mtr/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall InitByMatrix3D(TVariantInParam mtr/*[in]*/);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Z(double PVal/*[in]*/);
  HRESULT         __fastcall get_Z(double* PVal/*[out,retval]*/);
  double          __fastcall get_Z(void);
  HRESULT         __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationObject(void);
  HRESULT         __fastcall set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/);
  ksAnnotationSymbolEnum __fastcall get_Symbol(void);
  HRESULT         __fastcall set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DTypeEnum __fastcall get_ParameterType(void);
  HRESULT         __fastcall get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parameters(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksOrientationTypeEnum OrientationType = {read = get_OrientationType, write = set_OrientationType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr LocalCSParameters = {read = get_LocalCSParameters};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Z = {read = get_Z, write = set_Z};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationObject = {read = get_AssociationObject};
  __property   ksAnnotationSymbolEnum Symbol = {read = get_Symbol, write = set_Symbol};
  __property   ksPoint3DTypeEnum ParameterType = {read = get_ParameterType, write = set_ParameterType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parameters = {read = get_Parameters};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILocalCoordinateSystemDispT<ILocalCoordinateSystem> ILocalCoordinateSystemDisp;

// *********************************************************************//
// SmartIntf: TCOMISelectionManager
// Interface: ISelectionManager
// *********************************************************************//
template <class T /* ISelectionManager */ >
class TCOMISelectionManagerT : public TComInterface<ISelectionManager>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISelectionManagerT() {}
  TCOMISelectionManagerT(ISelectionManager *intf, bool addRef = false) : TComInterface<ISelectionManager>(intf, addRef) {}
  TCOMISelectionManagerT(const TCOMISelectionManagerT& src) : TComInterface<ISelectionManager>(src) {}
  TCOMISelectionManagerT& operator=(const TCOMISelectionManagerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Select(TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Select(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall Unselect(TVariantInParam Objects/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Unselect(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall UnselectAll(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall UnselectAll(void);
  HRESULT         __fastcall IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_SelectedObjects(TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_SelectedObjects(void);

};
typedef TCOMISelectionManagerT<ISelectionManager> TCOMISelectionManager;

// *********************************************************************//
// DispIntf:  ISelectionManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E6DF688C-5B23-436B-A027-A96BFD5484CC}
// *********************************************************************//
template<class T>
class ISelectionManagerDispT : public TAutoDriver<ISelectionManager>
{
public:
  ISelectionManagerDispT(){}

  ISelectionManagerDispT(ISelectionManager *pintf)
  {
    TAutoDriver<ISelectionManager>::Bind(pintf, false);
  }

  ISelectionManagerDispT(ISelectionManagerPtr pintf)
  {
    TAutoDriver<ISelectionManager>::Bind(pintf, true);
  }

  ISelectionManagerDispT& operator=(ISelectionManager *pintf)
  {
    TAutoDriver<ISelectionManager>::Bind(pintf, false);
    return *this;
  }

  ISelectionManagerDispT& operator=(ISelectionManagerPtr pintf)
  {
    TAutoDriver<ISelectionManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SelectionManager));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SelectionManager);
  }

  HRESULT         __fastcall Select(TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Select(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall Unselect(TVariantInParam Objects/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Unselect(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall UnselectAll(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall UnselectAll(void);
  HRESULT         __fastcall IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_SelectedObjects(TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_SelectedObjects(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISelectionManagerDispT<ISelectionManager> ISelectionManagerDisp;

// *********************************************************************//
// SmartIntf: TCOMIChooseManager
// Interface: IChooseManager
// *********************************************************************//
template <class T /* IChooseManager */ >
class TCOMIChooseManagerT : public TComInterface<IChooseManager>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIChooseManagerT() {}
  TCOMIChooseManagerT(IChooseManager *intf, bool addRef = false) : TComInterface<IChooseManager>(intf, addRef) {}
  TCOMIChooseManagerT(const TCOMIChooseManagerT& src) : TComInterface<IChooseManager>(src) {}
  TCOMIChooseManagerT& operator=(const TCOMIChooseManagerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Choose(TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Choose(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall Unchoose(TVariantInParam Objects/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Unchoose(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall UnchooseAll(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall UnchooseAll(void);
  HRESULT         __fastcall IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_ChoosenObjects(TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_ChoosenObjects(void);

};
typedef TCOMIChooseManagerT<IChooseManager> TCOMIChooseManager;

// *********************************************************************//
// DispIntf:  IChooseManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E2D9EAA6-F88C-4ADB-AC32-854E32E9FEE1}
// *********************************************************************//
template<class T>
class IChooseManagerDispT : public TAutoDriver<IChooseManager>
{
public:
  IChooseManagerDispT(){}

  IChooseManagerDispT(IChooseManager *pintf)
  {
    TAutoDriver<IChooseManager>::Bind(pintf, false);
  }

  IChooseManagerDispT(IChooseManagerPtr pintf)
  {
    TAutoDriver<IChooseManager>::Bind(pintf, true);
  }

  IChooseManagerDispT& operator=(IChooseManager *pintf)
  {
    TAutoDriver<IChooseManager>::Bind(pintf, false);
    return *this;
  }

  IChooseManagerDispT& operator=(IChooseManagerPtr pintf)
  {
    TAutoDriver<IChooseManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ChooseManager));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ChooseManager);
  }

  HRESULT         __fastcall Choose(TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Choose(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall Unchoose(TVariantInParam Objects/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Unchoose(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall UnchooseAll(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall UnchooseAll(void);
  HRESULT         __fastcall IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_ChoosenObjects(TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_ChoosenObjects(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IChooseManagerDispT<IChooseManager> IChooseManagerDisp;

// *********************************************************************//
// SmartIntf: TCOMIAttribute
// Interface: IAttribute
// *********************************************************************//
template <class T /* IAttribute */ >
class TCOMIAttributeT : public TComInterface<IAttribute>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAttributeT() {}
  TCOMIAttributeT(IAttribute *intf, bool addRef = false) : TComInterface<IAttribute>(intf, addRef) {}
  TCOMIAttributeT(const TCOMIAttributeT& src) : TComInterface<IAttribute>(src) {}
  TCOMIAttributeT& operator=(const TCOMIAttributeT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Objects(TVariantInParam Result/*[in]*/);
  HRESULT         __fastcall get_Objects(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Objects(void);
  HRESULT         __fastcall get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                                       TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/);
  HRESULT         __fastcall SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                      long ColumnNumb/*[in]*/, TVariantInParam Value/*[in]*/, 
                                      TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                      long ColumnNumb/*[in]*/, TVariantInParam Value/*[in]*/);
  HRESULT         __fastcall get_Values(TVariant* Values/*[out,retval]*/);
  TVariant        __fastcall get_Values(void);
  HRESULT         __fastcall SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                                       TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/);
  HRESULT         __fastcall get_FlagVisible(TVariant* Values/*[out,retval]*/);
  TVariant        __fastcall get_FlagVisible(void);
  HRESULT         __fastcall SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                                            TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/);
  HRESULT         __fastcall get_ColumnKey(TVariant* Values/*[out,retval]*/);
  TVariant        __fastcall get_ColumnKey(void);
  HRESULT         __fastcall SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/, 
                                          TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/);
  HRESULT         __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/);
  HRESULT         __fastcall AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/);
  HRESULT         __fastcall DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/);
  HRESULT         __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                         double* Numb/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                         double* Numb/*[out]*/);
  HRESULT         __fastcall SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                         long Key3/*[in]*/, long Key4/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                         long Key3/*[in]*/, long Key4/*[in]*/);
  HRESULT         __fastcall get_AttributeType(Kompasltapi7_tlb::IAttributeTypePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributeTypePtr __fastcall get_AttributeType(void);
  HRESULT         __fastcall get_RowsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_RowsCount(void);
  HRESULT         __fastcall get_ColumnsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_ColumnsCount(void);
  HRESULT         __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/);
  HRESULT         __fastcall get_RecordFlagVisible(long ColumnNumb/*[in]*/, 
                                                   TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_RecordFlagVisible(long ColumnNumb/*[in]*/);
  HRESULT         __fastcall SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                                  TVariantInParam Values/*[in]*/, 
                                                  TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                                  TVariantInParam Values/*[in]*/);

  __property   Kompasltapi7_tlb::IAttributeTypePtr AttributeType = {read = get_AttributeType};
  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};
};
typedef TCOMIAttributeT<IAttribute> TCOMIAttribute;

// *********************************************************************//
// DispIntf:  IAttribute
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {94F965B0-5ABB-4994-98C7-B08FA8515452}
// *********************************************************************//
template<class T>
class IAttributeDispT : public TAutoDriver<IAttribute>
{
public:
  IAttributeDispT(){}

  IAttributeDispT(IAttribute *pintf)
  {
    TAutoDriver<IAttribute>::Bind(pintf, false);
  }

  IAttributeDispT(IAttributePtr pintf)
  {
    TAutoDriver<IAttribute>::Bind(pintf, true);
  }

  IAttributeDispT& operator=(IAttribute *pintf)
  {
    TAutoDriver<IAttribute>::Bind(pintf, false);
    return *this;
  }

  IAttributeDispT& operator=(IAttributePtr pintf)
  {
    TAutoDriver<IAttribute>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Attribute));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Attribute);
  }

  HRESULT         __fastcall set_Objects(TVariantInParam Result/*[in]*/);
  HRESULT         __fastcall get_Objects(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Objects(void);
  HRESULT         __fastcall get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                                       TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/);
  HRESULT         __fastcall SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                      long ColumnNumb/*[in]*/, TVariantInParam Value/*[in]*/, 
                                      TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                      long ColumnNumb/*[in]*/, TVariantInParam Value/*[in]*/);
  HRESULT         __fastcall get_Values(TVariant* Values/*[out,retval]*/);
  TVariant        __fastcall get_Values(void);
  HRESULT         __fastcall SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                                       TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/);
  HRESULT         __fastcall get_FlagVisible(TVariant* Values/*[out,retval]*/);
  TVariant        __fastcall get_FlagVisible(void);
  HRESULT         __fastcall SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                                            TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/);
  HRESULT         __fastcall get_ColumnKey(TVariant* Values/*[out,retval]*/);
  TVariant        __fastcall get_ColumnKey(void);
  HRESULT         __fastcall SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/, 
                                          TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/);
  HRESULT         __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/);
  HRESULT         __fastcall AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/);
  HRESULT         __fastcall DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/);
  HRESULT         __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                         double* Numb/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                         double* Numb/*[out]*/);
  HRESULT         __fastcall SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/
                                         , long Key3/*[in]*/, long Key4/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                         long Key3/*[in]*/, long Key4/*[in]*/);
  HRESULT         __fastcall get_AttributeType(Kompasltapi7_tlb::IAttributeTypePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributeTypePtr __fastcall get_AttributeType(void);
  HRESULT         __fastcall get_RowsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_RowsCount(void);
  HRESULT         __fastcall get_ColumnsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_ColumnsCount(void);
  HRESULT         __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/);
  HRESULT         __fastcall get_RecordFlagVisible(long ColumnNumb/*[in]*/, 
                                                   TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_RecordFlagVisible(long ColumnNumb/*[in]*/);
  HRESULT         __fastcall SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                                  TVariantInParam Values/*[in]*/, 
                                                  TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                                  TVariantInParam Values/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IAttributeTypePtr AttributeType = {read = get_AttributeType};
  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAttributeDispT<IAttribute> IAttributeDisp;

// *********************************************************************//
// SmartIntf: TCOMIAttributeType
// Interface: IAttributeType
// *********************************************************************//
template <class T /* IAttributeType */ >
class TCOMIAttributeTypeT : public TComInterface<IAttributeType>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAttributeTypeT() {}
  TCOMIAttributeTypeT(IAttributeType *intf, bool addRef = false) : TComInterface<IAttributeType>(intf, addRef) {}
  TCOMIAttributeTypeT(const TCOMIAttributeTypeT& src) : TComInterface<IAttributeType>(src) {}
  TCOMIAttributeTypeT& operator=(const TCOMIAttributeTypeT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_TypeName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_TypeName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_TypeName(void);
  HRESULT         __fastcall set_AttrType(ksAttributeTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_AttrType(ksAttributeTypeEnum* PVal/*[out,retval]*/);
  ksAttributeTypeEnum __fastcall get_AttrType(void);
  HRESULT         __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/);
  HRESULT         __fastcall SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                         long Key4/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                         long Key4/*[in]*/);
  HRESULT         __fastcall get_UniqueNumb(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueNumb(void);
  HRESULT         __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/);
  HRESULT         __fastcall get_ColumnInfo(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall get_ColumnInfo(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall AddColumn(long Index/*[in]*/, 
                                       ksValueTypeEnum Type, BSTR Name, 
                                       Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall AddColumn(long Index/*[in]*/, 
                                                        ksValueTypeEnum Type, 
                                                        BSTR Name);
  HRESULT         __fastcall _Update(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(BSTR Password/*[in]*/);
  HRESULT         __fastcall Delete(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Password/*[in]*/);
  HRESULT         __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/);
  HRESULT         __fastcall set_RowsCount(long Count/*[in]*/);
  HRESULT         __fastcall get_RowsCount(long* Count/*[out,retval]*/);
  long            __fastcall get_RowsCount(void);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);

  __property   BSTR            TypeName = {read = get_TypeName, write = set_TypeName};
  __property   ksAttributeTypeEnum AttrType = {read = get_AttrType, write = set_AttrType};
  __property   double          UniqueNumb = {read = get_UniqueNumb};
  __property   long            RowsCount = {read = get_RowsCount, write = set_RowsCount};
  __property   BSTR            FileName = {read = get_FileName};
};
typedef TCOMIAttributeTypeT<IAttributeType> TCOMIAttributeType;

// *********************************************************************//
// DispIntf:  IAttributeType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {414CF83E-4FA3-42AB-BC26-6C6BBF91BB0F}
// *********************************************************************//
template<class T>
class IAttributeTypeDispT : public TAutoDriver<IAttributeType>
{
public:
  IAttributeTypeDispT(){}

  IAttributeTypeDispT(IAttributeType *pintf)
  {
    TAutoDriver<IAttributeType>::Bind(pintf, false);
  }

  IAttributeTypeDispT(IAttributeTypePtr pintf)
  {
    TAutoDriver<IAttributeType>::Bind(pintf, true);
  }

  IAttributeTypeDispT& operator=(IAttributeType *pintf)
  {
    TAutoDriver<IAttributeType>::Bind(pintf, false);
    return *this;
  }

  IAttributeTypeDispT& operator=(IAttributeTypePtr pintf)
  {
    TAutoDriver<IAttributeType>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__AttributeType));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__AttributeType);
  }

  HRESULT         __fastcall set_TypeName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_TypeName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_TypeName(void);
  HRESULT         __fastcall set_AttrType(ksAttributeTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_AttrType(ksAttributeTypeEnum* PVal/*[out,retval]*/);
  ksAttributeTypeEnum __fastcall get_AttrType(void);
  HRESULT         __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, 
                                         long* Key3/*[out]*/, long* Key4/*[out]*/);
  HRESULT         __fastcall SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                         long Key4/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                         long Key4/*[in]*/);
  HRESULT         __fastcall get_UniqueNumb(double* PVal/*[out,retval]*/);
  double          __fastcall get_UniqueNumb(void);
  HRESULT         __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/);
  HRESULT         __fastcall get_ColumnInfo(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall get_ColumnInfo(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall AddColumn(long Index/*[in]*/, 
                                       ksValueTypeEnum Type, BSTR Name, 
                                       Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall AddColumn(long Index/*[in]*/, 
                                                        ksValueTypeEnum Type, 
                                                        BSTR Name);
  HRESULT         __fastcall _Update(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(BSTR Password/*[in]*/);
  HRESULT         __fastcall Delete(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(BSTR Password/*[in]*/);
  HRESULT         __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                      TOLEBOOL ReadOnly/*[in]*/);
  HRESULT         __fastcall set_RowsCount(long Count/*[in]*/);
  HRESULT         __fastcall get_RowsCount(long* Count/*[out,retval]*/);
  long            __fastcall get_RowsCount(void);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            TypeName = {read = get_TypeName, write = set_TypeName};
  __property   ksAttributeTypeEnum AttrType = {read = get_AttrType, write = set_AttrType};
  __property   double          UniqueNumb = {read = get_UniqueNumb};
  __property   long            RowsCount = {read = get_RowsCount, write = set_RowsCount};
  __property   BSTR            FileName = {read = get_FileName};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAttributeTypeDispT<IAttributeType> IAttributeTypeDisp;

// *********************************************************************//
// SmartIntf: TCOMIColumnInfo
// Interface: IColumnInfo
// *********************************************************************//
template <class T /* IColumnInfo */ >
class TCOMIColumnInfoT : public TComInterface<IColumnInfo>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIColumnInfoT() {}
  TCOMIColumnInfoT(IColumnInfo *intf, bool addRef = false) : TComInterface<IColumnInfo>(intf, addRef) {}
  TCOMIColumnInfoT(const TCOMIColumnInfoT& src) : TComInterface<IColumnInfo>(src) {}
  TCOMIColumnInfoT& operator=(const TCOMIColumnInfoT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Caption(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall set_ColType(ksValueTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ColType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ColType(void);
  HRESULT         __fastcall set_Key(long PVal/*[in]*/);
  HRESULT         __fastcall get_Key(long* PVal/*[out,retval]*/);
  long            __fastcall get_Key(void);
  HRESULT         __fastcall set_DefValue(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_DefValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_DefValue(void);
  HRESULT         __fastcall set_ListValue(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ListValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ListValue(void);
  HRESULT         __fastcall set_SortListValue(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SortListValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SortListValue(void);
  HRESULT         __fastcall set_Range(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Range(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Range(void);
  HRESULT         __fastcall get_RecordColumnInfo(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall get_RecordColumnInfo(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall AddRecordColumn(long Index/*[in]*/, 
                                             ksValueTypeEnum Type/*[in]*/, 
                                             BSTR Name/*[in]*/, 
                                             Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall AddRecordColumn(long Index/*[in]*/, 
                                                              ksValueTypeEnum Type/*[in]*/, 
                                                              BSTR Name/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);

  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   ksValueTypeEnum ColType = {read = get_ColType, write = set_ColType};
  __property   long            Key = {read = get_Key, write = set_Key};
  __property   TOLEBOOL        ListValue = {read = get_ListValue, write = set_ListValue};
  __property   TOLEBOOL        SortListValue = {read = get_SortListValue, write = set_SortListValue};
};
typedef TCOMIColumnInfoT<IColumnInfo> TCOMIColumnInfo;

// *********************************************************************//
// DispIntf:  IColumnInfo
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3FDE0F44-4459-49F3-A012-E64F9BFA454D}
// *********************************************************************//
template<class T>
class IColumnInfoDispT : public TAutoDriver<IColumnInfo>
{
public:
  IColumnInfoDispT(){}

  IColumnInfoDispT(IColumnInfo *pintf)
  {
    TAutoDriver<IColumnInfo>::Bind(pintf, false);
  }

  IColumnInfoDispT(IColumnInfoPtr pintf)
  {
    TAutoDriver<IColumnInfo>::Bind(pintf, true);
  }

  IColumnInfoDispT& operator=(IColumnInfo *pintf)
  {
    TAutoDriver<IColumnInfo>::Bind(pintf, false);
    return *this;
  }

  IColumnInfoDispT& operator=(IColumnInfoPtr pintf)
  {
    TAutoDriver<IColumnInfo>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__ColumnInfo));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__ColumnInfo);
  }

  HRESULT         __fastcall set_Caption(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Caption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Caption(void);
  HRESULT         __fastcall set_ColType(ksValueTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ColType(ksValueTypeEnum* PVal/*[out,retval]*/);
  ksValueTypeEnum __fastcall get_ColType(void);
  HRESULT         __fastcall set_Key(long PVal/*[in]*/);
  HRESULT         __fastcall get_Key(long* PVal/*[out,retval]*/);
  long            __fastcall get_Key(void);
  HRESULT         __fastcall set_DefValue(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_DefValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_DefValue(void);
  HRESULT         __fastcall set_ListValue(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ListValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ListValue(void);
  HRESULT         __fastcall set_SortListValue(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SortListValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SortListValue(void);
  HRESULT         __fastcall set_Range(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Range(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Range(void);
  HRESULT         __fastcall get_RecordColumnInfo(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall get_RecordColumnInfo(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall AddRecordColumn(long Index/*[in]*/, 
                                             ksValueTypeEnum Type/*[in]*/, 
                                             BSTR Name/*[in]*/, 
                                             Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColumnInfoPtr __fastcall AddRecordColumn(long Index/*[in]*/, 
                                                              ksValueTypeEnum Type/*[in]*/, 
                                                              BSTR Name/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Caption = {read = get_Caption, write = set_Caption};
  __property   ksValueTypeEnum ColType = {read = get_ColType, write = set_ColType};
  __property   long            Key = {read = get_Key, write = set_Key};
  __property   TOLEBOOL        ListValue = {read = get_ListValue, write = set_ListValue};
  __property   TOLEBOOL        SortListValue = {read = get_SortListValue, write = set_SortListValue};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IColumnInfoDispT<IColumnInfo> IColumnInfoDisp;

typedef TComInterface<IDrawingObject1>  TCOMIDrawingObject1;

// *********************************************************************//
// DispIntf:  IDrawingObject1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {649F0EB2-EBC0-449B-8B61-DC3CF1953BF9}
// *********************************************************************//
template<class T>
class IDrawingObject1DispT : public TAutoDriver<IDrawingObject1>
{
public:
  IDrawingObject1DispT(){}

  IDrawingObject1DispT(IDrawingObject1 *pintf)
  {
    TAutoDriver<IDrawingObject1>::Bind(pintf, false);
  }

  IDrawingObject1DispT(IDrawingObject1Ptr pintf)
  {
    TAutoDriver<IDrawingObject1>::Bind(pintf, true);
  }

  IDrawingObject1DispT& operator=(IDrawingObject1 *pintf)
  {
    TAutoDriver<IDrawingObject1>::Bind(pintf, false);
    return *this;
  }

  IDrawingObject1DispT& operator=(IDrawingObject1Ptr pintf)
  {
    TAutoDriver<IDrawingObject1>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Constraints(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Constraints(void);
  HRESULT         __fastcall NewConstraint(Kompasltapi7_tlb::IParametriticConstraintPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IParametriticConstraintPtr __fastcall NewConstraint(void);
  HRESULT         __fastcall Associate(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Associate(void);
  HRESULT         __fastcall DeleteConstraints(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteConstraints(void);
  HRESULT         __fastcall get_TransparentBackground(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TransparentBackground(void);
  HRESULT         __fastcall set_TransparentBackground(TOLEBOOL Value/*[in]*/);
  HRESULT         __fastcall get_AutoTransparentBackground(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoTransparentBackground(void);
  HRESULT         __fastcall set_AutoTransparentBackground(TOLEBOOL Value/*[in]*/);
  HRESULT         __fastcall get_IsGeometryObject(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsGeometryObject(void);
  HRESULT         __fastcall get_IsAnnotativeObject(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsAnnotativeObject(void);
  HRESULT         __fastcall get_IsCurve(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsCurve(void);

  __property   TOLEBOOL        TransparentBackground = {read = get_TransparentBackground, write = set_TransparentBackground};
  __property   TOLEBOOL        AutoTransparentBackground = {read = get_AutoTransparentBackground, write = set_AutoTransparentBackground};
  __property   TOLEBOOL        IsGeometryObject = {read = get_IsGeometryObject};
  __property   TOLEBOOL        IsAnnotativeObject = {read = get_IsAnnotativeObject};
  __property   TOLEBOOL        IsCurve = {read = get_IsCurve};
};
typedef IDrawingObject1DispT<IDrawingObject1> IDrawingObject1Disp;

// *********************************************************************//
// SmartIntf: TCOMIParametriticConstraint
// Interface: IParametriticConstraint
// *********************************************************************//
template <class T /* IParametriticConstraint */ >
class TCOMIParametriticConstraintT : public TComInterface<IParametriticConstraint>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIParametriticConstraintT() {}
  TCOMIParametriticConstraintT(IParametriticConstraint *intf, bool addRef = false) : TComInterface<IParametriticConstraint>(intf, addRef) {}
  TCOMIParametriticConstraintT(const TCOMIParametriticConstraintT& src) : TComInterface<IParametriticConstraint>(src) {}
  TCOMIParametriticConstraintT& operator=(const TCOMIParametriticConstraintT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_ConstraintType(ksConstraintTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ConstraintType(ksConstraintTypeEnum* PVal/*[out,retval]*/);
  ksConstraintTypeEnum __fastcall get_ConstraintType(void);
  HRESULT         __fastcall set_Index(long PVal/*[in]*/);
  HRESULT         __fastcall get_Index(long* PVal/*[out,retval]*/);
  long            __fastcall get_Index(void);
  HRESULT         __fastcall set_Partner(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Partner(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Partner(void);
  HRESULT         __fastcall set_PartnerIndex(long PVal/*[in]*/);
  HRESULT         __fastcall get_PartnerIndex(long* PVal/*[out,retval]*/);
  long            __fastcall get_PartnerIndex(void);
  HRESULT         __fastcall set_Value(double PVal/*[in]*/);
  HRESULT         __fastcall get_Value(double* PVal/*[out,retval]*/);
  double          __fastcall get_Value(void);
  HRESULT         __fastcall set_Expression(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Expression(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Expression(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Variable(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Variable(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Variable(void);
  HRESULT         __fastcall set_Degrees(long PVal/*[in]*/);
  HRESULT         __fastcall get_Degrees(long* PVal/*[out,retval]*/);
  long            __fastcall get_Degrees(void);
  HRESULT         __fastcall set_Minutes(long PVal/*[in]*/);
  HRESULT         __fastcall get_Minutes(long* PVal/*[out,retval]*/);
  long            __fastcall get_Minutes(void);
  HRESULT         __fastcall set_Seconds(double PVal/*[in]*/);
  HRESULT         __fastcall get_Seconds(double* PVal/*[out,retval]*/);
  double          __fastcall get_Seconds(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall Create(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Create(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Axis(Kompasltapi7_tlb::IDrawingObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Axis(void);
  HRESULT         __fastcall set_Axis(Kompasltapi7_tlb::IDrawingObjectPtr PVal/*[in]*/);

  __property   ksConstraintTypeEnum ConstraintType = {read = get_ConstraintType, write = set_ConstraintType};
  __property   long            Index = {read = get_Index, write = set_Index};
  __property   long            PartnerIndex = {read = get_PartnerIndex, write = set_PartnerIndex};
  __property   double          Value = {read = get_Value, write = set_Value};
  __property   BSTR            Expression = {read = get_Expression, write = set_Expression};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            Variable = {read = get_Variable, write = set_Variable};
  __property   long            Degrees = {read = get_Degrees, write = set_Degrees};
  __property   long            Minutes = {read = get_Minutes, write = set_Minutes};
  __property   double          Seconds = {read = get_Seconds, write = set_Seconds};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr Axis = {read = get_Axis, write = set_Axis};
};
typedef TCOMIParametriticConstraintT<IParametriticConstraint> TCOMIParametriticConstraint;

// *********************************************************************//
// DispIntf:  IParametriticConstraint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {131069F4-A4E2-4DB4-A559-85EACCC74CE4}
// *********************************************************************//
template<class T>
class IParametriticConstraintDispT : public TAutoDriver<IParametriticConstraint>
{
public:
  IParametriticConstraintDispT(){}

  IParametriticConstraintDispT(IParametriticConstraint *pintf)
  {
    TAutoDriver<IParametriticConstraint>::Bind(pintf, false);
  }

  IParametriticConstraintDispT(IParametriticConstraintPtr pintf)
  {
    TAutoDriver<IParametriticConstraint>::Bind(pintf, true);
  }

  IParametriticConstraintDispT& operator=(IParametriticConstraint *pintf)
  {
    TAutoDriver<IParametriticConstraint>::Bind(pintf, false);
    return *this;
  }

  IParametriticConstraintDispT& operator=(IParametriticConstraintPtr pintf)
  {
    TAutoDriver<IParametriticConstraint>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ParametriticConstraint));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ParametriticConstraint);
  }

  HRESULT         __fastcall set_ConstraintType(ksConstraintTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ConstraintType(ksConstraintTypeEnum* PVal/*[out,retval]*/);
  ksConstraintTypeEnum __fastcall get_ConstraintType(void);
  HRESULT         __fastcall set_Index(long PVal/*[in]*/);
  HRESULT         __fastcall get_Index(long* PVal/*[out,retval]*/);
  long            __fastcall get_Index(void);
  HRESULT         __fastcall set_Partner(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Partner(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Partner(void);
  HRESULT         __fastcall set_PartnerIndex(long PVal/*[in]*/);
  HRESULT         __fastcall get_PartnerIndex(long* PVal/*[out,retval]*/);
  long            __fastcall get_PartnerIndex(void);
  HRESULT         __fastcall set_Value(double PVal/*[in]*/);
  HRESULT         __fastcall get_Value(double* PVal/*[out,retval]*/);
  double          __fastcall get_Value(void);
  HRESULT         __fastcall set_Expression(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Expression(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Expression(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Variable(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Variable(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Variable(void);
  HRESULT         __fastcall set_Degrees(long PVal/*[in]*/);
  HRESULT         __fastcall get_Degrees(long* PVal/*[out,retval]*/);
  long            __fastcall get_Degrees(void);
  HRESULT         __fastcall set_Minutes(long PVal/*[in]*/);
  HRESULT         __fastcall get_Minutes(long* PVal/*[out,retval]*/);
  long            __fastcall get_Minutes(void);
  HRESULT         __fastcall set_Seconds(double PVal/*[in]*/);
  HRESULT         __fastcall get_Seconds(double* PVal/*[out,retval]*/);
  double          __fastcall get_Seconds(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall Create(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Create(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Axis(Kompasltapi7_tlb::IDrawingObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Axis(void);
  HRESULT         __fastcall set_Axis(Kompasltapi7_tlb::IDrawingObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksConstraintTypeEnum ConstraintType = {read = get_ConstraintType, write = set_ConstraintType};
  __property   long            Index = {read = get_Index, write = set_Index};
  __property   long            PartnerIndex = {read = get_PartnerIndex, write = set_PartnerIndex};
  __property   double          Value = {read = get_Value, write = set_Value};
  __property   BSTR            Expression = {read = get_Expression, write = set_Expression};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            Variable = {read = get_Variable, write = set_Variable};
  __property   long            Degrees = {read = get_Degrees, write = set_Degrees};
  __property   long            Minutes = {read = get_Minutes, write = set_Minutes};
  __property   double          Seconds = {read = get_Seconds, write = set_Seconds};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr Axis = {read = get_Axis, write = set_Axis};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IParametriticConstraintDispT<IParametriticConstraint> IParametriticConstraintDisp;

typedef TComInterface<IKompasDocument1>  TCOMIKompasDocument1;

// *********************************************************************//
// DispIntf:  IKompasDocument1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {58890FE8-E671-4561-994A-600DD29032E4}
// *********************************************************************//
template<class T>
class IKompasDocument1DispT : public TAutoDriver<IKompasDocument1>
{
public:
  IKompasDocument1DispT(){}

  IKompasDocument1DispT(IKompasDocument1 *pintf)
  {
    TAutoDriver<IKompasDocument1>::Bind(pintf, false);
  }

  IKompasDocument1DispT(IKompasDocument1Ptr pintf)
  {
    TAutoDriver<IKompasDocument1>::Bind(pintf, true);
  }

  IKompasDocument1DispT& operator=(IKompasDocument1 *pintf)
  {
    TAutoDriver<IKompasDocument1>::Bind(pintf, false);
    return *this;
  }

  IKompasDocument1DispT& operator=(IKompasDocument1Ptr pintf)
  {
    TAutoDriver<IKompasDocument1>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall Delete(TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall get_Attributes(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/
                                            , long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/, 
                                            TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Attributes(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                            long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall get_ObjectsByAttr(long Key1/*[in]*/, long Key2/*[in]*/, 
                                               long Key3/*[in]*/, long Key4/*[in]*/, 
                                               double Numb/*[in]*/, 
                                               TVariantInParam ObjectType/*[in]*/, 
                                               TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_ObjectsByAttr(long Key1/*[in]*/, long Key2/*[in]*/, 
                                               long Key3/*[in]*/, long Key4/*[in]*/, 
                                               double Numb/*[in]*/, 
                                               TVariantInParam ObjectType/*[in]*/);
  HRESULT         __fastcall CreateAttr(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributePtr __fastcall CreateAttr(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                                        TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall ViewEditAttr(OLE_HANDLE HWnd/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ViewEditAttr(OLE_HANDLE HWnd/*[in]*/, TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall GetInterface(KompasAPIObjectTypeEnum Type/*[in]*/
                                          , 
                                          Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall GetInterface(KompasAPIObjectTypeEnum Type/*[in]*/);
  HRESULT         __fastcall get_ExternalFilesNames(TOLEBOOL allFiles/*[in]*/, 
                                                    TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_ExternalFilesNames(TOLEBOOL allFiles/*[in]*/);

};
typedef IKompasDocument1DispT<IKompasDocument1> IKompasDocument1Disp;

typedef TComInterface<IKompasDocument2D1>  TCOMIKompasDocument2D1;

// *********************************************************************//
// DispIntf:  IKompasDocument2D1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FB57F1C4-44FE-4C73-9B15-87241E8735B5}
// *********************************************************************//
template<class T>
class IKompasDocument2D1DispT : public TAutoDriver<IKompasDocument2D1>
{
public:
  IKompasDocument2D1DispT(){}

  IKompasDocument2D1DispT(IKompasDocument2D1 *pintf)
  {
    TAutoDriver<IKompasDocument2D1>::Bind(pintf, false);
  }

  IKompasDocument2D1DispT(IKompasDocument2D1Ptr pintf)
  {
    TAutoDriver<IKompasDocument2D1>::Bind(pintf, true);
  }

  IKompasDocument2D1DispT& operator=(IKompasDocument2D1 *pintf)
  {
    TAutoDriver<IKompasDocument2D1>::Bind(pintf, false);
    return *this;
  }

  IKompasDocument2D1DispT& operator=(IKompasDocument2D1Ptr pintf)
  {
    TAutoDriver<IKompasDocument2D1>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_EditMacroObject(Kompasltapi7_tlb::IMacroObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMacroObjectPtr __fastcall get_EditMacroObject(void);
  HRESULT         __fastcall get_DrawingGroups(Kompasltapi7_tlb::IDrawingGroupsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingGroupsPtr __fastcall get_DrawingGroups(void);
  HRESULT         __fastcall get_NamedGroups(Kompasltapi7_tlb::IDrawingGroupsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingGroupsPtr __fastcall get_NamedGroups(void);
  HRESULT         __fastcall get_CurrentGroup(Kompasltapi7_tlb::IDrawingGroupPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall get_CurrentGroup(void);
  HRESULT         __fastcall get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISelectionManagerPtr __fastcall get_SelectionManager(void);
  HRESULT         __fastcall get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IChooseManagerPtr __fastcall get_ChooseManager(void);
  HRESULT         __fastcall CopyObjects(TVariantInParam Objects/*[in]*/, 
                                         Kompasltapi7_tlb::ICopyObjectParamPtr params/*[in]*/, 
                                         TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall CopyObjects(TVariantInParam Objects/*[in]*/, 
                                         Kompasltapi7_tlb::ICopyObjectParamPtr params/*[in]*/);
  HRESULT         __fastcall get_Variables(TOLEBOOL ExternalOnly/*[in]*/, 
                                           TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Variables(TOLEBOOL ExternalOnly/*[in]*/);
  HRESULT         __fastcall get_Variable(TOLEBOOL External/*[in]*/, TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TOLEBOOL External/*[in]*/, 
                                                          TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_VariablesCount(TOLEBOOL External/*[in]*/, 
                                                long* Result/*[out,retval]*/);
  long            __fastcall get_VariablesCount(TOLEBOOL External/*[in]*/);
  HRESULT         __fastcall UpdateVariables(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall UpdateVariables(void);
  HRESULT         __fastcall get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariableTablePtr __fastcall get_VariableTable(void);
  HRESULT         __fastcall IsVariableNameValid(BSTR Name, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall IsVariableNameValid(BSTR Name);
  HRESULT         __fastcall AddVariable(BSTR Name/*[in]*/, double Value/*[in]*/, BSTR Note/*[in]*/
                                         , Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariable7Ptr __fastcall AddVariable(BSTR Name/*[in]*/, double Value/*[in]*/, 
                                                         BSTR Note/*[in]*/);
  HRESULT         __fastcall RebuildDocument(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RebuildDocument(void);

  __property   Kompasltapi7_tlb::IMacroObjectPtr EditMacroObject = {read = get_EditMacroObject};
  __property   Kompasltapi7_tlb::IDrawingGroupsPtr DrawingGroups = {read = get_DrawingGroups};
  __property   Kompasltapi7_tlb::IDrawingGroupsPtr NamedGroups = {read = get_NamedGroups};
  __property   Kompasltapi7_tlb::IDrawingGroupPtr CurrentGroup = {read = get_CurrentGroup};
  __property   Kompasltapi7_tlb::ISelectionManagerPtr SelectionManager = {read = get_SelectionManager};
  __property   Kompasltapi7_tlb::IChooseManagerPtr ChooseManager = {read = get_ChooseManager};
  __property   Kompasltapi7_tlb::IVariableTablePtr VariableTable = {read = get_VariableTable};
};
typedef IKompasDocument2D1DispT<IKompasDocument2D1> IKompasDocument2D1Disp;

// *********************************************************************//
// SmartIntf: TCOMIMacroObject
// Interface: IMacroObject
// *********************************************************************//
template <class T /* IMacroObject */ >
class TCOMIMacroObjectT : public TComInterface<IMacroObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMacroObjectT() {}
  TCOMIMacroObjectT(IMacroObject *intf, bool addRef = false) : TComInterface<IMacroObject>(intf, addRef) {}
  TCOMIMacroObjectT(const TCOMIMacroObjectT& src) : TComInterface<IMacroObject>(src) {}
  TCOMIMacroObjectT& operator=(const TCOMIMacroObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_LibraryFileName(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_LibraryFileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryFileName(void);
  HRESULT         __fastcall set_LibraryName(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_LibraryName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryName(void);
  HRESULT         __fastcall set_Command(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Command(long* PVal/*[out,retval]*/);
  long            __fastcall get_Command(void);
  HRESULT         __fastcall set_DoubleClickEditable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleClickEditable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleClickEditable(void);
  HRESULT         __fastcall set_HotPointsEditable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HotPointsEditable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HotPointsEditable(void);
  HRESULT         __fastcall set_ExternalEditable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ExternalEditable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ExternalEditable(void);
  HRESULT         __fastcall set_UserParams(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_UserParams(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_UserParams(void);
  HRESULT         __fastcall AddObjects(TVariantInParam Objects/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddObjects(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL* MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL Relative/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL* MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL Relative/*[in]*/);

  __property   BSTR            LibraryFileName = {read = get_LibraryFileName, write = set_LibraryFileName};
  __property   BSTR            LibraryName = {read = get_LibraryName, write = set_LibraryName};
  __property   long            Command = {read = get_Command, write = set_Command};
  __property   TOLEBOOL        DoubleClickEditable = {read = get_DoubleClickEditable, write = set_DoubleClickEditable};
  __property   TOLEBOOL        HotPointsEditable = {read = get_HotPointsEditable, write = set_HotPointsEditable};
  __property   TOLEBOOL        ExternalEditable = {read = get_ExternalEditable, write = set_ExternalEditable};
};
typedef TCOMIMacroObjectT<IMacroObject> TCOMIMacroObject;

// *********************************************************************//
// DispIntf:  IMacroObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B21C70C9-53EC-4BB7-A9DB-BCE852CA6716}
// *********************************************************************//
template<class T>
class IMacroObjectDispT : public TAutoDriver<IMacroObject>
{
public:
  IMacroObjectDispT(){}

  IMacroObjectDispT(IMacroObject *pintf)
  {
    TAutoDriver<IMacroObject>::Bind(pintf, false);
  }

  IMacroObjectDispT(IMacroObjectPtr pintf)
  {
    TAutoDriver<IMacroObject>::Bind(pintf, true);
  }

  IMacroObjectDispT& operator=(IMacroObject *pintf)
  {
    TAutoDriver<IMacroObject>::Bind(pintf, false);
    return *this;
  }

  IMacroObjectDispT& operator=(IMacroObjectPtr pintf)
  {
    TAutoDriver<IMacroObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MacroObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MacroObject);
  }

  HRESULT         __fastcall set_LibraryFileName(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_LibraryFileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryFileName(void);
  HRESULT         __fastcall set_LibraryName(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_LibraryName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_LibraryName(void);
  HRESULT         __fastcall set_Command(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Command(long* PVal/*[out,retval]*/);
  long            __fastcall get_Command(void);
  HRESULT         __fastcall set_DoubleClickEditable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleClickEditable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleClickEditable(void);
  HRESULT         __fastcall set_HotPointsEditable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HotPointsEditable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HotPointsEditable(void);
  HRESULT         __fastcall set_ExternalEditable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ExternalEditable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ExternalEditable(void);
  HRESULT         __fastcall set_UserParams(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_UserParams(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_UserParams(void);
  HRESULT         __fastcall AddObjects(TVariantInParam Objects/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddObjects(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL* MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL Relative/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL* MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL Relative/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            LibraryFileName = {read = get_LibraryFileName, write = set_LibraryFileName};
  __property   BSTR            LibraryName = {read = get_LibraryName, write = set_LibraryName};
  __property   long            Command = {read = get_Command, write = set_Command};
  __property   TOLEBOOL        DoubleClickEditable = {read = get_DoubleClickEditable, write = set_DoubleClickEditable};
  __property   TOLEBOOL        HotPointsEditable = {read = get_HotPointsEditable, write = set_HotPointsEditable};
  __property   TOLEBOOL        ExternalEditable = {read = get_ExternalEditable, write = set_ExternalEditable};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMacroObjectDispT<IMacroObject> IMacroObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingGroups
// Interface: IDrawingGroups
// *********************************************************************//
template <class T /* IDrawingGroups */ >
class TCOMIDrawingGroupsT : public TComInterface<IDrawingGroups>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingGroupsT() {}
  TCOMIDrawingGroupsT(IDrawingGroups *intf, bool addRef = false) : TComInterface<IDrawingGroups>(intf, addRef) {}
  TCOMIDrawingGroupsT(const TCOMIDrawingGroupsT& src) : TComInterface<IDrawingGroups>(src) {}
  TCOMIDrawingGroupsT& operator=(const TCOMIDrawingGroupsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/);

};
typedef TCOMIDrawingGroupsT<IDrawingGroups> TCOMIDrawingGroups;

// *********************************************************************//
// DispIntf:  IDrawingGroups
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0ED06421-907C-4EF0-89F7-AEFC81BEF1DF}
// *********************************************************************//
template<class T>
class IDrawingGroupsDispT : public TAutoDriver<IDrawingGroups>
{
public:
  IDrawingGroupsDispT(){}

  IDrawingGroupsDispT(IDrawingGroups *pintf)
  {
    TAutoDriver<IDrawingGroups>::Bind(pintf, false);
  }

  IDrawingGroupsDispT(IDrawingGroupsPtr pintf)
  {
    TAutoDriver<IDrawingGroups>::Bind(pintf, true);
  }

  IDrawingGroupsDispT& operator=(IDrawingGroups *pintf)
  {
    TAutoDriver<IDrawingGroups>::Bind(pintf, false);
    return *this;
  }

  IDrawingGroupsDispT& operator=(IDrawingGroupsPtr pintf)
  {
    TAutoDriver<IDrawingGroups>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingGroups));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingGroups);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingGroupPtr __fastcall Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingGroupsDispT<IDrawingGroups> IDrawingGroupsDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingGroup
// Interface: IDrawingGroup
// *********************************************************************//
template <class T /* IDrawingGroup */ >
class TCOMIDrawingGroupT : public TComInterface<IDrawingGroup>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingGroupT() {}
  TCOMIDrawingGroupT(IDrawingGroup *intf, bool addRef = false) : TComInterface<IDrawingGroup>(intf, addRef) {}
  TCOMIDrawingGroupT(const TCOMIDrawingGroupT& src) : TComInterface<IDrawingGroup>(src) {}
  TCOMIDrawingGroupT& operator=(const TCOMIDrawingGroupT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Objects(TVariantInParam Type/*[in]*/, 
                                         TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_Objects(TVariantInParam Type/*[in]*/);
  HRESULT         __fastcall AddObjects(TVariantInParam Objects/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddObjects(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall DetachObjects(TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL DeleteTmp/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DetachObjects(TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL DeleteTmp/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL DeleteTmp/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(TOLEBOOL DeleteTmp/*[in]*/);
  HRESULT         __fastcall Store(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Store(void);
  HRESULT         __fastcall get_ObjectsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_ObjectsCount(void);
  HRESULT         __fastcall ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                       double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                       double YMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                       double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                       double YMax/*[in]*/);
  HRESULT         __fastcall ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                          double XBase/*[in]*/, double YBase/*[in]*/, 
                                          double Scale/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL ScaleProjLinesSize/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                          double XBase/*[in]*/, double YBase/*[in]*/, 
                                          double Scale/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL ScaleProjLinesSize/*[in]*/);
  HRESULT         __fastcall WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                           double YBase/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                           double YBase/*[in]*/);
  HRESULT         __fastcall WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/);
  HRESULT         __fastcall ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/);
  HRESULT         __fastcall Draw(OLE_HANDLE HWnd/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Draw(OLE_HANDLE HWnd/*[in]*/);
  HRESULT         __fastcall Open(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Open(void);
  HRESULT         __fastcall Close(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(void);
  HRESULT         __fastcall get_Current(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   long            ObjectsCount = {read = get_ObjectsCount};
  __property   TOLEBOOL        Current = {read = get_Current};
};
typedef TCOMIDrawingGroupT<IDrawingGroup> TCOMIDrawingGroup;

// *********************************************************************//
// DispIntf:  IDrawingGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2C96ACB2-4877-45D9-B62D-78BBAD704458}
// *********************************************************************//
template<class T>
class IDrawingGroupDispT : public TAutoDriver<IDrawingGroup>
{
public:
  IDrawingGroupDispT(){}

  IDrawingGroupDispT(IDrawingGroup *pintf)
  {
    TAutoDriver<IDrawingGroup>::Bind(pintf, false);
  }

  IDrawingGroupDispT(IDrawingGroupPtr pintf)
  {
    TAutoDriver<IDrawingGroup>::Bind(pintf, true);
  }

  IDrawingGroupDispT& operator=(IDrawingGroup *pintf)
  {
    TAutoDriver<IDrawingGroup>::Bind(pintf, false);
    return *this;
  }

  IDrawingGroupDispT& operator=(IDrawingGroupPtr pintf)
  {
    TAutoDriver<IDrawingGroup>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingGroup));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingGroup);
  }

  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Objects(TVariantInParam Type/*[in]*/, 
                                         TVariant* Objects/*[out,retval]*/);
  TVariant        __fastcall get_Objects(TVariantInParam Type/*[in]*/);
  HRESULT         __fastcall AddObjects(TVariantInParam Objects/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddObjects(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall DetachObjects(TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL DeleteTmp/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DetachObjects(TVariantInParam Objects/*[in]*/, 
                                           TOLEBOOL DeleteTmp/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL DeleteTmp/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(TOLEBOOL DeleteTmp/*[in]*/);
  HRESULT         __fastcall Store(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Store(void);
  HRESULT         __fastcall get_ObjectsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_ObjectsCount(void);
  HRESULT         __fastcall ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                       double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/
                                       , double YMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                       double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                       double YMax/*[in]*/);
  HRESULT         __fastcall ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                          double XBase/*[in]*/, double YBase/*[in]*/, 
                                          double Scale/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL ScaleProjLinesSize/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                          double XBase/*[in]*/, double YBase/*[in]*/, 
                                          double Scale/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL ScaleProjLinesSize/*[in]*/);
  HRESULT         __fastcall WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/
                                           , double YBase/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                           double YBase/*[in]*/);
  HRESULT         __fastcall WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/);
  HRESULT         __fastcall ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/);
  HRESULT         __fastcall Draw(OLE_HANDLE HWnd/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Draw(OLE_HANDLE HWnd/*[in]*/);
  HRESULT         __fastcall Open(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Open(void);
  HRESULT         __fastcall Close(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(void);
  HRESULT         __fastcall get_Current(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   long            ObjectsCount = {read = get_ObjectsCount};
  __property   TOLEBOOL        Current = {read = get_Current};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingGroupDispT<IDrawingGroup> IDrawingGroupDisp;

// *********************************************************************//
// SmartIntf: TCOMICopyObjectParam
// Interface: ICopyObjectParam
// *********************************************************************//
template <class T /* ICopyObjectParam */ >
class TCOMICopyObjectParamT : public TComInterface<ICopyObjectParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICopyObjectParamT() {}
  TCOMICopyObjectParamT(ICopyObjectParam *intf, bool addRef = false) : TComInterface<ICopyObjectParam>(intf, addRef) {}
  TCOMICopyObjectParamT(const TCOMICopyObjectParamT& src) : TComInterface<ICopyObjectParam>(src) {}
  TCOMICopyObjectParamT& operator=(const TCOMICopyObjectParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_XOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_XOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_XOld(void);
  HRESULT         __fastcall set_YOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_YOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_YOld(void);
  HRESULT         __fastcall set_XNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_XNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_XNew(void);
  HRESULT         __fastcall set_YNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_YNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_YNew(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_AttributeCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttributeCopy(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SpecificationObjectCopy(void);

  __property   double          XOld = {read = get_XOld, write = set_XOld};
  __property   double          YOld = {read = get_YOld, write = set_YOld};
  __property   double          XNew = {read = get_XNew, write = set_XNew};
  __property   double          YNew = {read = get_YNew, write = set_YNew};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        AttributeCopy = {read = get_AttributeCopy, write = set_AttributeCopy};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   TOLEBOOL        SpecificationObjectCopy = {read = get_SpecificationObjectCopy, write = set_SpecificationObjectCopy};
};
typedef TCOMICopyObjectParamT<ICopyObjectParam> TCOMICopyObjectParam;

// *********************************************************************//
// DispIntf:  ICopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {58E1BACA-32D5-4EAB-87E9-D14816DAC29F}
// *********************************************************************//
template<class T>
class ICopyObjectParamDispT : public TAutoDriver<ICopyObjectParam>
{
public:
  ICopyObjectParamDispT(){}

  ICopyObjectParamDispT(ICopyObjectParam *pintf)
  {
    TAutoDriver<ICopyObjectParam>::Bind(pintf, false);
  }

  ICopyObjectParamDispT(ICopyObjectParamPtr pintf)
  {
    TAutoDriver<ICopyObjectParam>::Bind(pintf, true);
  }

  ICopyObjectParamDispT& operator=(ICopyObjectParam *pintf)
  {
    TAutoDriver<ICopyObjectParam>::Bind(pintf, false);
    return *this;
  }

  ICopyObjectParamDispT& operator=(ICopyObjectParamPtr pintf)
  {
    TAutoDriver<ICopyObjectParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__CopyObjectParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__CopyObjectParam);
  }

  HRESULT         __fastcall set_XOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_XOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_XOld(void);
  HRESULT         __fastcall set_YOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_YOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_YOld(void);
  HRESULT         __fastcall set_XNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_XNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_XNew(void);
  HRESULT         __fastcall set_YNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_YNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_YNew(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_AttributeCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttributeCopy(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SpecificationObjectCopy(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          XOld = {read = get_XOld, write = set_XOld};
  __property   double          YOld = {read = get_YOld, write = set_YOld};
  __property   double          XNew = {read = get_XNew, write = set_XNew};
  __property   double          YNew = {read = get_YNew, write = set_YNew};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        AttributeCopy = {read = get_AttributeCopy, write = set_AttributeCopy};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   TOLEBOOL        SpecificationObjectCopy = {read = get_SpecificationObjectCopy, write = set_SpecificationObjectCopy};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICopyObjectParamDispT<ICopyObjectParam> ICopyObjectParamDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingDocument
// Interface: IDrawingDocument
// *********************************************************************//
template <class T /* IDrawingDocument */ >
class TCOMIDrawingDocumentT : public TComInterface<IDrawingDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingDocumentT() {}
  TCOMIDrawingDocumentT(IDrawingDocument *intf, bool addRef = false) : TComInterface<IDrawingDocument>(intf, addRef) {}
  TCOMIDrawingDocumentT(const TCOMIDrawingDocumentT& src) : TComInterface<IDrawingDocument>(src) {}
  TCOMIDrawingDocumentT& operator=(const TCOMIDrawingDocumentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ChangeListDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_ChangeListDescriptions(void);
  HRESULT         __fastcall get_SpecRough(Kompasltapi7_tlb::ISpecRoughPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecRoughPtr __fastcall get_SpecRough(void);
  HRESULT         __fastcall get_TechnicalDemand(Kompasltapi7_tlb::ITechnicalDemandPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITechnicalDemandPtr __fastcall get_TechnicalDemand(void);

  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr ChangeListDescriptions = {read = get_ChangeListDescriptions};
  __property   Kompasltapi7_tlb::ISpecRoughPtr SpecRough = {read = get_SpecRough};
  __property   Kompasltapi7_tlb::ITechnicalDemandPtr TechnicalDemand = {read = get_TechnicalDemand};
};
typedef TCOMIDrawingDocumentT<IDrawingDocument> TCOMIDrawingDocument;

// *********************************************************************//
// DispIntf:  IDrawingDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C2214318-5C89-40F8-A25C-C87D08B490F4}
// *********************************************************************//
template<class T>
class IDrawingDocumentDispT : public TAutoDriver<IDrawingDocument>
{
public:
  IDrawingDocumentDispT(){}

  IDrawingDocumentDispT(IDrawingDocument *pintf)
  {
    TAutoDriver<IDrawingDocument>::Bind(pintf, false);
  }

  IDrawingDocumentDispT(IDrawingDocumentPtr pintf)
  {
    TAutoDriver<IDrawingDocument>::Bind(pintf, true);
  }

  IDrawingDocumentDispT& operator=(IDrawingDocument *pintf)
  {
    TAutoDriver<IDrawingDocument>::Bind(pintf, false);
    return *this;
  }

  IDrawingDocumentDispT& operator=(IDrawingDocumentPtr pintf)
  {
    TAutoDriver<IDrawingDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingDocument);
  }

  HRESULT         __fastcall get_ChangeListDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_ChangeListDescriptions(void);
  HRESULT         __fastcall get_SpecRough(Kompasltapi7_tlb::ISpecRoughPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecRoughPtr __fastcall get_SpecRough(void);
  HRESULT         __fastcall get_TechnicalDemand(Kompasltapi7_tlb::ITechnicalDemandPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITechnicalDemandPtr __fastcall get_TechnicalDemand(void);
  HRESULT         __fastcall get_ViewsAndLayersManager(Kompasltapi7_tlb::IViewsAndLayersManagerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewsAndLayersManagerPtr __fastcall get_ViewsAndLayersManager(void);
  HRESULT         __fastcall GetDrawingObjectNotifyResult(LPDISPATCH* Result/*[out,retval]*/);
  LPDISPATCH      __fastcall GetDrawingObjectNotifyResult(void);
  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr ChangeListDescriptions = {read = get_ChangeListDescriptions};
  __property   Kompasltapi7_tlb::ISpecRoughPtr SpecRough = {read = get_SpecRough};
  __property   Kompasltapi7_tlb::ITechnicalDemandPtr TechnicalDemand = {read = get_TechnicalDemand};

  __property   Kompasltapi7_tlb::IViewsAndLayersManagerPtr ViewsAndLayersManager = {read = get_ViewsAndLayersManager};

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingDocumentDispT<IDrawingDocument> IDrawingDocumentDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecRough
// Interface: ISpecRough
// *********************************************************************//
template <class T /* ISpecRough */ >
class TCOMISpecRoughT : public TComInterface<ISpecRough>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecRoughT() {}
  TCOMISpecRoughT(ISpecRough *intf, bool addRef = false) : TComInterface<ISpecRough>(intf, addRef) {}
  TCOMISpecRoughT(const TCOMISpecRoughT& src) : TComInterface<ISpecRough>(src) {}
  TCOMISpecRoughT& operator=(const TCOMISpecRoughT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall set_AutoPlacement(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoPlacement(void);
  HRESULT         __fastcall get_SignType(ksRoughSignEnum* Result/*[out,retval]*/);
  ksRoughSignEnum __fastcall get_SignType(void);
  HRESULT         __fastcall set_SignType(ksRoughSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_Text(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Text(void);
  HRESULT         __fastcall set_Text(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Distance(double* PVal/*[out,retval]*/);
  double          __fastcall get_Distance(void);
  HRESULT         __fastcall set_Distance(double PVal/*[in]*/);
  HRESULT         __fastcall get_AddSign(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AddSign(void);
  HRESULT         __fastcall set_AddSign(TOLEBOOL PRes/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_IsCreated(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsCreated(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoPlacement = {read = get_AutoPlacement, write = set_AutoPlacement};
  __property   ksRoughSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   BSTR            Text = {read = get_Text, write = set_Text};
  __property   double          Distance = {read = get_Distance, write = set_Distance};
  __property   TOLEBOOL        AddSign = {read = get_AddSign, write = set_AddSign};
  __property   TOLEBOOL        IsCreated = {read = get_IsCreated};
};
typedef TCOMISpecRoughT<ISpecRough> TCOMISpecRough;

// *********************************************************************//
// DispIntf:  ISpecRough
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D723AAC1-0315-4AED-99BF-88A7E55B6E6D}
// *********************************************************************//
template<class T>
class ISpecRoughDispT : public TAutoDriver<ISpecRough>
{
public:
  ISpecRoughDispT(){}

  ISpecRoughDispT(ISpecRough *pintf)
  {
    TAutoDriver<ISpecRough>::Bind(pintf, false);
  }

  ISpecRoughDispT(ISpecRoughPtr pintf)
  {
    TAutoDriver<ISpecRough>::Bind(pintf, true);
  }

  ISpecRoughDispT& operator=(ISpecRough *pintf)
  {
    TAutoDriver<ISpecRough>::Bind(pintf, false);
    return *this;
  }

  ISpecRoughDispT& operator=(ISpecRoughPtr pintf)
  {
    TAutoDriver<ISpecRough>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__SpecRough));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__SpecRough);
  }

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall set_AutoPlacement(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoPlacement(void);
  HRESULT         __fastcall get_SignType(ksRoughSignEnum* Result/*[out,retval]*/);
  ksRoughSignEnum __fastcall get_SignType(void);
  HRESULT         __fastcall set_SignType(ksRoughSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_Text(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Text(void);
  HRESULT         __fastcall set_Text(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Distance(double* PVal/*[out,retval]*/);
  double          __fastcall get_Distance(void);
  HRESULT         __fastcall set_Distance(double PVal/*[in]*/);
  HRESULT         __fastcall get_AddSign(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AddSign(void);
  HRESULT         __fastcall set_AddSign(TOLEBOOL PRes/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_IsCreated(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsCreated(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoPlacement = {read = get_AutoPlacement, write = set_AutoPlacement};
  __property   ksRoughSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   BSTR            Text = {read = get_Text, write = set_Text};
  __property   double          Distance = {read = get_Distance, write = set_Distance};
  __property   TOLEBOOL        AddSign = {read = get_AddSign, write = set_AddSign};
  __property   TOLEBOOL        IsCreated = {read = get_IsCreated};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecRoughDispT<ISpecRough> ISpecRoughDisp;

// *********************************************************************//
// SmartIntf: TCOMITechnicalDemand
// Interface: ITechnicalDemand
// *********************************************************************//
template <class T /* ITechnicalDemand */ >
class TCOMITechnicalDemandT : public TComInterface<ITechnicalDemand>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITechnicalDemandT() {}
  TCOMITechnicalDemandT(ITechnicalDemand *intf, bool addRef = false) : TComInterface<ITechnicalDemand>(intf, addRef) {}
  TCOMITechnicalDemandT(const TCOMITechnicalDemandT& src) : TComInterface<ITechnicalDemand>(src) {}
  TCOMITechnicalDemandT& operator=(const TCOMITechnicalDemandT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_BlocksGabarits(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BlocksGabarits(void);
  HRESULT         __fastcall set_BlocksGabarits(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall set_AutoPlacement(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoPlacement(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_IsCreated(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsCreated(void);
  HRESULT         __fastcall get_BlocksStartLineNumbers(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_BlocksStartLineNumbers(void);

  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   TOLEBOOL        AutoPlacement = {read = get_AutoPlacement, write = set_AutoPlacement};
  __property   TOLEBOOL        IsCreated = {read = get_IsCreated};
};
typedef TCOMITechnicalDemandT<ITechnicalDemand> TCOMITechnicalDemand;

// *********************************************************************//
// DispIntf:  ITechnicalDemand
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18C80AE5-BF92-482A-9C56-3D1638F5E5F5}
// *********************************************************************//
template<class T>
class ITechnicalDemandDispT : public TAutoDriver<ITechnicalDemand>
{
public:
  ITechnicalDemandDispT(){}

  ITechnicalDemandDispT(ITechnicalDemand *pintf)
  {
    TAutoDriver<ITechnicalDemand>::Bind(pintf, false);
  }

  ITechnicalDemandDispT(ITechnicalDemandPtr pintf)
  {
    TAutoDriver<ITechnicalDemand>::Bind(pintf, true);
  }

  ITechnicalDemandDispT& operator=(ITechnicalDemand *pintf)
  {
    TAutoDriver<ITechnicalDemand>::Bind(pintf, false);
    return *this;
  }

  ITechnicalDemandDispT& operator=(ITechnicalDemandPtr pintf)
  {
    TAutoDriver<ITechnicalDemand>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TechnicalDemand));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TechnicalDemand);
  }

  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_BlocksGabarits(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BlocksGabarits(void);
  HRESULT         __fastcall set_BlocksGabarits(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall set_AutoPlacement(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoPlacement(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_IsCreated(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsCreated(void);
  HRESULT         __fastcall get_BlocksStartLineNumbers(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_BlocksStartLineNumbers(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   TOLEBOOL        AutoPlacement = {read = get_AutoPlacement, write = set_AutoPlacement};
  __property   TOLEBOOL        IsCreated = {read = get_IsCreated};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITechnicalDemandDispT<ITechnicalDemand> ITechnicalDemandDisp;

// *********************************************************************//
// SmartIntf: TCOMIFragmentDocument
// Interface: IFragmentDocument
// *********************************************************************//
template <class T /* IFragmentDocument */ >
class TCOMIFragmentDocumentT : public TComInterface<IFragmentDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIFragmentDocumentT() {}
  TCOMIFragmentDocumentT(IFragmentDocument *intf, bool addRef = false) : TComInterface<IFragmentDocument>(intf, addRef) {}
  TCOMIFragmentDocumentT(const TCOMIFragmentDocumentT& src) : TComInterface<IFragmentDocument>(src) {}
  TCOMIFragmentDocumentT& operator=(const TCOMIFragmentDocumentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_IsSketch(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsSketch(void);

  __property   TOLEBOOL        IsSketch = {read = get_IsSketch};
};
typedef TCOMIFragmentDocumentT<IFragmentDocument> TCOMIFragmentDocument;

// *********************************************************************//
// DispIntf:  IFragmentDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E19CE626-DF9C-48C4-A83D-3E3BC7F0DACA}
// *********************************************************************//
template<class T>
class IFragmentDocumentDispT : public TAutoDriver<IFragmentDocument>
{
public:
  IFragmentDocumentDispT(){}

  IFragmentDocumentDispT(IFragmentDocument *pintf)
  {
    TAutoDriver<IFragmentDocument>::Bind(pintf, false);
  }

  IFragmentDocumentDispT(IFragmentDocumentPtr pintf)
  {
    TAutoDriver<IFragmentDocument>::Bind(pintf, true);
  }

  IFragmentDocumentDispT& operator=(IFragmentDocument *pintf)
  {
    TAutoDriver<IFragmentDocument>::Bind(pintf, false);
    return *this;
  }

  IFragmentDocumentDispT& operator=(IFragmentDocumentPtr pintf)
  {
    TAutoDriver<IFragmentDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_FragmentDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_FragmentDocument);
  }

  HRESULT         __fastcall get_IsSketch(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsSketch(void);
  HRESULT         __fastcall get_ViewsAndLayersManager(Kompasltapi7_tlb::IViewsAndLayersManagerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewsAndLayersManagerPtr __fastcall get_ViewsAndLayersManager(void);
  HRESULT         __fastcall GetDrawingObjectNotifyResult(LPDISPATCH* Result/*[out,retval]*/);
  LPDISPATCH      __fastcall GetDrawingObjectNotifyResult(void);
  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        IsSketch = {read = get_IsSketch};

  __property   Kompasltapi7_tlb::IViewsAndLayersManagerPtr ViewsAndLayersManager = {read = get_ViewsAndLayersManager};

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IFragmentDocumentDispT<IFragmentDocument> IFragmentDocumentDisp;

// *********************************************************************//
// SmartIntf: TCOMISpecificationDocument
// Interface: ISpecificationDocument
// *********************************************************************//
template <class T /* ISpecificationDocument */ >
class TCOMISpecificationDocumentT : public TComInterface<ISpecificationDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpecificationDocumentT() {}
  TCOMISpecificationDocumentT(ISpecificationDocument *intf, bool addRef = false) : TComInterface<ISpecificationDocument>(intf, addRef) {}
  TCOMISpecificationDocumentT(const TCOMISpecificationDocumentT& src) : TComInterface<ISpecificationDocument>(src) {}
  TCOMISpecificationDocumentT& operator=(const TCOMISpecificationDocumentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void);

  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};
};
typedef TCOMISpecificationDocumentT<ISpecificationDocument> TCOMISpecificationDocument;

// *********************************************************************//
// DispIntf:  ISpecificationDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E3FA8FD0-6187-4625-89B7-3C815651944D}
// *********************************************************************//
template<class T>
class ISpecificationDocumentDispT : public TAutoDriver<ISpecificationDocument>
{
public:
  ISpecificationDocumentDispT(){}

  ISpecificationDocumentDispT(ISpecificationDocument *pintf)
  {
    TAutoDriver<ISpecificationDocument>::Bind(pintf, false);
  }

  ISpecificationDocumentDispT(ISpecificationDocumentPtr pintf)
  {
    TAutoDriver<ISpecificationDocument>::Bind(pintf, true);
  }

  ISpecificationDocumentDispT& operator=(ISpecificationDocument *pintf)
  {
    TAutoDriver<ISpecificationDocument>::Bind(pintf, false);
    return *this;
  }

  ISpecificationDocumentDispT& operator=(ISpecificationDocumentPtr pintf)
  {
    TAutoDriver<ISpecificationDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SpecificationDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SpecificationDocument);
  }

  HRESULT         __fastcall get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall get_AttachedDocuments(void);
  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IAttachedDocumentsPtr AttachedDocuments = {read = get_AttachedDocuments};

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpecificationDocumentDispT<ISpecificationDocument> ISpecificationDocumentDisp;

// *********************************************************************//
// SmartIntf: TCOMITextDocument
// Interface: ITextDocument
// *********************************************************************//
template <class T /* ITextDocument */ >
class TCOMITextDocumentT : public TComInterface<ITextDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITextDocumentT() {}
  TCOMITextDocumentT(ITextDocument *intf, bool addRef = false) : TComInterface<ITextDocument>(intf, addRef) {}
  TCOMITextDocumentT(const TCOMITextDocumentT& src) : TComInterface<ITextDocument>(src) {}
  TCOMITextDocumentT& operator=(const TCOMITextDocumentT& src) { Bind(src, true); return *this;}


};
typedef TCOMITextDocumentT<ITextDocument> TCOMITextDocument;

// *********************************************************************//
// DispIntf:  ITextDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {71A589EA-D32F-42C4-BBC4-A51611E85E90}
// *********************************************************************//
template<class T>
class ITextDocumentDispT : public TAutoDriver<ITextDocument>
{
public:
  ITextDocumentDispT(){}

  ITextDocumentDispT(ITextDocument *pintf)
  {
    TAutoDriver<ITextDocument>::Bind(pintf, false);
  }

  ITextDocumentDispT(ITextDocumentPtr pintf)
  {
    TAutoDriver<ITextDocument>::Bind(pintf, true);
  }

  ITextDocumentDispT& operator=(ITextDocument *pintf)
  {
    TAutoDriver<ITextDocument>::Bind(pintf, false);
    return *this;
  }

  ITextDocumentDispT& operator=(ITextDocumentPtr pintf)
  {
    TAutoDriver<ITextDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TextDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TextDocument);
  }

  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITextDocumentDispT<ITextDocument> ITextDocumentDisp;

// *********************************************************************//
// SmartIntf: TCOMIPartDocument
// Interface: IPartDocument
// *********************************************************************//
template <class T /* IPartDocument */ >
class TCOMIPartDocumentT : public TComInterface<IPartDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPartDocumentT() {}
  TCOMIPartDocumentT(IPartDocument *intf, bool addRef = false) : TComInterface<IPartDocument>(intf, addRef) {}
  TCOMIPartDocumentT(const TCOMIPartDocumentT& src) : TComInterface<IPartDocument>(src) {}
  TCOMIPartDocumentT& operator=(const TCOMIPartDocumentT& src) { Bind(src, true); return *this;}


};
typedef TCOMIPartDocumentT<IPartDocument> TCOMIPartDocument;

// *********************************************************************//
// DispIntf:  IPartDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0075EA2A-5498-4E28-BDF3-0288EB168054}
// *********************************************************************//
template<class T>
class IPartDocumentDispT : public TAutoDriver<IPartDocument>
{
public:
  IPartDocumentDispT(){}

  IPartDocumentDispT(IPartDocument *pintf)
  {
    TAutoDriver<IPartDocument>::Bind(pintf, false);
  }

  IPartDocumentDispT(IPartDocumentPtr pintf)
  {
    TAutoDriver<IPartDocument>::Bind(pintf, true);
  }

  IPartDocumentDispT& operator=(IPartDocument *pintf)
  {
    TAutoDriver<IPartDocument>::Bind(pintf, false);
    return *this;
  }

  IPartDocumentDispT& operator=(IPartDocumentPtr pintf)
  {
    TAutoDriver<IPartDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PartDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PartDocument);
  }

  HRESULT         __fastcall get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_TopPart(void);
  HRESULT         __fastcall set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlanes(void);
  HRESULT         __fastcall set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAxis(void);
  HRESULT         __fastcall set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSketches(void);
  HRESULT         __fastcall set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlaces(void);
  HRESULT         __fastcall set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSurfaces(void);
  HRESULT         __fastcall set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllThreads(void);
  HRESULT         __fastcall set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllCurves(void);
  HRESULT         __fastcall set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllControlPoints(void);
  HRESULT         __fastcall set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Perspective(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Perspective(void);
  HRESULT         __fastcall set_DrawMode(long PVal/*[in]*/);
  HRESULT         __fastcall get_DrawMode(long* PVal/*[out,retval]*/);
  long            __fastcall get_DrawMode(void);
  HRESULT         __fastcall set_ShadedWireframe(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShadedWireframe(void);
  HRESULT         __fastcall set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateObjectsInCurrentLocalCS(void);
  HRESULT         __fastcall set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDimensions(void);
  HRESULT         __fastcall set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDesignations(void);
  HRESULT         __fastcall set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAuxiliaryGeom(void);
  HRESULT         __fastcall set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideInComponentsMode(void);
  HRESULT         __fastcall get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISelectionManagerPtr __fastcall get_SelectionManager(void);
  HRESULT         __fastcall get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IChooseManagerPtr __fastcall get_ChooseManager(void);
  HRESULT         __fastcall CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                          TVariantInParam Objects/*[in]*/, 
                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                          Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributePtr __fastcall CreateAttrEx(double AttrID/*[in]*/, 
                                                          BSTR Libname/*[in]*/, 
                                                          TVariantInParam Objects/*[in]*/, 
                                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);
  HRESULT         __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);
  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IPart7Ptr TopPart = {read = get_TopPart};
  __property   TOLEBOOL        HideAllPlanes = {read = get_HideAllPlanes, write = set_HideAllPlanes};
  __property   TOLEBOOL        HideAllAxis = {read = get_HideAllAxis, write = set_HideAllAxis};
  __property   TOLEBOOL        HideAllSketches = {read = get_HideAllSketches, write = set_HideAllSketches};
  __property   TOLEBOOL        HideAllPlaces = {read = get_HideAllPlaces, write = set_HideAllPlaces};
  __property   TOLEBOOL        HideAllSurfaces = {read = get_HideAllSurfaces, write = set_HideAllSurfaces};
  __property   TOLEBOOL        HideAllThreads = {read = get_HideAllThreads, write = set_HideAllThreads};
  __property   TOLEBOOL        HideAllCurves = {read = get_HideAllCurves, write = set_HideAllCurves};
  __property   TOLEBOOL        HideAllControlPoints = {read = get_HideAllControlPoints, write = set_HideAllControlPoints};
  __property   TOLEBOOL        Perspective = {read = get_Perspective, write = set_Perspective};
  __property   long            DrawMode = {read = get_DrawMode, write = set_DrawMode};
  __property   TOLEBOOL        ShadedWireframe = {read = get_ShadedWireframe, write = set_ShadedWireframe};
  __property   TOLEBOOL        CreateObjectsInCurrentLocalCS = {read = get_CreateObjectsInCurrentLocalCS, write = set_CreateObjectsInCurrentLocalCS};
  __property   TOLEBOOL        HideAllDimensions = {read = get_HideAllDimensions, write = set_HideAllDimensions};
  __property   TOLEBOOL        HideAllDesignations = {read = get_HideAllDesignations, write = set_HideAllDesignations};
  __property   TOLEBOOL        HideAllAuxiliaryGeom = {read = get_HideAllAuxiliaryGeom, write = set_HideAllAuxiliaryGeom};
  __property   TOLEBOOL        HideInComponentsMode = {read = get_HideInComponentsMode, write = set_HideInComponentsMode};
  __property   Kompasltapi7_tlb::ISelectionManagerPtr SelectionManager = {read = get_SelectionManager};
  __property   Kompasltapi7_tlb::IChooseManagerPtr ChooseManager = {read = get_ChooseManager};

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPartDocumentDispT<IPartDocument> IPartDocumentDisp;

// *********************************************************************//
// SmartIntf: TCOMIAssemblyDocument
// Interface: IAssemblyDocument
// *********************************************************************//
template <class T /* IAssemblyDocument */ >
class TCOMIAssemblyDocumentT : public TComInterface<IAssemblyDocument>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAssemblyDocumentT() {}
  TCOMIAssemblyDocumentT(IAssemblyDocument *intf, bool addRef = false) : TComInterface<IAssemblyDocument>(intf, addRef) {}
  TCOMIAssemblyDocumentT(const TCOMIAssemblyDocumentT& src) : TComInterface<IAssemblyDocument>(src) {}
  TCOMIAssemblyDocumentT& operator=(const TCOMIAssemblyDocumentT& src) { Bind(src, true); return *this;}


};
typedef TCOMIAssemblyDocumentT<IAssemblyDocument> TCOMIAssemblyDocument;

// *********************************************************************//
// DispIntf:  IAssemblyDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6B3F33A-3273-43EF-9B8A-7C0AF8FAA129}
// *********************************************************************//
template<class T>
class IAssemblyDocumentDispT : public TAutoDriver<IAssemblyDocument>
{
public:
  IAssemblyDocumentDispT(){}

  IAssemblyDocumentDispT(IAssemblyDocument *pintf)
  {
    TAutoDriver<IAssemblyDocument>::Bind(pintf, false);
  }

  IAssemblyDocumentDispT(IAssemblyDocumentPtr pintf)
  {
    TAutoDriver<IAssemblyDocument>::Bind(pintf, true);
  }

  IAssemblyDocumentDispT& operator=(IAssemblyDocument *pintf)
  {
    TAutoDriver<IAssemblyDocument>::Bind(pintf, false);
    return *this;
  }

  IAssemblyDocumentDispT& operator=(IAssemblyDocumentPtr pintf)
  {
    TAutoDriver<IAssemblyDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AssemblyDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AssemblyDocument);
  }

  HRESULT         __fastcall get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_TopPart(void);
  HRESULT         __fastcall set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlanes(void);
  HRESULT         __fastcall set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAxis(void);
  HRESULT         __fastcall set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSketches(void);
  HRESULT         __fastcall set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllPlaces(void);
  HRESULT         __fastcall set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllSurfaces(void);
  HRESULT         __fastcall set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllThreads(void);
  HRESULT         __fastcall set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllCurves(void);
  HRESULT         __fastcall set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllControlPoints(void);
  HRESULT         __fastcall set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Perspective(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Perspective(void);
  HRESULT         __fastcall set_DrawMode(long PVal/*[in]*/);
  HRESULT         __fastcall get_DrawMode(long* PVal/*[out,retval]*/);
  long            __fastcall get_DrawMode(void);
  HRESULT         __fastcall set_ShadedWireframe(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShadedWireframe(void);
  HRESULT         __fastcall set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateObjectsInCurrentLocalCS(void);
  HRESULT         __fastcall set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDimensions(void);
  HRESULT         __fastcall set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllDesignations(void);
  HRESULT         __fastcall set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideAllAuxiliaryGeom(void);
  HRESULT         __fastcall set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HideInComponentsMode(void);
  HRESULT         __fastcall get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISelectionManagerPtr __fastcall get_SelectionManager(void);
  HRESULT         __fastcall get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IChooseManagerPtr __fastcall get_ChooseManager(void);
  HRESULT         __fastcall CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                          TVariantInParam Objects/*[in]*/, 
                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                          Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributePtr __fastcall CreateAttrEx(double AttrID/*[in]*/, 
                                                          BSTR Libname/*[in]*/, 
                                                          TVariantInParam Objects/*[in]*/, 
                                                          Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);
  HRESULT         __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                              TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, 
                                              long Key3/*[in]*/, long Key4/*[in]*/, 
                                              double Numb/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                              Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/);
  HRESULT         __fastcall get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/);
  DocumentTypeEnum __fastcall get_DocumentType(void);
  HRESULT         __fastcall get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentFramesPtr __fastcall get_DocumentFrames(void);
  HRESULT         __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                   TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(DocumentCloseOptions closeOptions/*[in]*/);
  HRESULT         __fastcall Save();
  HRESULT         __fastcall SaveAs(BSTR PathName/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_PathName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PathName(void);
  HRESULT         __fastcall get_Path(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Path(void);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall get_Active(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Active(void);
  HRESULT         __fastcall set_Active(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Changed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Changed(void);
  HRESULT         __fastcall get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall get_DocumentSettings(void);
  HRESULT         __fastcall get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall get_SpecificationDescriptions(void);
  HRESULT         __fastcall get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall get_LayoutSheets(void);
  HRESULT         __fastcall get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall get_UserDataStoragesMng(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IPart7Ptr TopPart = {read = get_TopPart};
  __property   TOLEBOOL        HideAllPlanes = {read = get_HideAllPlanes, write = set_HideAllPlanes};
  __property   TOLEBOOL        HideAllAxis = {read = get_HideAllAxis, write = set_HideAllAxis};
  __property   TOLEBOOL        HideAllSketches = {read = get_HideAllSketches, write = set_HideAllSketches};
  __property   TOLEBOOL        HideAllPlaces = {read = get_HideAllPlaces, write = set_HideAllPlaces};
  __property   TOLEBOOL        HideAllSurfaces = {read = get_HideAllSurfaces, write = set_HideAllSurfaces};
  __property   TOLEBOOL        HideAllThreads = {read = get_HideAllThreads, write = set_HideAllThreads};
  __property   TOLEBOOL        HideAllCurves = {read = get_HideAllCurves, write = set_HideAllCurves};
  __property   TOLEBOOL        HideAllControlPoints = {read = get_HideAllControlPoints, write = set_HideAllControlPoints};
  __property   TOLEBOOL        Perspective = {read = get_Perspective, write = set_Perspective};
  __property   long            DrawMode = {read = get_DrawMode, write = set_DrawMode};
  __property   TOLEBOOL        ShadedWireframe = {read = get_ShadedWireframe, write = set_ShadedWireframe};
  __property   TOLEBOOL        CreateObjectsInCurrentLocalCS = {read = get_CreateObjectsInCurrentLocalCS, write = set_CreateObjectsInCurrentLocalCS};
  __property   TOLEBOOL        HideAllDimensions = {read = get_HideAllDimensions, write = set_HideAllDimensions};
  __property   TOLEBOOL        HideAllDesignations = {read = get_HideAllDesignations, write = set_HideAllDesignations};
  __property   TOLEBOOL        HideAllAuxiliaryGeom = {read = get_HideAllAuxiliaryGeom, write = set_HideAllAuxiliaryGeom};
  __property   TOLEBOOL        HideInComponentsMode = {read = get_HideInComponentsMode, write = set_HideInComponentsMode};
  __property   Kompasltapi7_tlb::ISelectionManagerPtr SelectionManager = {read = get_SelectionManager};
  __property   Kompasltapi7_tlb::IChooseManagerPtr ChooseManager = {read = get_ChooseManager};

  __property   DocumentTypeEnum DocumentType = {read = get_DocumentType};
  __property   Kompasltapi7_tlb::IDocumentFramesPtr DocumentFrames = {read = get_DocumentFrames};
  __property   BSTR            Name = {read = get_Name};
  __property   BSTR            PathName = {read = get_PathName};
  __property   BSTR            Path = {read = get_Path};
  __property   TOLEBOOL        Visible = {read = get_Visible};
  __property   TOLEBOOL        Active = {read = get_Active, write = set_Active};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        Changed = {read = get_Changed};
  __property   Kompasltapi7_tlb::IDocumentSettingsPtr DocumentSettings = {read = get_DocumentSettings};
  __property   Kompasltapi7_tlb::ISpecificationDescriptionsPtr SpecificationDescriptions = {read = get_SpecificationDescriptions};
  __property   Kompasltapi7_tlb::ILayoutSheetsPtr LayoutSheets = {read = get_LayoutSheets};
  __property   Kompasltapi7_tlb::IUserDataStoragesMngPtr UserDataStoragesMng = {read = get_UserDataStoragesMng};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAssemblyDocumentDispT<IAssemblyDocument> IAssemblyDocumentDisp;

typedef TComInterface<IDimensionText>  TCOMIDimensionText;

// *********************************************************************//
// DispIntf:  IDimensionText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E0197BA7-C3FB-44A3-9C13-49115A150ED2}
// *********************************************************************//
template<class T>
class IDimensionTextDispT : public TAutoDriver<IDimensionText>
{
public:
  IDimensionTextDispT(){}

  IDimensionTextDispT(IDimensionText *pintf)
  {
    TAutoDriver<IDimensionText>::Bind(pintf, false);
  }

  IDimensionTextDispT(IDimensionTextPtr pintf)
  {
    TAutoDriver<IDimensionText>::Bind(pintf, true);
  }

  IDimensionTextDispT& operator=(IDimensionText *pintf)
  {
    TAutoDriver<IDimensionText>::Bind(pintf, false);
    return *this;
  }

  IDimensionTextDispT& operator=(IDimensionTextPtr pintf)
  {
    TAutoDriver<IDimensionText>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_Sign(long* Result/*[out,retval]*/);
  long            __fastcall get_Sign(void);
  HRESULT         __fastcall set_Sign(long Result/*[in]*/);
  HRESULT         __fastcall get_SignFont(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_SignFont(void);
  HRESULT         __fastcall set_SignFont(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_NominalValue(double* Result/*[out,retval]*/);
  double          __fastcall get_NominalValue(void);
  HRESULT         __fastcall set_NominalValue(double Result/*[in]*/);
  HRESULT         __fastcall get_AutoNominalValue(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoNominalValue(void);
  HRESULT         __fastcall set_AutoNominalValue(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ToleranceOn(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ToleranceOn(void);
  HRESULT         __fastcall set_ToleranceOn(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_DeviationOn(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DeviationOn(void);
  HRESULT         __fastcall set_DeviationOn(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_DeviationType(ksDimensionDeviationEnum* Result/*[out,retval]*/);
  ksDimensionDeviationEnum __fastcall get_DeviationType(void);
  HRESULT         __fastcall set_DeviationType(ksDimensionDeviationEnum Result/*[in]*/);
  HRESULT         __fastcall get_Rectangle(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Rectangle(void);
  HRESULT         __fastcall set_Rectangle(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Underline(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Underline(void);
  HRESULT         __fastcall set_Underline(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Brackets(ksDimensionTextBracketsEnum* Result/*[out,retval]*/);
  ksDimensionTextBracketsEnum __fastcall get_Brackets(void);
  HRESULT         __fastcall set_Brackets(ksDimensionTextBracketsEnum Result/*[in]*/);
  HRESULT         __fastcall get_TextAlign(ksDimensionTextAlignEnum* Result/*[out,retval]*/);
  ksDimensionTextAlignEnum __fastcall get_TextAlign(void);
  HRESULT         __fastcall set_TextAlign(ksDimensionTextAlignEnum Result/*[in]*/);
  HRESULT         __fastcall get_Prefix(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_Prefix(void);
  HRESULT         __fastcall get_NominalText(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_NominalText(void);
  HRESULT         __fastcall get_Tolerance(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tolerance(void);
  HRESULT         __fastcall set_Tolerance(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_HighDeviation(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_HighDeviation(void);
  HRESULT         __fastcall get_LowDeviation(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_LowDeviation(void);
  HRESULT         __fastcall get_Unit(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_Unit(void);
  HRESULT         __fastcall get_Suffix(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_Suffix(void);
  HRESULT         __fastcall get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnder(void);
  HRESULT         __fastcall get_TextFormat(ksDimTextFormatEnum* PVal/*[out,retval]*/);
  ksDimTextFormatEnum __fastcall get_TextFormat(void);
  HRESULT         __fastcall set_TextFormat(ksDimTextFormatEnum PVal/*[in]*/);

  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Sign = {read = get_Sign, write = set_Sign};
  __property   BSTR            SignFont = {read = get_SignFont, write = set_SignFont};
  __property   double          NominalValue = {read = get_NominalValue, write = set_NominalValue};
  __property   TOLEBOOL        AutoNominalValue = {read = get_AutoNominalValue, write = set_AutoNominalValue};
  __property   TOLEBOOL        ToleranceOn = {read = get_ToleranceOn, write = set_ToleranceOn};
  __property   TOLEBOOL        DeviationOn = {read = get_DeviationOn, write = set_DeviationOn};
  __property   ksDimensionDeviationEnum DeviationType = {read = get_DeviationType, write = set_DeviationType};
  __property   TOLEBOOL        Rectangle = {read = get_Rectangle, write = set_Rectangle};
  __property   TOLEBOOL        Underline = {read = get_Underline, write = set_Underline};
  __property   ksDimensionTextBracketsEnum Brackets = {read = get_Brackets, write = set_Brackets};
  __property   ksDimensionTextAlignEnum TextAlign = {read = get_TextAlign, write = set_TextAlign};
  __property   Kompasltapi7_tlb::ITextLinePtr Prefix = {read = get_Prefix};
  __property   Kompasltapi7_tlb::ITextLinePtr NominalText = {read = get_NominalText};
  __property   BSTR            Tolerance = {read = get_Tolerance, write = set_Tolerance};
  __property   Kompasltapi7_tlb::ITextLinePtr HighDeviation = {read = get_HighDeviation};
  __property   Kompasltapi7_tlb::ITextLinePtr LowDeviation = {read = get_LowDeviation};
  __property   Kompasltapi7_tlb::ITextLinePtr Unit = {read = get_Unit};
  __property   Kompasltapi7_tlb::ITextLinePtr Suffix = {read = get_Suffix};
  __property   Kompasltapi7_tlb::ITextPtr TextUnder = {read = get_TextUnder};
  __property   ksDimTextFormatEnum TextFormat = {read = get_TextFormat, write = set_TextFormat};
};
typedef IDimensionTextDispT<IDimensionText> IDimensionTextDisp;

typedef TComInterface<IDimensionParams>  TCOMIDimensionParams;

// *********************************************************************//
// DispIntf:  IDimensionParams
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {534518CC-6577-4273-887A-6B833FDE6ED7}
// *********************************************************************//
template<class T>
class IDimensionParamsDispT : public TAutoDriver<IDimensionParams>
{
public:
  IDimensionParamsDispT(){}

  IDimensionParamsDispT(IDimensionParams *pintf)
  {
    TAutoDriver<IDimensionParams>::Bind(pintf, false);
  }

  IDimensionParamsDispT(IDimensionParamsPtr pintf)
  {
    TAutoDriver<IDimensionParams>::Bind(pintf, true);
  }

  IDimensionParamsDispT& operator=(IDimensionParams *pintf)
  {
    TAutoDriver<IDimensionParams>::Bind(pintf, false);
    return *this;
  }

  IDimensionParamsDispT& operator=(IDimensionParamsPtr pintf)
  {
    TAutoDriver<IDimensionParams>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_RemoteLine1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_RemoteLine1(void);
  HRESULT         __fastcall set_RemoteLine1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_RemoteLine2(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_RemoteLine2(void);
  HRESULT         __fastcall set_RemoteLine2(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ArrowType1(ksArrowEnum* PVal/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType1(void);
  HRESULT         __fastcall set_ArrowType1(ksArrowEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ArrowType2(ksArrowEnum* PVal/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType2(void);
  HRESULT         __fastcall set_ArrowType2(ksArrowEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ArrowPos(ksDimensionArrowPosEnum* PVal/*[out,retval]*/);
  ksDimensionArrowPosEnum __fastcall get_ArrowPos(void);
  HRESULT         __fastcall set_ArrowPos(ksDimensionArrowPosEnum PVal/*[in]*/);
  HRESULT         __fastcall get_TextPos(long* PVal/*[out,retval]*/);
  long            __fastcall get_TextPos(void);
  HRESULT         __fastcall set_TextPos(long PVal/*[in]*/);
  HRESULT         __fastcall get_TextType(ksDimensionTextTypeEnum* PVal/*[out,retval]*/);
  ksDimensionTextTypeEnum __fastcall get_TextType(void);
  HRESULT         __fastcall set_TextType(ksDimensionTextTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/);
  ksDimensionTextPosEnum __fastcall get_TextOnLine(void);
  HRESULT         __fastcall set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/);
  HRESULT         __fastcall get_TextBase(ksDimensionBaseEnum* PVal/*[out,retval]*/);
  ksDimensionBaseEnum __fastcall get_TextBase(void);
  HRESULT         __fastcall set_TextBase(ksDimensionBaseEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfAngle(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfAngle(void);
  HRESULT         __fastcall set_ShelfAngle(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfLength(void);
  HRESULT         __fastcall set_ShelfLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_Gap(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Gap(void);
  HRESULT         __fastcall set_Gap(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_GapValue(long* PVal/*[out,retval]*/);
  long            __fastcall get_GapValue(void);
  HRESULT         __fastcall set_GapValue(long PVal/*[in]*/);

  __property   TOLEBOOL        RemoteLine1 = {read = get_RemoteLine1, write = set_RemoteLine1};
  __property   TOLEBOOL        RemoteLine2 = {read = get_RemoteLine2, write = set_RemoteLine2};
  __property   ksArrowEnum ArrowType1 = {read = get_ArrowType1, write = set_ArrowType1};
  __property   ksArrowEnum ArrowType2 = {read = get_ArrowType2, write = set_ArrowType2};
  __property   ksDimensionArrowPosEnum ArrowPos = {read = get_ArrowPos, write = set_ArrowPos};
  __property   long            TextPos = {read = get_TextPos, write = set_TextPos};
  __property   ksDimensionTextTypeEnum TextType = {read = get_TextType, write = set_TextType};
  __property   ksDimensionTextPosEnum TextOnLine = {read = get_TextOnLine, write = set_TextOnLine};
  __property   ksDimensionBaseEnum TextBase = {read = get_TextBase, write = set_TextBase};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfAngle = {read = get_ShelfAngle, write = set_ShelfAngle};
  __property   double          ShelfLength = {read = get_ShelfLength, write = set_ShelfLength};
  __property   TOLEBOOL        Gap = {read = get_Gap, write = set_Gap};
  __property   long            GapValue = {read = get_GapValue, write = set_GapValue};
};
typedef IDimensionParamsDispT<IDimensionParams> IDimensionParamsDisp;

typedef TComInterface<ILoadCombination>  TCOMILoadCombination;

// *********************************************************************//
// DispIntf:  ILoadCombination
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E7F1FD16-B641-4264-859C-D47217DA8B04}
// *********************************************************************//
template<class T>
class ILoadCombinationDispT : public TAutoDriver<ILoadCombination>
{
public:
  ILoadCombinationDispT(){}

  ILoadCombinationDispT(ILoadCombination *pintf)
  {
    TAutoDriver<ILoadCombination>::Bind(pintf, false);
  }

  ILoadCombinationDispT(ILoadCombinationPtr pintf)
  {
    TAutoDriver<ILoadCombination>::Bind(pintf, true);
  }

  ILoadCombinationDispT& operator=(ILoadCombination *pintf)
  {
    TAutoDriver<ILoadCombination>::Bind(pintf, false);
    return *this;
  }

  ILoadCombinationDispT& operator=(ILoadCombinationPtr pintf)
  {
    TAutoDriver<ILoadCombination>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_CompletelyLoaded(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CompletelyLoaded(void);
  HRESULT         __fastcall get_LoadCombinations(TVariant* Value/*[out,retval]*/);
  TVariant        __fastcall get_LoadCombinations(void);
  HRESULT         __fastcall get_CurrentIndex(long* Value/*[out,retval]*/);
  long            __fastcall get_CurrentIndex(void);
  HRESULT         __fastcall Create(BSTR CombinationName/*[in]*/, long* Value/*[out,retval]*/);
  long            __fastcall Create(BSTR CombinationName/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam LoadCombinationIndex/*[in]*/, 
                                    TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(TVariantInParam LoadCombinationIndex/*[in]*/);
  HRESULT         __fastcall Apply(TVariantInParam LoadCombinationIndex/*[in]*/, 
                                   TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall Apply(TVariantInParam LoadCombinationIndex/*[in]*/);

  __property   TOLEBOOL        CompletelyLoaded = {read = get_CompletelyLoaded};
  __property   long            CurrentIndex = {read = get_CurrentIndex};
};
typedef ILoadCombinationDispT<ILoadCombination> ILoadCombinationDisp;

typedef TComInterface<IFrameTreesManager>  TCOMIFrameTreesManager;

// *********************************************************************//
// DispIntf:  IFrameTreesManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9019350-FF1D-4161-B41B-CD1B020ECF36}
// *********************************************************************//
template<class T>
class IFrameTreesManagerDispT : public TAutoDriver<IFrameTreesManager>
{
public:
  IFrameTreesManagerDispT(){}

  IFrameTreesManagerDispT(IFrameTreesManager *pintf)
  {
    TAutoDriver<IFrameTreesManager>::Bind(pintf, false);
  }

  IFrameTreesManagerDispT(IFrameTreesManagerPtr pintf)
  {
    TAutoDriver<IFrameTreesManager>::Bind(pintf, true);
  }

  IFrameTreesManagerDispT& operator=(IFrameTreesManager *pintf)
  {
    TAutoDriver<IFrameTreesManager>::Bind(pintf, false);
    return *this;
  }

  IFrameTreesManagerDispT& operator=(IFrameTreesManagerPtr pintf)
  {
    TAutoDriver<IFrameTreesManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall AddTab(BSTR TabCaption/*[in]*/, BSTR OcxClassID/*[in]*/, 
                                    LPDISPATCH* PVal/*[out,retval]*/);
  LPDISPATCH      __fastcall AddTab(BSTR TabCaption/*[in]*/, BSTR OcxClassID/*[in]*/);
  HRESULT         __fastcall RemoveTab(LPDISPATCH Ocx/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveTab(LPDISPATCH Ocx/*[in]*/);
  HRESULT         __fastcall get_ActiveTab(LPDISPATCH* Ocx/*[out,retval]*/);
  LPDISPATCH      __fastcall get_ActiveTab(void);
  HRESULT         __fastcall set_ActiveTab(LPDISPATCH Ocx/*[in]*/);
  HRESULT         __fastcall get_TabsVisible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TabsVisible(void);
  HRESULT         __fastcall set_TabsVisible(TOLEBOOL PVal/*[in]*/);

  __property   LPDISPATCH      ActiveTab = {read = get_ActiveTab, write = set_ActiveTab};
  __property   TOLEBOOL        TabsVisible = {read = get_TabsVisible, write = set_TabsVisible};
};
typedef IFrameTreesManagerDispT<IFrameTreesManager> IFrameTreesManagerDisp;

typedef TComInterface<IAttrTypeMng>  TCOMIAttrTypeMng;

// *********************************************************************//
// DispIntf:  IAttrTypeMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5378690E-A57D-473F-84DC-CA508B34FAD7}
// *********************************************************************//
template<class T>
class IAttrTypeMngDispT : public TAutoDriver<IAttrTypeMng>
{
public:
  IAttrTypeMngDispT(){}

  IAttrTypeMngDispT(IAttrTypeMng *pintf)
  {
    TAutoDriver<IAttrTypeMng>::Bind(pintf, false);
  }

  IAttrTypeMngDispT(IAttrTypeMngPtr pintf)
  {
    TAutoDriver<IAttrTypeMng>::Bind(pintf, true);
  }

  IAttrTypeMngDispT& operator=(IAttrTypeMng *pintf)
  {
    TAutoDriver<IAttrTypeMng>::Bind(pintf, false);
    return *this;
  }

  IAttrTypeMngDispT& operator=(IAttrTypeMngPtr pintf)
  {
    TAutoDriver<IAttrTypeMng>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall CreateAttrType(TVariantInParam Libname/*[in]*/, 
                                            Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributeTypePtr __fastcall CreateAttrType(TVariantInParam Libname/*[in]*/);
  HRESULT         __fastcall GetAttrType(double AttrID/*[in]*/, TVariantInParam Libname/*[in]*/, 
                                         Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributeTypePtr __fastcall GetAttrType(double AttrID/*[in]*/, 
                                                             TVariantInParam Libname/*[in]*/);
  HRESULT         __fastcall ChoiceAttrTypes(OLE_HANDLE HWnd/*[in]*/, 
                                             TVariantInParam Libname/*[in]*/, 
                                             Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/);
  Kompasltapi7_tlb::IAttributeTypePtr __fastcall ChoiceAttrTypes(OLE_HANDLE HWnd/*[in]*/, 
                                                                 TVariantInParam Libname/*[in]*/);
  HRESULT         __fastcall GetAttrTypes(TVariantInParam Libname/*[in]*/, 
                                          TVariant* Res/*[out,retval]*/);
  TVariant        __fastcall GetAttrTypes(TVariantInParam Libname/*[in]*/);

};
typedef IAttrTypeMngDispT<IAttrTypeMng> IAttrTypeMngDisp;

typedef TComInterface<IPrintJob_OutputParameters>  TCOMIPrintJob_OutputParameters;

// *********************************************************************//
// DispIntf:  IPrintJob_OutputParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CB083231-EE0D-4596-B04D-E6A020926557}
// *********************************************************************//
template<class T>
class IPrintJob_OutputParametersDispT : public TAutoDriver<IPrintJob_OutputParameters>
{
public:
  IPrintJob_OutputParametersDispT(){}

  IPrintJob_OutputParametersDispT(IPrintJob_OutputParameters *pintf)
  {
    TAutoDriver<IPrintJob_OutputParameters>::Bind(pintf, false);
  }

  IPrintJob_OutputParametersDispT(IPrintJob_OutputParametersPtr pintf)
  {
    TAutoDriver<IPrintJob_OutputParameters>::Bind(pintf, true);
  }

  IPrintJob_OutputParametersDispT& operator=(IPrintJob_OutputParameters *pintf)
  {
    TAutoDriver<IPrintJob_OutputParameters>::Bind(pintf, false);
    return *this;
  }

  IPrintJob_OutputParametersDispT& operator=(IPrintJob_OutputParametersPtr pintf)
  {
    TAutoDriver<IPrintJob_OutputParameters>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_NumberOfCopies(long PVal/*[in]*/);
  HRESULT         __fastcall get_NumberOfCopies(long* PVal/*[out,retval]*/);
  long            __fastcall get_NumberOfCopies(void);
  HRESULT         __fastcall set_CollateCopies(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CollateCopies(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CollateCopies(void);
  HRESULT         __fastcall set_PlotToFile(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PlotToFile(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PlotToFile(void);
  HRESULT         __fastcall set_Color(ksOutputColorTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Color(ksOutputColorTypeEnum* PVal/*[out,retval]*/);
  ksOutputColorTypeEnum __fastcall get_Color(void);
  HRESULT         __fastcall set_OnlyThinLines(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_OnlyThinLines(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_OnlyThinLines(void);
  HRESULT         __fastcall set_AlternativeFillingOutput(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AlternativeFillingOutput(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AlternativeFillingOutput(void);
  HRESULT         __fastcall set_AccuracyModelOutput(long PVal/*[in]*/);
  HRESULT         __fastcall get_AccuracyModelOutput(long* PVal/*[out,retval]*/);
  long            __fastcall get_AccuracyModelOutput(void);
  HRESULT         __fastcall set_PageOutputOrder(long PVal/*[in]*/);
  HRESULT         __fastcall get_PageOutputOrder(long* PVal/*[out,retval]*/);
  long            __fastcall get_PageOutputOrder(void);
  HRESULT         __fastcall set_DefaultScale(double PVal/*[in]*/);
  HRESULT         __fastcall get_DefaultScale(double* PVal/*[out,retval]*/);
  double          __fastcall get_DefaultScale(void);
  HRESULT         __fastcall set_AutoScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoScale(void);
  HRESULT         __fastcall set_UseCatchSpacing(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_UseCatchSpacing(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseCatchSpacing(void);
  HRESULT         __fastcall set_CatchSpacing(long PVal/*[in]*/);
  HRESULT         __fastcall get_CatchSpacing(long* PVal/*[out,retval]*/);
  long            __fastcall get_CatchSpacing(void);
  HRESULT         __fastcall set_UseHooking(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_UseHooking(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseHooking(void);
  HRESULT         __fastcall set_Hooking(long PVal/*[in]*/);
  HRESULT         __fastcall get_Hooking(long* PVal/*[out,retval]*/);
  long            __fastcall get_Hooking(void);

  __property   long            NumberOfCopies = {read = get_NumberOfCopies, write = set_NumberOfCopies};
  __property   TOLEBOOL        CollateCopies = {read = get_CollateCopies, write = set_CollateCopies};
  __property   TOLEBOOL        PlotToFile = {read = get_PlotToFile, write = set_PlotToFile};
  __property   ksOutputColorTypeEnum Color = {read = get_Color, write = set_Color};
  __property   TOLEBOOL        OnlyThinLines = {read = get_OnlyThinLines, write = set_OnlyThinLines};
  __property   TOLEBOOL        AlternativeFillingOutput = {read = get_AlternativeFillingOutput, write = set_AlternativeFillingOutput};
  __property   long            AccuracyModelOutput = {read = get_AccuracyModelOutput, write = set_AccuracyModelOutput};
  __property   long            PageOutputOrder = {read = get_PageOutputOrder, write = set_PageOutputOrder};
  __property   double          DefaultScale = {read = get_DefaultScale, write = set_DefaultScale};
  __property   TOLEBOOL        AutoScale = {read = get_AutoScale, write = set_AutoScale};
  __property   TOLEBOOL        UseCatchSpacing = {read = get_UseCatchSpacing, write = set_UseCatchSpacing};
  __property   long            CatchSpacing = {read = get_CatchSpacing, write = set_CatchSpacing};
  __property   TOLEBOOL        UseHooking = {read = get_UseHooking, write = set_UseHooking};
  __property   long            Hooking = {read = get_Hooking, write = set_Hooking};
};
typedef IPrintJob_OutputParametersDispT<IPrintJob_OutputParameters> IPrintJob_OutputParametersDisp;

// *********************************************************************//
// SmartIntf: TCOMIProperty
// Interface: IProperty
// *********************************************************************//
template <class T /* IProperty */ >
class TCOMIPropertyT : public TComInterface<IProperty>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyT() {}
  TCOMIPropertyT(IProperty *intf, bool addRef = false) : TComInterface<IProperty>(intf, addRef) {}
  TCOMIPropertyT(const TCOMIPropertyT& src) : TComInterface<IProperty>(src) {}
  TCOMIPropertyT& operator=(const TCOMIPropertyT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Id(double* PVal/*[out,retval]*/);
  double          __fastcall get_Id(void);
  HRESULT         __fastcall set_DataType(ksPropertyTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DataType(ksPropertyTypeEnum* PVal/*[out,retval]*/);
  ksPropertyTypeEnum __fastcall get_DataType(void);
  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SignificantDigitsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_SignificantDigitsCount(void);
  HRESULT         __fastcall set_SignificantDigitsCount(long Result/*[in]*/);
  HRESULT         __fastcall get_SourceName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SourceName(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_PropertyTypeId(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_PropertyTypeId(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PropertyTypeId(void);
  HRESULT         __fastcall set_UnitId(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_UnitId(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_UnitId(void);
  HRESULT         __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/, 
                                      TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_UseListVal(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseListVal(void);
  HRESULT         __fastcall set_UseListVal(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ListVal(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_ListVal(void);
  HRESULT         __fastcall set_ListVal(TVariantInParam PVal/*[in]*/);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   double          Id = {read = get_Id};
  __property   ksPropertyTypeEnum DataType = {read = get_DataType, write = set_DataType};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            SignificantDigitsCount = {read = get_SignificantDigitsCount, write = set_SignificantDigitsCount};
  __property   BSTR            SourceName = {read = get_SourceName};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            PropertyTypeId = {read = get_PropertyTypeId, write = set_PropertyTypeId};
  __property   BSTR            UnitId = {read = get_UnitId, write = set_UnitId};
  __property   TOLEBOOL        UseListVal = {read = get_UseListVal, write = set_UseListVal};
};
typedef TCOMIPropertyT<IProperty> TCOMIProperty;

// *********************************************************************//
// DispIntf:  IProperty
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C389F80D-228D-4FB1-B183-959AEA0B5906}
// *********************************************************************//
template<class T>
class IPropertyDispT : public TAutoDriver<IProperty>
{
public:
  IPropertyDispT(){}

  IPropertyDispT(IProperty *pintf)
  {
    TAutoDriver<IProperty>::Bind(pintf, false);
  }

  IPropertyDispT(IPropertyPtr pintf)
  {
    TAutoDriver<IProperty>::Bind(pintf, true);
  }

  IPropertyDispT& operator=(IProperty *pintf)
  {
    TAutoDriver<IProperty>::Bind(pintf, false);
    return *this;
  }

  IPropertyDispT& operator=(IPropertyPtr pintf)
  {
    TAutoDriver<IProperty>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Property));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Property);
  }

  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_Id(double* PVal/*[out,retval]*/);
  double          __fastcall get_Id(void);
  HRESULT         __fastcall set_DataType(ksPropertyTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DataType(ksPropertyTypeEnum* PVal/*[out,retval]*/);
  ksPropertyTypeEnum __fastcall get_DataType(void);
  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SignificantDigitsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_SignificantDigitsCount(void);
  HRESULT         __fastcall set_SignificantDigitsCount(long Result/*[in]*/);
  HRESULT         __fastcall get_SourceName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SourceName(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_PropertyTypeId(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_PropertyTypeId(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_PropertyTypeId(void);
  HRESULT         __fastcall set_UnitId(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_UnitId(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_UnitId(void);
  HRESULT         __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/, 
                                      TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_UseListVal(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_UseListVal(void);
  HRESULT         __fastcall set_UseListVal(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ListVal(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_ListVal(void);
  HRESULT         __fastcall set_ListVal(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   double          Id = {read = get_Id};
  __property   ksPropertyTypeEnum DataType = {read = get_DataType, write = set_DataType};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            SignificantDigitsCount = {read = get_SignificantDigitsCount, write = set_SignificantDigitsCount};
  __property   BSTR            SourceName = {read = get_SourceName};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   BSTR            PropertyTypeId = {read = get_PropertyTypeId, write = set_PropertyTypeId};
  __property   BSTR            UnitId = {read = get_UnitId, write = set_UnitId};
  __property   TOLEBOOL        UseListVal = {read = get_UseListVal, write = set_UseListVal};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyDispT<IProperty> IPropertyDisp;

typedef TComInterface<IPropertyMng>  TCOMIPropertyMng;

// *********************************************************************//
// DispIntf:  IPropertyMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FD515235-4DBA-4F81-8D5C-6FE87C834562}
// *********************************************************************//
template<class T>
class IPropertyMngDispT : public TAutoDriver<IPropertyMng>
{
public:
  IPropertyMngDispT(){}

  IPropertyMngDispT(IPropertyMng *pintf)
  {
    TAutoDriver<IPropertyMng>::Bind(pintf, false);
  }

  IPropertyMngDispT(IPropertyMngPtr pintf)
  {
    TAutoDriver<IPropertyMng>::Bind(pintf, true);
  }

  IPropertyMngDispT& operator=(IPropertyMng *pintf)
  {
    TAutoDriver<IPropertyMng>::Bind(pintf, false);
    return *this;
  }

  IPropertyMngDispT& operator=(IPropertyMngPtr pintf)
  {
    TAutoDriver<IPropertyMng>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_PropertyCount(TVariantInParam Libname/*[in]*/, 
                                               long* Count/*[out,retval]*/);
  long            __fastcall get_PropertyCount(TVariantInParam Libname/*[in]*/);
  HRESULT         __fastcall GetProperty(TVariantInParam Libname/*[in]*/, 
                                         TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IPropertyPtr* Res/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyPtr __fastcall GetProperty(TVariantInParam Libname/*[in]*/, 
                                                        TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall GetProperties(TVariantInParam Libname/*[in]*/, 
                                           TVariant* Res/*[out,retval]*/);
  TVariant        __fastcall GetProperties(TVariantInParam Libname/*[in]*/);
  HRESULT         __fastcall AddProperty(TVariantInParam Libname/*[in]*/, 
                                         TVariantInParam Val/*[in]*/, 
                                         Kompasltapi7_tlb::IPropertyPtr* ColVal/*[out,retval]*/);
  Kompasltapi7_tlb::IPropertyPtr __fastcall AddProperty(TVariantInParam Libname/*[in]*/, 
                                                        TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall RemoveProperty(TVariantInParam Libname/*[in]*/, 
                                            TVariantInParam Val/*[in]*/, 
                                            TOLEBOOL* ColVal/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveProperty(TVariantInParam Libname/*[in]*/, 
                                            TVariantInParam Val/*[in]*/);

};
typedef IPropertyMngDispT<IPropertyMng> IPropertyMngDisp;

typedef TComInterface<IPropertyKeeper>  TCOMIPropertyKeeper;

// *********************************************************************//
// DispIntf:  IPropertyKeeper
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AE7377CB-28C6-468E-B667-73117BCDC300}
// *********************************************************************//
template<class T>
class IPropertyKeeperDispT : public TAutoDriver<IPropertyKeeper>
{
public:
  IPropertyKeeperDispT(){}

  IPropertyKeeperDispT(IPropertyKeeper *pintf)
  {
    TAutoDriver<IPropertyKeeper>::Bind(pintf, false);
  }

  IPropertyKeeperDispT(IPropertyKeeperPtr pintf)
  {
    TAutoDriver<IPropertyKeeper>::Bind(pintf, true);
  }

  IPropertyKeeperDispT& operator=(IPropertyKeeper *pintf)
  {
    TAutoDriver<IPropertyKeeper>::Bind(pintf, false);
    return *this;
  }

  IPropertyKeeperDispT& operator=(IPropertyKeeperPtr pintf)
  {
    TAutoDriver<IPropertyKeeper>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall GetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                              TVariant* Value/*[out]*/, TOLEBOOL BaseUnit/*[in]*/, 
                                              TOLEBOOL* FromSource/*[out]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                              TVariant* Value/*[out]*/, TOLEBOOL BaseUnit/*[in]*/, 
                                              TOLEBOOL* FromSource/*[out]*/);
  HRESULT         __fastcall SetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                              TVariantInParam Value/*[in]*/, 
                                              TOLEBOOL BaseUnit/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                              TVariantInParam Value/*[in]*/, 
                                              TOLEBOOL BaseUnit/*[in]*/);

};
typedef IPropertyKeeperDispT<IPropertyKeeper> IPropertyKeeperDisp;

// *********************************************************************//
// SmartIntf: TCOMIReportProcess
// Interface: IReportProcess
// *********************************************************************//
template <class T /* IReportProcess */ >
class TCOMIReportProcessT : public TComInterface<IReportProcess>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIReportProcessT() {}
  TCOMIReportProcessT(IReportProcess *intf, bool addRef = false) : TComInterface<IReportProcess>(intf, addRef) {}
  TCOMIReportProcessT(const TCOMIReportProcessT& src) : TComInterface<IReportProcess>(src) {}
  TCOMIReportProcessT& operator=(const TCOMIReportProcessT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_StylesCount(long* Count/*[out,retval]*/);
  long            __fastcall get_StylesCount(void);
  HRESULT         __fastcall set_ActiveStyleIndex(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ActiveStyleIndex(TVariant* Index/*[out,retval]*/);
  TVariant        __fastcall get_ActiveStyleIndex(void);
  HRESULT         __fastcall get_ReportFilter(Kompasltapi7_tlb::IReportFilterPtr* Filters/*[out,retval]*/);
  Kompasltapi7_tlb::IReportFilterPtr __fastcall get_ReportFilter(void);
  HRESULT         __fastcall set_ReportFilterUse(TOLEBOOL Index/*[in]*/);
  HRESULT         __fastcall get_ReportFilterUse(TOLEBOOL* Index/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReportFilterUse(void);

  __property   long            StylesCount = {read = get_StylesCount};
  __property   Kompasltapi7_tlb::IReportFilterPtr ReportFilter = {read = get_ReportFilter};
  __property   TOLEBOOL        ReportFilterUse = {read = get_ReportFilterUse, write = set_ReportFilterUse};
};
typedef TCOMIReportProcessT<IReportProcess> TCOMIReportProcess;

// *********************************************************************//
// DispIntf:  IReportProcess
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {29BBF2B8-A2E2-4E7D-BF04-0BB79C89EF35}
// *********************************************************************//
template<class T>
class IReportProcessDispT : public TAutoDriver<IReportProcess>
{
public:
  IReportProcessDispT(){}

  IReportProcessDispT(IReportProcess *pintf)
  {
    TAutoDriver<IReportProcess>::Bind(pintf, false);
  }

  IReportProcessDispT(IReportProcessPtr pintf)
  {
    TAutoDriver<IReportProcess>::Bind(pintf, true);
  }

  IReportProcessDispT& operator=(IReportProcess *pintf)
  {
    TAutoDriver<IReportProcess>::Bind(pintf, false);
    return *this;
  }

  IReportProcessDispT& operator=(IReportProcessPtr pintf)
  {
    TAutoDriver<IReportProcess>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ReportProcess));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ReportProcess);
  }

  HRESULT         __fastcall get_StylesCount(long* Count/*[out,retval]*/);
  long            __fastcall get_StylesCount(void);
  HRESULT         __fastcall set_ActiveStyleIndex(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ActiveStyleIndex(TVariant* Index/*[out,retval]*/);
  TVariant        __fastcall get_ActiveStyleIndex(void);
  HRESULT         __fastcall get_ReportFilter(Kompasltapi7_tlb::IReportFilterPtr* Filters/*[out,retval]*/);
  Kompasltapi7_tlb::IReportFilterPtr __fastcall get_ReportFilter(void);
  HRESULT         __fastcall set_ReportFilterUse(TOLEBOOL Index/*[in]*/);
  HRESULT         __fastcall get_ReportFilterUse(TOLEBOOL* Index/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReportFilterUse(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            StylesCount = {read = get_StylesCount};
  __property   Kompasltapi7_tlb::IReportFilterPtr ReportFilter = {read = get_ReportFilter};
  __property   TOLEBOOL        ReportFilterUse = {read = get_ReportFilterUse, write = set_ReportFilterUse};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IReportProcessDispT<IReportProcess> IReportProcessDisp;

typedef TComInterface<IReportFilter>  TCOMIReportFilter;

// *********************************************************************//
// DispIntf:  IReportFilter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D111C31-1629-4A0B-89E5-8461CDFA2157}
// *********************************************************************//
template<class T>
class IReportFilterDispT : public TAutoDriver<IReportFilter>
{
public:
  IReportFilterDispT(){}

  IReportFilterDispT(IReportFilter *pintf)
  {
    TAutoDriver<IReportFilter>::Bind(pintf, false);
  }

  IReportFilterDispT(IReportFilterPtr pintf)
  {
    TAutoDriver<IReportFilter>::Bind(pintf, true);
  }

  IReportFilterDispT& operator=(IReportFilter *pintf)
  {
    TAutoDriver<IReportFilter>::Bind(pintf, false);
    return *this;
  }

  IReportFilterDispT& operator=(IReportFilterPtr pintf)
  {
    TAutoDriver<IReportFilter>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ConditionCount(long* Count/*[out,retval]*/);
  long            __fastcall get_ConditionCount(void);
  HRESULT         __fastcall GetCondition(long Index/*[in]*/, TVariant* UniqId/*[out]*/, 
                                          ksReportFiltersTypeEnum* Type/*[out]*/
                                          , TVariant* Val/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCondition(long Index/*[in]*/, TVariant* UniqId/*[out]*/, 
                                          ksReportFiltersTypeEnum* Type/*[out]*/, 
                                          TVariant* Val/*[out]*/);
  HRESULT         __fastcall SetCondition(long Index/*[in]*/, TVariantInParam UniqId/*[in]*/, 
                                          ksReportFiltersTypeEnum Type/*[in]*/
                                          , TVariantInParam Val/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCondition(long Index/*[in]*/, TVariantInParam UniqId/*[in]*/, 
                                          ksReportFiltersTypeEnum Type/*[in]*/, 
                                          TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall RemoveCondition(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RemoveCondition(long Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);

  __property   long            ConditionCount = {read = get_ConditionCount};
};
typedef IReportFilterDispT<IReportFilter> IReportFilterDisp;

typedef TComInterface<IPropertyControl1>  TCOMIPropertyControl1;

// *********************************************************************//
// DispIntf:  IPropertyControl1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7D2A79FF-EC54-4480-B9F3-46F75293B558}
// *********************************************************************//
template<class T>
class IPropertyControl1DispT : public TAutoDriver<IPropertyControl1>
{
public:
  IPropertyControl1DispT(){}

  IPropertyControl1DispT(IPropertyControl1 *pintf)
  {
    TAutoDriver<IPropertyControl1>::Bind(pintf, false);
  }

  IPropertyControl1DispT(IPropertyControl1Ptr pintf)
  {
    TAutoDriver<IPropertyControl1>::Bind(pintf, true);
  }

  IPropertyControl1DispT& operator=(IPropertyControl1 *pintf)
  {
    TAutoDriver<IPropertyControl1>::Bind(pintf, false);
    return *this;
  }

  IPropertyControl1DispT& operator=(IPropertyControl1Ptr pintf)
  {
    TAutoDriver<IPropertyControl1>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_PredefineNumber(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_PredefineNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_PredefineNumber(void);
  HRESULT         __fastcall set_UserMenu(OLE_HANDLE PVal/*[in]*/);
  HRESULT         __fastcall get_UserMenu(OLE_HANDLE* PVal/*[out,retval]*/);
  OLE_HANDLE      __fastcall get_UserMenu(void);

  __property   long            PredefineNumber = {read = get_PredefineNumber, write = set_PredefineNumber};
  __property   OLE_HANDLE      UserMenu = {read = get_UserMenu, write = set_UserMenu};
};
typedef IPropertyControl1DispT<IPropertyControl1> IPropertyControl1Disp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyEdit
// Interface: IPropertyEdit
// *********************************************************************//
template <class T /* IPropertyEdit */ >
class TCOMIPropertyEditT : public TComInterface<IPropertyEdit>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyEditT() {}
  TCOMIPropertyEditT(IPropertyEdit *intf, bool addRef = false) : TComInterface<IPropertyEdit>(intf, addRef) {}
  TCOMIPropertyEditT(const TCOMIPropertyEditT& src) : TComInterface<IPropertyEdit>(src) {}
  TCOMIPropertyEditT& operator=(const TCOMIPropertyEditT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithCheck(void);
  HRESULT         __fastcall set_CheckState(CheckStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CheckState(CheckStateEnum* PVal/*[out,retval]*/);
  CheckStateEnum __fastcall get_CheckState(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);

  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};
};
typedef TCOMIPropertyEditT<IPropertyEdit> TCOMIPropertyEdit;

// *********************************************************************//
// DispIntf:  IPropertyEdit
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1D238C4C-AAD7-4374-B372-013CF7FCEDB4}
// *********************************************************************//
template<class T>
class IPropertyEditDispT : public TAutoDriver<IPropertyEdit>
{
public:
  IPropertyEditDispT(){}

  IPropertyEditDispT(IPropertyEdit *pintf)
  {
    TAutoDriver<IPropertyEdit>::Bind(pintf, false);
  }

  IPropertyEditDispT(IPropertyEditPtr pintf)
  {
    TAutoDriver<IPropertyEdit>::Bind(pintf, true);
  }

  IPropertyEditDispT& operator=(IPropertyEdit *pintf)
  {
    TAutoDriver<IPropertyEdit>::Bind(pintf, false);
    return *this;
  }

  IPropertyEditDispT& operator=(IPropertyEditPtr pintf)
  {
    TAutoDriver<IPropertyEdit>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyEdit));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyEdit);
  }

  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithCheck(void);
  HRESULT         __fastcall set_CheckState(CheckStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CheckState(CheckStateEnum* PVal/*[out,retval]*/);
  CheckStateEnum __fastcall get_CheckState(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyEditDispT<IPropertyEdit> IPropertyEditDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertySeparator
// Interface: IPropertySeparator
// *********************************************************************//
template <class T /* IPropertySeparator */ >
class TCOMIPropertySeparatorT : public TComInterface<IPropertySeparator>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertySeparatorT() {}
  TCOMIPropertySeparatorT(IPropertySeparator *intf, bool addRef = false) : TComInterface<IPropertySeparator>(intf, addRef) {}
  TCOMIPropertySeparatorT(const TCOMIPropertySeparatorT& src) : TComInterface<IPropertySeparator>(src) {}
  TCOMIPropertySeparatorT& operator=(const TCOMIPropertySeparatorT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_SeparatorType(SeparatorTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SeparatorType(SeparatorTypeEnum* PVal/*[out,retval]*/);
  SeparatorTypeEnum __fastcall get_SeparatorType(void);
  HRESULT         __fastcall SetImage(TVariantInParam IdBmp/*[in]*/, 
                                      TVariantInParam HInstance/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetImage(TVariantInParam IdBmp/*[in]*/, 
                                      TVariantInParam HInstance/*[in]*/);

  __property   SeparatorTypeEnum SeparatorType = {read = get_SeparatorType, write = set_SeparatorType};
};
typedef TCOMIPropertySeparatorT<IPropertySeparator> TCOMIPropertySeparator;

// *********************************************************************//
// DispIntf:  IPropertySeparator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4504EFA0-D059-4FD4-B725-FA264D190869}
// *********************************************************************//
template<class T>
class IPropertySeparatorDispT : public TAutoDriver<IPropertySeparator>
{
public:
  IPropertySeparatorDispT(){}

  IPropertySeparatorDispT(IPropertySeparator *pintf)
  {
    TAutoDriver<IPropertySeparator>::Bind(pintf, false);
  }

  IPropertySeparatorDispT(IPropertySeparatorPtr pintf)
  {
    TAutoDriver<IPropertySeparator>::Bind(pintf, true);
  }

  IPropertySeparatorDispT& operator=(IPropertySeparator *pintf)
  {
    TAutoDriver<IPropertySeparator>::Bind(pintf, false);
    return *this;
  }

  IPropertySeparatorDispT& operator=(IPropertySeparatorPtr pintf)
  {
    TAutoDriver<IPropertySeparator>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertySeparator));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertySeparator);
  }

  HRESULT         __fastcall set_SeparatorType(SeparatorTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SeparatorType(SeparatorTypeEnum* PVal/*[out,retval]*/);
  SeparatorTypeEnum __fastcall get_SeparatorType(void);
  HRESULT         __fastcall SetImage(TVariantInParam IdBmp/*[in]*/, 
                                      TVariantInParam HInstance/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetImage(TVariantInParam IdBmp/*[in]*/, 
                                      TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   SeparatorTypeEnum SeparatorType = {read = get_SeparatorType, write = set_SeparatorType};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertySeparatorDispT<IPropertySeparator> IPropertySeparatorDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyList
// Interface: IPropertyList
// *********************************************************************//
template <class T /* IPropertyList */ >
class TCOMIPropertyListT : public TComInterface<IPropertyList>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyListT() {}
  TCOMIPropertyListT(IPropertyList *intf, bool addRef = false) : TComInterface<IPropertyList>(intf, addRef) {}
  TCOMIPropertyListT(const TCOMIPropertyListT& src) : TComInterface<IPropertyList>(src) {}
  TCOMIPropertyListT& operator=(const TCOMIPropertyListT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithCheck(void);
  HRESULT         __fastcall set_CheckState(CheckStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CheckState(CheckStateEnum* PVal/*[out,retval]*/);
  CheckStateEnum __fastcall get_CheckState(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall ClearList(void);
  HRESULT         __fastcall Add(TVariantInParam NewVal/*[in]*/);
  HRESULT         __fastcall set_Sort(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Sort(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Sort(void);
  HRESULT         __fastcall Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall Find(TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall SetCurrentByIndex(long Val/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurrentByIndex(long Val/*[in]*/);
  HRESULT         __fastcall set_Precision(double PVal/*[in]*/);
  HRESULT         __fastcall get_Precision(double* PVal/*[out,retval]*/);
  double          __fastcall get_Precision(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);

  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        Sort = {read = get_Sort, write = set_Sort};
  __property   double          Precision = {read = get_Precision, write = set_Precision};
  __property   long            Count = {read = get_Count};
};
typedef TCOMIPropertyListT<IPropertyList> TCOMIPropertyList;

// *********************************************************************//
// DispIntf:  IPropertyList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8F53E9D5-07AD-412E-8C2A-509BC633C4FF}
// *********************************************************************//
template<class T>
class IPropertyListDispT : public TAutoDriver<IPropertyList>
{
public:
  IPropertyListDispT(){}

  IPropertyListDispT(IPropertyList *pintf)
  {
    TAutoDriver<IPropertyList>::Bind(pintf, false);
  }

  IPropertyListDispT(IPropertyListPtr pintf)
  {
    TAutoDriver<IPropertyList>::Bind(pintf, true);
  }

  IPropertyListDispT& operator=(IPropertyList *pintf)
  {
    TAutoDriver<IPropertyList>::Bind(pintf, false);
    return *this;
  }

  IPropertyListDispT& operator=(IPropertyListPtr pintf)
  {
    TAutoDriver<IPropertyList>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyList));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyList);
  }

  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithCheck(void);
  HRESULT         __fastcall set_CheckState(CheckStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CheckState(CheckStateEnum* PVal/*[out,retval]*/);
  CheckStateEnum __fastcall get_CheckState(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall ClearList();
  HRESULT         __fastcall Add(TVariantInParam NewVal/*[in]*/);
  HRESULT         __fastcall set_Sort(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Sort(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Sort(void);
  HRESULT         __fastcall Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall Find(TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall SetCurrentByIndex(long Val/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurrentByIndex(long Val/*[in]*/);
  HRESULT         __fastcall set_Precision(double PVal/*[in]*/);
  HRESULT         __fastcall get_Precision(double* PVal/*[out,retval]*/);
  double          __fastcall get_Precision(void);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        Sort = {read = get_Sort, write = set_Sort};
  __property   double          Precision = {read = get_Precision, write = set_Precision};
  __property   long            Count = {read = get_Count};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyListDispT<IPropertyList> IPropertyListDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyCheckBox
// Interface: IPropertyCheckBox
// *********************************************************************//
template <class T /* IPropertyCheckBox */ >
class TCOMIPropertyCheckBoxT : public TComInterface<IPropertyCheckBox>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyCheckBoxT() {}
  TCOMIPropertyCheckBoxT(IPropertyCheckBox *intf, bool addRef = false) : TComInterface<IPropertyCheckBox>(intf, addRef) {}
  TCOMIPropertyCheckBoxT(const TCOMIPropertyCheckBoxT& src) : TComInterface<IPropertyCheckBox>(src) {}
  TCOMIPropertyCheckBoxT& operator=(const TCOMIPropertyCheckBoxT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetCustomBitmaps(TVariantInParam IdUnchecked/*[in]*/, 
                                              TVariantInParam IdChecked/*[in]*/, 
                                              TVariantInParam IdIndeterminate/*[in]*/, 
                                              TVariantInParam HInstance/*[in]*/);

};
typedef TCOMIPropertyCheckBoxT<IPropertyCheckBox> TCOMIPropertyCheckBox;

// *********************************************************************//
// DispIntf:  IPropertyCheckBox
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9205277D-B480-4AF7-B660-CCDC653F6453}
// *********************************************************************//
template<class T>
class IPropertyCheckBoxDispT : public TAutoDriver<IPropertyCheckBox>
{
public:
  IPropertyCheckBoxDispT(){}

  IPropertyCheckBoxDispT(IPropertyCheckBox *pintf)
  {
    TAutoDriver<IPropertyCheckBox>::Bind(pintf, false);
  }

  IPropertyCheckBoxDispT(IPropertyCheckBoxPtr pintf)
  {
    TAutoDriver<IPropertyCheckBox>::Bind(pintf, true);
  }

  IPropertyCheckBoxDispT& operator=(IPropertyCheckBox *pintf)
  {
    TAutoDriver<IPropertyCheckBox>::Bind(pintf, false);
    return *this;
  }

  IPropertyCheckBoxDispT& operator=(IPropertyCheckBoxPtr pintf)
  {
    TAutoDriver<IPropertyCheckBox>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyCheckBox));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyCheckBox);
  }

  HRESULT         __fastcall SetCustomBitmaps(TVariantInParam IdUnchecked/*[in]*/, 
                                              TVariantInParam IdChecked/*[in]*/, 
                                              TVariantInParam IdIndeterminate/*[in]*/, 
                                              TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyCheckBoxDispT<IPropertyCheckBox> IPropertyCheckBoxDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyMultiButton
// Interface: IPropertyMultiButton
// *********************************************************************//
template <class T /* IPropertyMultiButton */ >
class TCOMIPropertyMultiButtonT : public TComInterface<IPropertyMultiButton>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyMultiButtonT() {}
  TCOMIPropertyMultiButtonT(IPropertyMultiButton *intf, bool addRef = false) : TComInterface<IPropertyMultiButton>(intf, addRef) {}
  TCOMIPropertyMultiButtonT(const TCOMIPropertyMultiButtonT& src) : TComInterface<IPropertyMultiButton>(src) {}
  TCOMIPropertyMultiButtonT& operator=(const TCOMIPropertyMultiButtonT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_ButtonsType(ButtonTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonsType(ButtonTypeEnum* PVal/*[out,retval]*/);
  ButtonTypeEnum __fastcall get_ButtonsType(void);
  HRESULT         __fastcall set_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ButtonChecked(long BtnID/*[in]*/);
  HRESULT         __fastcall set_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ButtonEnable(long BtnID/*[in]*/);
  HRESULT         __fastcall AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                       long InsertAt/*[in,def,opt]*/);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ButtonTips(long BtnID/*[in]*/);
  HRESULT         __fastcall set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ButtonHint(long BtnID/*[in]*/);
  HRESULT         __fastcall set_NextCommand(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_NextCommand(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_NextCommand(void);

  __property   ButtonTypeEnum ButtonsType = {read = get_ButtonsType, write = set_ButtonsType};
  __property   TOLEBOOL        NextCommand = {read = get_NextCommand, write = set_NextCommand};
};
typedef TCOMIPropertyMultiButtonT<IPropertyMultiButton> TCOMIPropertyMultiButton;

// *********************************************************************//
// DispIntf:  IPropertyMultiButton
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3920A0BE-0628-47D5-B0F1-1DFEB77964BC}
// *********************************************************************//
template<class T>
class IPropertyMultiButtonDispT : public TAutoDriver<IPropertyMultiButton>
{
public:
  IPropertyMultiButtonDispT(){}

  IPropertyMultiButtonDispT(IPropertyMultiButton *pintf)
  {
    TAutoDriver<IPropertyMultiButton>::Bind(pintf, false);
  }

  IPropertyMultiButtonDispT(IPropertyMultiButtonPtr pintf)
  {
    TAutoDriver<IPropertyMultiButton>::Bind(pintf, true);
  }

  IPropertyMultiButtonDispT& operator=(IPropertyMultiButton *pintf)
  {
    TAutoDriver<IPropertyMultiButton>::Bind(pintf, false);
    return *this;
  }

  IPropertyMultiButtonDispT& operator=(IPropertyMultiButtonPtr pintf)
  {
    TAutoDriver<IPropertyMultiButton>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyMultiButton));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyMultiButton);
  }

  HRESULT         __fastcall set_ButtonsType(ButtonTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonsType(ButtonTypeEnum* PVal/*[out,retval]*/);
  ButtonTypeEnum __fastcall get_ButtonsType(void);
  HRESULT         __fastcall set_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ButtonChecked(long BtnID/*[in]*/);
  HRESULT         __fastcall set_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ButtonEnable(long BtnID/*[in]*/);
  HRESULT         __fastcall AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                       long InsertAt/*[in,def,opt]*/);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ButtonTips(long BtnID/*[in]*/);
  HRESULT         __fastcall set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ButtonHint(long BtnID/*[in]*/);
  HRESULT         __fastcall set_NextCommand(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_NextCommand(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_NextCommand(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ButtonTypeEnum ButtonsType = {read = get_ButtonsType, write = set_ButtonsType};
  __property   TOLEBOOL        NextCommand = {read = get_NextCommand, write = set_NextCommand};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyMultiButtonDispT<IPropertyMultiButton> IPropertyMultiButtonDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertySlideBox
// Interface: IPropertySlideBox
// *********************************************************************//
template <class T /* IPropertySlideBox */ >
class TCOMIPropertySlideBoxT : public TComInterface<IPropertySlideBox>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertySlideBoxT() {}
  TCOMIPropertySlideBoxT(IPropertySlideBox *intf, bool addRef = false) : TComInterface<IPropertySlideBox>(intf, addRef) {}
  TCOMIPropertySlideBoxT(const TCOMIPropertySlideBoxT& src) : TComInterface<IPropertySlideBox>(src) {}
  TCOMIPropertySlideBoxT& operator=(const TCOMIPropertySlideBoxT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_SlideType(SlideTypeEnum Type/*[in]*/);
  HRESULT         __fastcall get_SlideType(SlideTypeEnum* Type/*[out,retval]*/);
  SlideTypeEnum __fastcall get_SlideType(void);
  HRESULT         __fastcall set_DrawingSlide(TVariantInParam Slide/*[in]*/);
  HRESULT         __fastcall get_DrawingSlide(TVariant* Slide/*[out,retval]*/);
  TVariant        __fastcall get_DrawingSlide(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_CheckBoxVisibility(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CheckBoxVisibility(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CheckBoxVisibility(void);
  HRESULT         __fastcall UpdateParam(void);

  __property   SlideTypeEnum SlideType = {read = get_SlideType, write = set_SlideType};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   TOLEBOOL        CheckBoxVisibility = {read = get_CheckBoxVisibility, write = set_CheckBoxVisibility};
};
typedef TCOMIPropertySlideBoxT<IPropertySlideBox> TCOMIPropertySlideBox;

// *********************************************************************//
// DispIntf:  IPropertySlideBox
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E1DB38CD-A6D5-44B8-9AD0-0056B87924DD}
// *********************************************************************//
template<class T>
class IPropertySlideBoxDispT : public TAutoDriver<IPropertySlideBox>
{
public:
  IPropertySlideBoxDispT(){}

  IPropertySlideBoxDispT(IPropertySlideBox *pintf)
  {
    TAutoDriver<IPropertySlideBox>::Bind(pintf, false);
  }

  IPropertySlideBoxDispT(IPropertySlideBoxPtr pintf)
  {
    TAutoDriver<IPropertySlideBox>::Bind(pintf, true);
  }

  IPropertySlideBoxDispT& operator=(IPropertySlideBox *pintf)
  {
    TAutoDriver<IPropertySlideBox>::Bind(pintf, false);
    return *this;
  }

  IPropertySlideBoxDispT& operator=(IPropertySlideBoxPtr pintf)
  {
    TAutoDriver<IPropertySlideBox>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertySlideBox));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertySlideBox);
  }

  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_SlideType(SlideTypeEnum Type/*[in]*/);
  HRESULT         __fastcall get_SlideType(SlideTypeEnum* Type/*[out,retval]*/);
  SlideTypeEnum __fastcall get_SlideType(void);
  HRESULT         __fastcall set_DrawingSlide(TVariantInParam Slide/*[in]*/);
  HRESULT         __fastcall get_DrawingSlide(TVariant* Slide/*[out,retval]*/);
  TVariant        __fastcall get_DrawingSlide(void);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_CheckBoxVisibility(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CheckBoxVisibility(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CheckBoxVisibility(void);
  HRESULT         __fastcall UpdateParam();
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   SlideTypeEnum SlideType = {read = get_SlideType, write = set_SlideType};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   TOLEBOOL        CheckBoxVisibility = {read = get_CheckBoxVisibility, write = set_CheckBoxVisibility};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertySlideBoxDispT<IPropertySlideBox> IPropertySlideBoxDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyUserControl
// Interface: IPropertyUserControl
// *********************************************************************//
template <class T /* IPropertyUserControl */ >
class TCOMIPropertyUserControlT : public TComInterface<IPropertyUserControl>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyUserControlT() {}
  TCOMIPropertyUserControlT(IPropertyUserControl *intf, bool addRef = false) : TComInterface<IPropertyUserControl>(intf, addRef) {}
  TCOMIPropertyUserControlT(const TCOMIPropertyUserControlT& src) : TComInterface<IPropertyUserControl>(src) {}
  TCOMIPropertyUserControlT& operator=(const TCOMIPropertyUserControlT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall SetOCXControl(BSTR ProgID/*[in]*/);

  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};
};
typedef TCOMIPropertyUserControlT<IPropertyUserControl> TCOMIPropertyUserControl;

// *********************************************************************//
// DispIntf:  IPropertyUserControl
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A902C6C-A030-4F37-A089-91505BAEE466}
// *********************************************************************//
template<class T>
class IPropertyUserControlDispT : public TAutoDriver<IPropertyUserControl>
{
public:
  IPropertyUserControlDispT(){}

  IPropertyUserControlDispT(IPropertyUserControl *pintf)
  {
    TAutoDriver<IPropertyUserControl>::Bind(pintf, false);
  }

  IPropertyUserControlDispT(IPropertyUserControlPtr pintf)
  {
    TAutoDriver<IPropertyUserControl>::Bind(pintf, true);
  }

  IPropertyUserControlDispT& operator=(IPropertyUserControl *pintf)
  {
    TAutoDriver<IPropertyUserControl>::Bind(pintf, false);
    return *this;
  }

  IPropertyUserControlDispT& operator=(IPropertyUserControlPtr pintf)
  {
    TAutoDriver<IPropertyUserControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyUserControl));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyUserControl);
  }

  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall SetOCXControl(BSTR ProgID/*[in]*/);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyUserControlDispT<IPropertyUserControl> IPropertyUserControlDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyGrid
// Interface: IPropertyGrid
// *********************************************************************//
template <class T /* IPropertyGrid */ >
class TCOMIPropertyGridT : public TComInterface<IPropertyGrid>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyGridT() {}
  TCOMIPropertyGridT(IPropertyGrid *intf, bool addRef = false) : TComInterface<IPropertyGrid>(intf, addRef) {}
  TCOMIPropertyGridT(const TCOMIPropertyGridT& src) : TComInterface<IPropertyGrid>(src) {}
  TCOMIPropertyGridT& operator=(const TCOMIPropertyGridT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_ColumnCount(long Count/*[in]*/);
  HRESULT         __fastcall get_ColumnCount(long* Count/*[out,retval]*/);
  long            __fastcall get_ColumnCount(void);
  HRESULT         __fastcall set_RowCount(long Count/*[in]*/);
  HRESULT         __fastcall get_RowCount(long* Count/*[out,retval]*/);
  long            __fastcall get_RowCount(void);
  HRESULT         __fastcall set_FixedColumnCount(long Count/*[in]*/);
  HRESULT         __fastcall get_FixedColumnCount(long* Count/*[out,retval]*/);
  long            __fastcall get_FixedColumnCount(void);
  HRESULT         __fastcall set_FixedRowCount(long Count/*[in]*/);
  HRESULT         __fastcall get_FixedRowCount(long* Count/*[out,retval]*/);
  long            __fastcall get_FixedRowCount(void);
  HRESULT         __fastcall set_ColumnWidth(long Index/*[in]*/, long Width/*[in]*/);
  HRESULT         __fastcall get_ColumnWidth(long Index/*[in]*/, long* Width/*[out,retval]*/);
  long            __fastcall get_ColumnWidth(long Index/*[in]*/);
  HRESULT         __fastcall set_RowHeight(long Index/*[in]*/, long Height/*[in]*/);
  HRESULT         __fastcall get_RowHeight(long Index/*[in]*/, long* Height/*[out,retval]*/);
  long            __fastcall get_RowHeight(long Index/*[in]*/);
  HRESULT         __fastcall set_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/);
  HRESULT         __fastcall set_CellText(long NRow/*[in]*/, long NCol/*[in]*/, BSTR Text/*[in]*/);
  HRESULT         __fastcall get_CellText(long NRow/*[in]*/, long NCol/*[in]*/, 
                                          BSTR* Text/*[out,retval]*/);
  BSTR            __fastcall get_CellText(long NRow/*[in]*/, long NCol/*[in]*/);
  HRESULT         __fastcall set_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            long Format/*[in]*/);
  HRESULT         __fastcall get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            long* Format/*[out,retval]*/);
  long            __fastcall get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_AutoSizeColumns(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_AutoSizeColumns(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSizeColumns(void);
  HRESULT         __fastcall UpdateParam(void);
  HRESULT         __fastcall set_CurrentColumn(long Column/*[in]*/);
  HRESULT         __fastcall get_CurrentColumn(long* Column/*[out,retval]*/);
  long            __fastcall get_CurrentColumn(void);
  HRESULT         __fastcall set_CurrentRow(long Row/*[in]*/);
  HRESULT         __fastcall get_CurrentRow(long* Row/*[out,retval]*/);
  long            __fastcall get_CurrentRow(void);

  __property   long            ColumnCount = {read = get_ColumnCount, write = set_ColumnCount};
  __property   long            RowCount = {read = get_RowCount, write = set_RowCount};
  __property   long            FixedColumnCount = {read = get_FixedColumnCount, write = set_FixedColumnCount};
  __property   long            FixedRowCount = {read = get_FixedRowCount, write = set_FixedRowCount};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        AutoSizeColumns = {read = get_AutoSizeColumns, write = set_AutoSizeColumns};
  __property   long            CurrentColumn = {read = get_CurrentColumn, write = set_CurrentColumn};
  __property   long            CurrentRow = {read = get_CurrentRow, write = set_CurrentRow};
};
typedef TCOMIPropertyGridT<IPropertyGrid> TCOMIPropertyGrid;

// *********************************************************************//
// DispIntf:  IPropertyGrid
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6682B70F-59DB-4BF0-AB01-45B65B1BDED1}
// *********************************************************************//
template<class T>
class IPropertyGridDispT : public TAutoDriver<IPropertyGrid>
{
public:
  IPropertyGridDispT(){}

  IPropertyGridDispT(IPropertyGrid *pintf)
  {
    TAutoDriver<IPropertyGrid>::Bind(pintf, false);
  }

  IPropertyGridDispT(IPropertyGridPtr pintf)
  {
    TAutoDriver<IPropertyGrid>::Bind(pintf, true);
  }

  IPropertyGridDispT& operator=(IPropertyGrid *pintf)
  {
    TAutoDriver<IPropertyGrid>::Bind(pintf, false);
    return *this;
  }

  IPropertyGridDispT& operator=(IPropertyGridPtr pintf)
  {
    TAutoDriver<IPropertyGrid>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyGrid));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyGrid);
  }

  HRESULT         __fastcall set_ColumnCount(long Count/*[in]*/);
  HRESULT         __fastcall get_ColumnCount(long* Count/*[out,retval]*/);
  long            __fastcall get_ColumnCount(void);
  HRESULT         __fastcall set_RowCount(long Count/*[in]*/);
  HRESULT         __fastcall get_RowCount(long* Count/*[out,retval]*/);
  long            __fastcall get_RowCount(void);
  HRESULT         __fastcall set_FixedColumnCount(long Count/*[in]*/);
  HRESULT         __fastcall get_FixedColumnCount(long* Count/*[out,retval]*/);
  long            __fastcall get_FixedColumnCount(void);
  HRESULT         __fastcall set_FixedRowCount(long Count/*[in]*/);
  HRESULT         __fastcall get_FixedRowCount(long* Count/*[out,retval]*/);
  long            __fastcall get_FixedRowCount(void);
  HRESULT         __fastcall set_ColumnWidth(long Index/*[in]*/, long Width/*[in]*/);
  HRESULT         __fastcall get_ColumnWidth(long Index/*[in]*/, long* Width/*[out,retval]*/);
  long            __fastcall get_ColumnWidth(long Index/*[in]*/);
  HRESULT         __fastcall set_RowHeight(long Index/*[in]*/, long Height/*[in]*/);
  HRESULT         __fastcall get_RowHeight(long Index/*[in]*/, long* Height/*[out,retval]*/);
  long            __fastcall get_RowHeight(long Index/*[in]*/);
  HRESULT         __fastcall set_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/);
  HRESULT         __fastcall set_CellText(long NRow/*[in]*/, long NCol/*[in]*/, BSTR Text/*[in]*/);
  HRESULT         __fastcall get_CellText(long NRow/*[in]*/, long NCol/*[in]*/, 
                                          BSTR* Text/*[out,retval]*/);
  BSTR            __fastcall get_CellText(long NRow/*[in]*/, long NCol/*[in]*/);
  HRESULT         __fastcall set_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            long Format/*[in]*/);
  HRESULT         __fastcall get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                            long* Format/*[out,retval]*/);
  long            __fastcall get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/);
  HRESULT         __fastcall set_Width(long Width/*[in]*/);
  HRESULT         __fastcall get_Width(long* Width/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Height(long Height/*[in]*/);
  HRESULT         __fastcall get_Height(long* Height/*[out,retval]*/);
  long            __fastcall get_Height(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_AutoSizeColumns(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_AutoSizeColumns(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSizeColumns(void);
  HRESULT         __fastcall UpdateParam();
  HRESULT         __fastcall set_CurrentColumn(long Column/*[in]*/);
  HRESULT         __fastcall get_CurrentColumn(long* Column/*[out,retval]*/);
  long            __fastcall get_CurrentColumn(void);
  HRESULT         __fastcall set_CurrentRow(long Row/*[in]*/);
  HRESULT         __fastcall get_CurrentRow(long* Row/*[out,retval]*/);
  long            __fastcall get_CurrentRow(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            ColumnCount = {read = get_ColumnCount, write = set_ColumnCount};
  __property   long            RowCount = {read = get_RowCount, write = set_RowCount};
  __property   long            FixedColumnCount = {read = get_FixedColumnCount, write = set_FixedColumnCount};
  __property   long            FixedRowCount = {read = get_FixedRowCount, write = set_FixedRowCount};
  __property   long            Width = {read = get_Width, write = set_Width};
  __property   long            Height = {read = get_Height, write = set_Height};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        AutoSizeColumns = {read = get_AutoSizeColumns, write = set_AutoSizeColumns};
  __property   long            CurrentColumn = {read = get_CurrentColumn, write = set_CurrentColumn};
  __property   long            CurrentRow = {read = get_CurrentRow, write = set_CurrentRow};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyGridDispT<IPropertyGrid> IPropertyGridDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyTextButton
// Interface: IPropertyTextButton
// *********************************************************************//
template <class T /* IPropertyTextButton */ >
class TCOMIPropertyTextButtonT : public TComInterface<IPropertyTextButton>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyTextButtonT() {}
  TCOMIPropertyTextButtonT(IPropertyTextButton *intf, bool addRef = false) : TComInterface<IPropertyTextButton>(intf, addRef) {}
  TCOMIPropertyTextButtonT(const TCOMIPropertyTextButtonT& src) : TComInterface<IPropertyTextButton>(src) {}
  TCOMIPropertyTextButtonT& operator=(const TCOMIPropertyTextButtonT& src) { Bind(src, true); return *this;}


};
typedef TCOMIPropertyTextButtonT<IPropertyTextButton> TCOMIPropertyTextButton;

// *********************************************************************//
// DispIntf:  IPropertyTextButton
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3CDFE85F-643D-4008-AE32-379C0EB3FB7F}
// *********************************************************************//
template<class T>
class IPropertyTextButtonDispT : public TAutoDriver<IPropertyTextButton>
{
public:
  IPropertyTextButtonDispT(){}

  IPropertyTextButtonDispT(IPropertyTextButton *pintf)
  {
    TAutoDriver<IPropertyTextButton>::Bind(pintf, false);
  }

  IPropertyTextButtonDispT(IPropertyTextButtonPtr pintf)
  {
    TAutoDriver<IPropertyTextButton>::Bind(pintf, true);
  }

  IPropertyTextButtonDispT& operator=(IPropertyTextButton *pintf)
  {
    TAutoDriver<IPropertyTextButton>::Bind(pintf, false);
    return *this;
  }

  IPropertyTextButtonDispT& operator=(IPropertyTextButtonPtr pintf)
  {
    TAutoDriver<IPropertyTextButton>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyTextButton));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyTextButton);
  }

  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyTextButtonDispT<IPropertyTextButton> IPropertyTextButtonDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertySpinEdit
// Interface: IPropertySpinEdit
// *********************************************************************//
template <class T /* IPropertySpinEdit */ >
class TCOMIPropertySpinEditT : public TComInterface<IPropertySpinEdit>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertySpinEditT() {}
  TCOMIPropertySpinEditT(IPropertySpinEdit *intf, bool addRef = false) : TComInterface<IPropertySpinEdit>(intf, addRef) {}
  TCOMIPropertySpinEditT(const TCOMIPropertySpinEditT& src) : TComInterface<IPropertySpinEdit>(src) {}
  TCOMIPropertySpinEditT& operator=(const TCOMIPropertySpinEditT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithCheck(void);
  HRESULT         __fastcall set_CheckState(CheckStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CheckState(CheckStateEnum* PVal/*[out,retval]*/);
  CheckStateEnum __fastcall get_CheckState(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);

  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};
};
typedef TCOMIPropertySpinEditT<IPropertySpinEdit> TCOMIPropertySpinEdit;

// *********************************************************************//
// DispIntf:  IPropertySpinEdit
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F214A46D-2BA9-40AD-A32D-E696EF9C895A}
// *********************************************************************//
template<class T>
class IPropertySpinEditDispT : public TAutoDriver<IPropertySpinEdit>
{
public:
  IPropertySpinEditDispT(){}

  IPropertySpinEditDispT(IPropertySpinEdit *pintf)
  {
    TAutoDriver<IPropertySpinEdit>::Bind(pintf, false);
  }

  IPropertySpinEditDispT(IPropertySpinEditPtr pintf)
  {
    TAutoDriver<IPropertySpinEdit>::Bind(pintf, true);
  }

  IPropertySpinEditDispT& operator=(IPropertySpinEdit *pintf)
  {
    TAutoDriver<IPropertySpinEdit>::Bind(pintf, false);
    return *this;
  }

  IPropertySpinEditDispT& operator=(IPropertySpinEditPtr pintf)
  {
    TAutoDriver<IPropertySpinEdit>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertySpinEdit));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertySpinEdit);
  }

  HRESULT         __fastcall get_MinValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MinValue(void);
  HRESULT         __fastcall get_MaxValue(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_MaxValue(void);
  HRESULT         __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                           TVariantInParam MaxVal/*[in]*/);
  HRESULT         __fastcall set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithCheck(void);
  HRESULT         __fastcall set_CheckState(CheckStateEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CheckState(CheckStateEnum* PVal/*[out,retval]*/);
  CheckStateEnum __fastcall get_CheckState(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        WithCheck = {read = get_WithCheck, write = set_WithCheck};
  __property   CheckStateEnum CheckState = {read = get_CheckState, write = set_CheckState};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertySpinEditDispT<IPropertySpinEdit> IPropertySpinEditDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyFileName
// Interface: IPropertyFileName
// *********************************************************************//
template <class T /* IPropertyFileName */ >
class TCOMIPropertyFileNameT : public TComInterface<IPropertyFileName>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyFileNameT() {}
  TCOMIPropertyFileNameT(IPropertyFileName *intf, bool addRef = false) : TComInterface<IPropertyFileName>(intf, addRef) {}
  TCOMIPropertyFileNameT(const TCOMIPropertyFileNameT& src) : TComInterface<IPropertyFileName>(src) {}
  TCOMIPropertyFileNameT& operator=(const TCOMIPropertyFileNameT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_CreateOpenButton(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CreateOpenButton(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateOpenButton(void);
  HRESULT         __fastcall set_Bitmap(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall set_Extension(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Extension(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Extension(void);
  HRESULT         __fastcall set_Filter(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Filter(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Filter(void);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);

  __property   TOLEBOOL        CreateOpenButton = {read = get_CreateOpenButton, write = set_CreateOpenButton};
  __property   BSTR            Extension = {read = get_Extension, write = set_Extension};
  __property   BSTR            Filter = {read = get_Filter, write = set_Filter};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};
};
typedef TCOMIPropertyFileNameT<IPropertyFileName> TCOMIPropertyFileName;

// *********************************************************************//
// DispIntf:  IPropertyFileName
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DB1F3224-837E-437F-8944-6FB9703F528B}
// *********************************************************************//
template<class T>
class IPropertyFileNameDispT : public TAutoDriver<IPropertyFileName>
{
public:
  IPropertyFileNameDispT(){}

  IPropertyFileNameDispT(IPropertyFileName *pintf)
  {
    TAutoDriver<IPropertyFileName>::Bind(pintf, false);
  }

  IPropertyFileNameDispT(IPropertyFileNamePtr pintf)
  {
    TAutoDriver<IPropertyFileName>::Bind(pintf, true);
  }

  IPropertyFileNameDispT& operator=(IPropertyFileName *pintf)
  {
    TAutoDriver<IPropertyFileName>::Bind(pintf, false);
    return *this;
  }

  IPropertyFileNameDispT& operator=(IPropertyFileNamePtr pintf)
  {
    TAutoDriver<IPropertyFileName>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyFileName));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyFileName);
  }

  HRESULT         __fastcall set_CreateOpenButton(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CreateOpenButton(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateOpenButton(void);
  HRESULT         __fastcall set_Bitmap(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall set_Extension(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Extension(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Extension(void);
  HRESULT         __fastcall set_Filter(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Filter(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Filter(void);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        CreateOpenButton = {read = get_CreateOpenButton, write = set_CreateOpenButton};
  __property   BSTR            Extension = {read = get_Extension, write = set_Extension};
  __property   BSTR            Filter = {read = get_Filter, write = set_Filter};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   long            Width = {read = get_Width, write = set_Width};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyFileNameDispT<IPropertyFileName> IPropertyFileNameDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyColor
// Interface: IPropertyColor
// *********************************************************************//
template <class T /* IPropertyColor */ >
class TCOMIPropertyColorT : public TComInterface<IPropertyColor>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyColorT() {}
  TCOMIPropertyColorT(IPropertyColor *intf, bool addRef = false) : TComInterface<IPropertyColor>(intf, addRef) {}
  TCOMIPropertyColorT(const TCOMIPropertyColorT& src) : TComInterface<IPropertyColor>(src) {}
  TCOMIPropertyColorT& operator=(const TCOMIPropertyColorT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_EnableDefaultButton(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_EnableDefaultButton(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableDefaultButton(void);
  HRESULT         __fastcall set_DefaultColor(long PVal/*[in]*/);
  HRESULT         __fastcall get_DefaultColor(long* PVal/*[out,retval]*/);
  long            __fastcall get_DefaultColor(void);
  HRESULT         __fastcall set_DefaultButtonName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_DefaultButtonName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_DefaultButtonName(void);

  __property   long            Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        EnableDefaultButton = {read = get_EnableDefaultButton, write = set_EnableDefaultButton};
  __property   long            DefaultColor = {read = get_DefaultColor, write = set_DefaultColor};
  __property   BSTR            DefaultButtonName = {read = get_DefaultButtonName, write = set_DefaultButtonName};
};
typedef TCOMIPropertyColorT<IPropertyColor> TCOMIPropertyColor;

// *********************************************************************//
// DispIntf:  IPropertyColor
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FC5CDCFB-3F67-43A1-8FC4-1278B901CE0E}
// *********************************************************************//
template<class T>
class IPropertyColorDispT : public TAutoDriver<IPropertyColor>
{
public:
  IPropertyColorDispT(){}

  IPropertyColorDispT(IPropertyColor *pintf)
  {
    TAutoDriver<IPropertyColor>::Bind(pintf, false);
  }

  IPropertyColorDispT(IPropertyColorPtr pintf)
  {
    TAutoDriver<IPropertyColor>::Bind(pintf, true);
  }

  IPropertyColorDispT& operator=(IPropertyColor *pintf)
  {
    TAutoDriver<IPropertyColor>::Bind(pintf, false);
    return *this;
  }

  IPropertyColorDispT& operator=(IPropertyColorPtr pintf)
  {
    TAutoDriver<IPropertyColor>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyColor));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyColor);
  }

  HRESULT         __fastcall set_Width(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Width(long* PVal/*[out,retval]*/);
  long            __fastcall get_Width(void);
  HRESULT         __fastcall set_EnableDefaultButton(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_EnableDefaultButton(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EnableDefaultButton(void);
  HRESULT         __fastcall set_DefaultColor(long PVal/*[in]*/);
  HRESULT         __fastcall get_DefaultColor(long* PVal/*[out,retval]*/);
  long            __fastcall get_DefaultColor(void);
  HRESULT         __fastcall set_DefaultButtonName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_DefaultButtonName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_DefaultButtonName(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        EnableDefaultButton = {read = get_EnableDefaultButton, write = set_EnableDefaultButton};
  __property   long            DefaultColor = {read = get_DefaultColor, write = set_DefaultColor};
  __property   BSTR            DefaultButtonName = {read = get_DefaultButtonName, write = set_DefaultButtonName};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyColorDispT<IPropertyColor> IPropertyColorDisp;

typedef TComInterface<IPropertyEditList>  TCOMIPropertyEditList;

// *********************************************************************//
// DispIntf:  IPropertyEditList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FDB82760-7EA3-408E-8699-A8392ACFD810}
// *********************************************************************//
template<class T>
class IPropertyEditListDispT : public TAutoDriver<IPropertyEditList>
{
public:
  IPropertyEditListDispT(){}

  IPropertyEditListDispT(IPropertyEditList *pintf)
  {
    TAutoDriver<IPropertyEditList>::Bind(pintf, false);
  }

  IPropertyEditListDispT(IPropertyEditListPtr pintf)
  {
    TAutoDriver<IPropertyEditList>::Bind(pintf, true);
  }

  IPropertyEditListDispT& operator=(IPropertyEditList *pintf)
  {
    TAutoDriver<IPropertyEditList>::Bind(pintf, false);
    return *this;
  }

  IPropertyEditListDispT& operator=(IPropertyEditListPtr pintf)
  {
    TAutoDriver<IPropertyEditList>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ListType(ksEditListTypeEnum* PVal/*[out,retval]*/);
  ksEditListTypeEnum __fastcall get_ListType(void);
  HRESULT         __fastcall set_ListType(ksEditListTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ItemChecked(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ItemChecked(long Index/*[in]*/);
  HRESULT         __fastcall set_ItemChecked(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_MultySelect(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MultySelect(void);
  HRESULT         __fastcall set_MultySelect(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ItemSelected(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ItemSelected(long Index/*[in]*/);
  HRESULT         __fastcall set_ItemSelected(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Sort(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Sort(void);
  HRESULT         __fastcall set_Sort(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall ClearList();
  HRESULT         __fastcall Add(BSTR NewVal/*[in]*/);
  HRESULT         __fastcall Delete(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_ItemsCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_ItemsCount(void);
  HRESULT         __fastcall set_ItemValue(TVariantInParam Index/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ItemValue(TVariantInParam Index/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ItemValue(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall Find(TVariantInParam Val/*[in]*/);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksEditListTypeEnum ListType = {read = get_ListType, write = set_ListType};
  __property   TOLEBOOL        MultySelect = {read = get_MultySelect, write = set_MultySelect};
  __property   TOLEBOOL        Sort = {read = get_Sort, write = set_Sort};
  __property   long            ItemsCount = {read = get_ItemsCount};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyEditListDispT<IPropertyEditList> IPropertyEditListDisp;

typedef TComInterface<IPropertyToolBar>  TCOMIPropertyToolBar;

// *********************************************************************//
// DispIntf:  IPropertyToolBar
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C2523B7E-EB4B-45DB-8E3B-9D6CCED99333}
// *********************************************************************//
template<class T>
class IPropertyToolBarDispT : public TAutoDriver<IPropertyToolBar>
{
public:
  IPropertyToolBarDispT(){}

  IPropertyToolBarDispT(IPropertyToolBar *pintf)
  {
    TAutoDriver<IPropertyToolBar>::Bind(pintf, false);
  }

  IPropertyToolBarDispT(IPropertyToolBarPtr pintf)
  {
    TAutoDriver<IPropertyToolBar>::Bind(pintf, true);
  }

  IPropertyToolBarDispT& operator=(IPropertyToolBar *pintf)
  {
    TAutoDriver<IPropertyToolBar>::Bind(pintf, false);
    return *this;
  }

  IPropertyToolBarDispT& operator=(IPropertyToolBarPtr pintf)
  {
    TAutoDriver<IPropertyToolBar>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ButtonChecked(long BtnID/*[in]*/);
  HRESULT         __fastcall set_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ButtonEnable(long BtnID/*[in]*/);
  HRESULT         __fastcall AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                       long InsertAt/*[in,def,opt]*/);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ButtonTips(long BtnID/*[in]*/);
  HRESULT         __fastcall set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ButtonHint(long BtnID/*[in]*/);
  HRESULT         __fastcall set_ButtonType(long BtnID/*[in]*/, 
                                            ButtonTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ButtonType(long BtnID/*[in]*/, 
                                            ButtonTypeEnum* PVal/*[out,retval]*/);
  ButtonTypeEnum __fastcall get_ButtonType(long BtnID/*[in]*/);

};
typedef IPropertyToolBarDispT<IPropertyToolBar> IPropertyToolBarDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyBmpList
// Interface: IPropertyBmpList
// *********************************************************************//
template <class T /* IPropertyBmpList */ >
class TCOMIPropertyBmpListT : public TComInterface<IPropertyBmpList>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyBmpListT() {}
  TCOMIPropertyBmpListT(IPropertyBmpList *intf, bool addRef = false) : TComInterface<IPropertyBmpList>(intf, addRef) {}
  TCOMIPropertyBmpListT(const TCOMIPropertyBmpListT& src) : TComInterface<IPropertyBmpList>(src) {}
  TCOMIPropertyBmpListT& operator=(const TCOMIPropertyBmpListT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Add(BSTR NewStr/*[in]*/, TVariantInParam NewBmp/*[in]*/);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall ClearList(void);
  HRESULT         __fastcall Find(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall Find(BSTR Val/*[in]*/);
  HRESULT         __fastcall set_CurrentIndex(long PVal/*[in]*/);
  HRESULT         __fastcall get_CurrentIndex(long* PVal/*[out,retval]*/);
  long            __fastcall get_CurrentIndex(void);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);

  __property   long            Count = {read = get_Count};
  __property   long            CurrentIndex = {read = get_CurrentIndex, write = set_CurrentIndex};
};
typedef TCOMIPropertyBmpListT<IPropertyBmpList> TCOMIPropertyBmpList;

// *********************************************************************//
// DispIntf:  IPropertyBmpList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D18D34F5-0028-4853-998C-25A48D141B43}
// *********************************************************************//
template<class T>
class IPropertyBmpListDispT : public TAutoDriver<IPropertyBmpList>
{
public:
  IPropertyBmpListDispT(){}

  IPropertyBmpListDispT(IPropertyBmpList *pintf)
  {
    TAutoDriver<IPropertyBmpList>::Bind(pintf, false);
  }

  IPropertyBmpListDispT(IPropertyBmpListPtr pintf)
  {
    TAutoDriver<IPropertyBmpList>::Bind(pintf, true);
  }

  IPropertyBmpListDispT& operator=(IPropertyBmpList *pintf)
  {
    TAutoDriver<IPropertyBmpList>::Bind(pintf, false);
    return *this;
  }

  IPropertyBmpListDispT& operator=(IPropertyBmpListPtr pintf)
  {
    TAutoDriver<IPropertyBmpList>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyBmpList));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyBmpList);
  }

  HRESULT         __fastcall Add(BSTR NewStr/*[in]*/, TVariantInParam NewBmp/*[in]*/);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall ClearList();
  HRESULT         __fastcall Find(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall Find(BSTR Val/*[in]*/);
  HRESULT         __fastcall set_CurrentIndex(long PVal/*[in]*/);
  HRESULT         __fastcall get_CurrentIndex(long* PVal/*[out,retval]*/);
  long            __fastcall get_CurrentIndex(void);
  HRESULT         __fastcall set_ResModule(TVariantInParam HInstance/*[in]*/);
  HRESULT         __fastcall get_ResModule(TVariant* HInstance/*[out,retval]*/);
  TVariant        __fastcall get_ResModule(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Count = {read = get_Count};
  __property   long            CurrentIndex = {read = get_CurrentIndex, write = set_CurrentIndex};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyBmpListDispT<IPropertyBmpList> IPropertyBmpListDisp;

typedef TComInterface<IProcessInfoWindow>  TCOMIProcessInfoWindow;

// *********************************************************************//
// DispIntf:  IProcessInfoWindow
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {06F93FBF-C65A-49B1-83DB-C736BA33F0A5}
// *********************************************************************//
template<class T>
class IProcessInfoWindowDispT : public TAutoDriver<IProcessInfoWindow>
{
public:
  IProcessInfoWindowDispT(){}

  IProcessInfoWindowDispT(IProcessInfoWindow *pintf)
  {
    TAutoDriver<IProcessInfoWindow>::Bind(pintf, false);
  }

  IProcessInfoWindowDispT(IProcessInfoWindowPtr pintf)
  {
    TAutoDriver<IProcessInfoWindow>::Bind(pintf, true);
  }

  IProcessInfoWindowDispT& operator=(IProcessInfoWindow *pintf)
  {
    TAutoDriver<IProcessInfoWindow>::Bind(pintf, false);
    return *this;
  }

  IProcessInfoWindowDispT& operator=(IProcessInfoWindowPtr pintf)
  {
    TAutoDriver<IProcessInfoWindow>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_CreateWindow(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CreateWindow(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateWindow(void);
  HRESULT         __fastcall set_WindowCaption(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_WindowCaption(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_WindowCaption(void);
  HRESULT         __fastcall set_CloseProcess(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CloseProcess(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CloseProcess(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Text(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Text(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Text(void);
  HRESULT         __fastcall set_HelpId(long PVal/*[in]*/);
  HRESULT         __fastcall get_HelpId(long* PVal/*[out,retval]*/);
  long            __fastcall get_HelpId(void);

  __property   TOLEBOOL        CreateWindow = {read = get_CreateWindow, write = set_CreateWindow};
  __property   BSTR            WindowCaption = {read = get_WindowCaption, write = set_WindowCaption};
  __property   TOLEBOOL        CloseProcess = {read = get_CloseProcess, write = set_CloseProcess};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Text = {read = get_Text, write = set_Text};
  __property   long            HelpId = {read = get_HelpId, write = set_HelpId};
};
typedef IProcessInfoWindowDispT<IProcessInfoWindow> IProcessInfoWindowDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyLibExplorer
// Interface: IPropertyLibExplorer
// *********************************************************************//
template <class T /* IPropertyLibExplorer */ >
class TCOMIPropertyLibExplorerT : public TComInterface<IPropertyLibExplorer>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyLibExplorerT() {}
  TCOMIPropertyLibExplorerT(IPropertyLibExplorer *intf, bool addRef = false) : TComInterface<IPropertyLibExplorer>(intf, addRef) {}
  TCOMIPropertyLibExplorerT(const TCOMIPropertyLibExplorerT& src) : TComInterface<IPropertyLibExplorer>(src) {}
  TCOMIPropertyLibExplorerT& operator=(const TCOMIPropertyLibExplorerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_RootName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_RootName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_RootName(void);
  HRESULT         __fastcall get_FileValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FileValue(void);

  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   BSTR            RootName = {read = get_RootName, write = set_RootName};
  __property   TOLEBOOL        FileValue = {read = get_FileValue};
};
typedef TCOMIPropertyLibExplorerT<IPropertyLibExplorer> TCOMIPropertyLibExplorer;

// *********************************************************************//
// DispIntf:  IPropertyLibExplorer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2A214701-0BCB-406C-B57F-6DFADD799A64}
// *********************************************************************//
template<class T>
class IPropertyLibExplorerDispT : public TAutoDriver<IPropertyLibExplorer>
{
public:
  IPropertyLibExplorerDispT(){}

  IPropertyLibExplorerDispT(IPropertyLibExplorer *pintf)
  {
    TAutoDriver<IPropertyLibExplorer>::Bind(pintf, false);
  }

  IPropertyLibExplorerDispT(IPropertyLibExplorerPtr pintf)
  {
    TAutoDriver<IPropertyLibExplorer>::Bind(pintf, true);
  }

  IPropertyLibExplorerDispT& operator=(IPropertyLibExplorer *pintf)
  {
    TAutoDriver<IPropertyLibExplorer>::Bind(pintf, false);
    return *this;
  }

  IPropertyLibExplorerDispT& operator=(IPropertyLibExplorerPtr pintf)
  {
    TAutoDriver<IPropertyLibExplorer>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyLibExplorer));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyLibExplorer);
  }

  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_RootName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_RootName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_RootName(void);
  HRESULT         __fastcall get_FileValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FileValue(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   BSTR            RootName = {read = get_RootName, write = set_RootName};
  __property   TOLEBOOL        FileValue = {read = get_FileValue};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyLibExplorerDispT<IPropertyLibExplorer> IPropertyLibExplorerDisp;

// *********************************************************************//
// SmartIntf: TCOMIAssociationView
// Interface: IAssociationView
// *********************************************************************//
template <class T /* IAssociationView */ >
class TCOMIAssociationViewT : public TComInterface<IAssociationView>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAssociationViewT() {}
  TCOMIAssociationViewT(IAssociationView *intf, bool addRef = false) : TComInterface<IAssociationView>(intf, addRef) {}
  TCOMIAssociationViewT(const TCOMIAssociationViewT& src) : TComInterface<IAssociationView>(src) {}
  TCOMIAssociationViewT& operator=(const TCOMIAssociationViewT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SourceFileName(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_SourceFileName(void);
  HRESULT         __fastcall set_SourceFileName(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_ProjectionName(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_ProjectionName(void);
  HRESULT         __fastcall set_ProjectionName(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_ExplodedView(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ExplodedView(void);
  HRESULT         __fastcall set_ExplodedView(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall set_DimensionLayoutScaling(TOLEBOOL Param1/*[in]*/);
  HRESULT         __fastcall get_ProjectionLink(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectionLink(void);
  HRESULT         __fastcall set_ProjectionLink(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Section(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Section(void);
  HRESULT         __fastcall set_Section(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Unfold(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Unfold(void);
  HRESULT         __fastcall set_Unfold(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_VisibleLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_VisibleLinesStyle(void);
  HRESULT         __fastcall set_VisibleLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_HiddenLines(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HiddenLines(void);
  HRESULT         __fastcall set_HiddenLines(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_HiddenLinesVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HiddenLinesVisible(void);
  HRESULT         __fastcall set_HiddenLinesVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_HiddenLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_HiddenLinesStyle(void);
  HRESULT         __fastcall set_HiddenLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_BreakLinesVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BreakLinesVisible(void);
  HRESULT         __fastcall set_BreakLinesVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_BreakLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_BreakLinesStyle(void);
  HRESULT         __fastcall set_BreakLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_BendLinesVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BendLinesVisible(void);
  HRESULT         __fastcall set_BendLinesVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_BendLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_BendLinesStyle(void);
  HRESULT         __fastcall set_BendLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_BaseView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_BaseView(void);
  HRESULT         __fastcall set_BaseView(Kompasltapi7_tlb::IViewPtr Result/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_Local(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Local(void);
  HRESULT         __fastcall set_Local(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/);
  HRESULT         __fastcall get_SameHatch(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SameHatch(void);
  HRESULT         __fastcall set_SameHatch(TOLEBOOL Result/*[in]*/);

  __property   BSTR            SourceFileName = {read = get_SourceFileName, write = set_SourceFileName};
  __property   BSTR            ProjectionName = {read = get_ProjectionName, write = set_ProjectionName};
  __property   TOLEBOOL        ExplodedView = {read = get_ExplodedView, write = set_ExplodedView};
  __property   TOLEBOOL        DimensionLayoutScaling = {write = set_DimensionLayoutScaling};
  __property   TOLEBOOL        ProjectionLink = {read = get_ProjectionLink, write = set_ProjectionLink};
  __property   TOLEBOOL        Section = {read = get_Section, write = set_Section};
  __property   TOLEBOOL        Unfold = {read = get_Unfold, write = set_Unfold};
  __property   long            VisibleLinesStyle = {read = get_VisibleLinesStyle, write = set_VisibleLinesStyle};
  __property   TOLEBOOL        HiddenLines = {read = get_HiddenLines, write = set_HiddenLines};
  __property   TOLEBOOL        HiddenLinesVisible = {read = get_HiddenLinesVisible, write = set_HiddenLinesVisible};
  __property   long            HiddenLinesStyle = {read = get_HiddenLinesStyle, write = set_HiddenLinesStyle};
  __property   TOLEBOOL        BreakLinesVisible = {read = get_BreakLinesVisible, write = set_BreakLinesVisible};
  __property   long            BreakLinesStyle = {read = get_BreakLinesStyle, write = set_BreakLinesStyle};
  __property   TOLEBOOL        BendLinesVisible = {read = get_BendLinesVisible, write = set_BendLinesVisible};
  __property   long            BendLinesStyle = {read = get_BendLinesStyle, write = set_BendLinesStyle};
  __property   Kompasltapi7_tlb::IViewPtr BaseView = {read = get_BaseView, write = set_BaseView};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   TOLEBOOL        Local = {read = get_Local, write = set_Local};
  __property   TOLEBOOL        SameHatch = {read = get_SameHatch, write = set_SameHatch};
};
typedef TCOMIAssociationViewT<IAssociationView> TCOMIAssociationView;

// *********************************************************************//
// DispIntf:  IAssociationView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0825F23C-0A73-48DE-BEAB-DA2FF39962C3}
// *********************************************************************//
template<class T>
class IAssociationViewDispT : public TAutoDriver<IAssociationView>
{
public:
  IAssociationViewDispT(){}

  IAssociationViewDispT(IAssociationView *pintf)
  {
    TAutoDriver<IAssociationView>::Bind(pintf, false);
  }

  IAssociationViewDispT(IAssociationViewPtr pintf)
  {
    TAutoDriver<IAssociationView>::Bind(pintf, true);
  }

  IAssociationViewDispT& operator=(IAssociationView *pintf)
  {
    TAutoDriver<IAssociationView>::Bind(pintf, false);
    return *this;
  }

  IAssociationViewDispT& operator=(IAssociationViewPtr pintf)
  {
    TAutoDriver<IAssociationView>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AssociationView));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AssociationView);
  }

  HRESULT         __fastcall get_SourceFileName(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_SourceFileName(void);
  HRESULT         __fastcall set_SourceFileName(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_ProjectionName(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_ProjectionName(void);
  HRESULT         __fastcall set_ProjectionName(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_ExplodedView(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ExplodedView(void);
  HRESULT         __fastcall set_ExplodedView(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall set_DimensionLayoutScaling(TOLEBOOL Param1/*[in]*/);
  HRESULT         __fastcall get_ProjectionLink(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectionLink(void);
  HRESULT         __fastcall set_ProjectionLink(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Section(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Section(void);
  HRESULT         __fastcall set_Section(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Unfold(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Unfold(void);
  HRESULT         __fastcall set_Unfold(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_VisibleLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_VisibleLinesStyle(void);
  HRESULT         __fastcall set_VisibleLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_HiddenLines(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HiddenLines(void);
  HRESULT         __fastcall set_HiddenLines(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_HiddenLinesVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HiddenLinesVisible(void);
  HRESULT         __fastcall set_HiddenLinesVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_HiddenLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_HiddenLinesStyle(void);
  HRESULT         __fastcall set_HiddenLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_BreakLinesVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BreakLinesVisible(void);
  HRESULT         __fastcall set_BreakLinesVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_BreakLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_BreakLinesStyle(void);
  HRESULT         __fastcall set_BreakLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_BendLinesVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BendLinesVisible(void);
  HRESULT         __fastcall set_BendLinesVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_BendLinesStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_BendLinesStyle(void);
  HRESULT         __fastcall set_BendLinesStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_BaseView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPtr __fastcall get_BaseView(void);
  HRESULT         __fastcall set_BaseView(Kompasltapi7_tlb::IViewPtr Result/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_Local(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Local(void);
  HRESULT         __fastcall set_Local(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/);
  HRESULT         __fastcall get_SameHatch(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SameHatch(void);
  HRESULT         __fastcall set_SameHatch(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall set_Number(long PVal/*[in]*/);
  HRESULT         __fastcall get_Number(long* PVal/*[out,retval]*/);
  long            __fastcall get_Number(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Background(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Background(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Background(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Current(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Current(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Current(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Comment(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Comment(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall get_ObjectCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectCount(void);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_ViewType(LtViewType* PVal/*[out,retval]*/);
  LtViewType __fastcall get_ViewType(void);
  HRESULT         __fastcall get_Layers(Kompasltapi7_tlb::ILayersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILayersPtr __fastcall get_Layers(void);
  HRESULT         __fastcall get_Variables(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Variables(void);
  HRESULT         __fastcall get_Variable(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_VariablesCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VariablesCount(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            SourceFileName = {read = get_SourceFileName, write = set_SourceFileName};
  __property   BSTR            ProjectionName = {read = get_ProjectionName, write = set_ProjectionName};
  __property   TOLEBOOL        ExplodedView = {read = get_ExplodedView, write = set_ExplodedView};
  __property   TOLEBOOL        DimensionLayoutScaling = {write = set_DimensionLayoutScaling};
  __property   TOLEBOOL        ProjectionLink = {read = get_ProjectionLink, write = set_ProjectionLink};
  __property   TOLEBOOL        Section = {read = get_Section, write = set_Section};
  __property   TOLEBOOL        Unfold = {read = get_Unfold, write = set_Unfold};
  __property   long            VisibleLinesStyle = {read = get_VisibleLinesStyle, write = set_VisibleLinesStyle};
  __property   TOLEBOOL        HiddenLines = {read = get_HiddenLines, write = set_HiddenLines};
  __property   TOLEBOOL        HiddenLinesVisible = {read = get_HiddenLinesVisible, write = set_HiddenLinesVisible};
  __property   long            HiddenLinesStyle = {read = get_HiddenLinesStyle, write = set_HiddenLinesStyle};
  __property   TOLEBOOL        BreakLinesVisible = {read = get_BreakLinesVisible, write = set_BreakLinesVisible};
  __property   long            BreakLinesStyle = {read = get_BreakLinesStyle, write = set_BreakLinesStyle};
  __property   TOLEBOOL        BendLinesVisible = {read = get_BendLinesVisible, write = set_BendLinesVisible};
  __property   long            BendLinesStyle = {read = get_BendLinesStyle, write = set_BendLinesStyle};
  __property   Kompasltapi7_tlb::IViewPtr BaseView = {read = get_BaseView, write = set_BaseView};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   TOLEBOOL        Local = {read = get_Local, write = set_Local};
  __property   TOLEBOOL        SameHatch = {read = get_SameHatch, write = set_SameHatch};

  __property   long            Number = {read = get_Number, write = set_Number};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Background = {read = get_Background, write = set_Background};
  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   TOLEBOOL        Current = {read = get_Current, write = set_Current};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};
  __property   long            ObjectCount = {read = get_ObjectCount};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   LtViewType ViewType = {read = get_ViewType};
  __property   Kompasltapi7_tlb::ILayersPtr Layers = {read = get_Layers};
  __property   long            VariablesCount = {read = get_VariablesCount};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAssociationViewDispT<IAssociationView> IAssociationViewDisp;

typedef TComInterface<IViewDesignation>  TCOMIViewDesignation;

// *********************************************************************//
// DispIntf:  IViewDesignation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5F9580DA-915C-4C28-991D-5DFFE3BF3B3C}
// *********************************************************************//
template<class T>
class IViewDesignationDispT : public TAutoDriver<IViewDesignation>
{
public:
  IViewDesignationDispT(){}

  IViewDesignationDispT(IViewDesignation *pintf)
  {
    TAutoDriver<IViewDesignation>::Bind(pintf, false);
  }

  IViewDesignationDispT(IViewDesignationPtr pintf)
  {
    TAutoDriver<IViewDesignation>::Bind(pintf, true);
  }

  IViewDesignationDispT& operator=(IViewDesignation *pintf)
  {
    TAutoDriver<IViewDesignation>::Bind(pintf, false);
    return *this;
  }

  IViewDesignationDispT& operator=(IViewDesignationPtr pintf)
  {
    TAutoDriver<IViewDesignation>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ShowName(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowName(void);
  HRESULT         __fastcall set_ShowName(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ShowUnfold(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowUnfold(void);
  HRESULT         __fastcall set_ShowUnfold(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ShowScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowScale(void);
  HRESULT         __fastcall set_ShowScale(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ShowTurn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowTurn(void);
  HRESULT         __fastcall set_ShowTurn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ShowAngle(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowAngle(void);
  HRESULT         __fastcall set_ShowAngle(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ShowPage(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowPage(void);
  HRESULT         __fastcall set_ShowPage(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ShowZone(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShowZone(void);
  HRESULT         __fastcall set_ShowZone(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Designation(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Designation(void);
  HRESULT         __fastcall get_RefObject(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_RefObject(void);
  HRESULT         __fastcall set_RefObject(TVariantInParam PVal/*[in]*/);

  __property   TOLEBOOL        ShowName = {read = get_ShowName, write = set_ShowName};
  __property   TOLEBOOL        ShowUnfold = {read = get_ShowUnfold, write = set_ShowUnfold};
  __property   TOLEBOOL        ShowScale = {read = get_ShowScale, write = set_ShowScale};
  __property   TOLEBOOL        ShowTurn = {read = get_ShowTurn, write = set_ShowTurn};
  __property   TOLEBOOL        ShowAngle = {read = get_ShowAngle, write = set_ShowAngle};
  __property   TOLEBOOL        ShowPage = {read = get_ShowPage, write = set_ShowPage};
  __property   TOLEBOOL        ShowZone = {read = get_ShowZone, write = set_ShowZone};
  __property   BSTR            Designation = {read = get_Designation};
};
typedef IViewDesignationDispT<IViewDesignation> IViewDesignationDisp;

typedef TComInterface<IAssociationViewElements>  TCOMIAssociationViewElements;

// *********************************************************************//
// DispIntf:  IAssociationViewElements
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E4E42871-E799-4273-8EDB-E5EF83CC66C2}
// *********************************************************************//
template<class T>
class IAssociationViewElementsDispT : public TAutoDriver<IAssociationViewElements>
{
public:
  IAssociationViewElementsDispT(){}

  IAssociationViewElementsDispT(IAssociationViewElements *pintf)
  {
    TAutoDriver<IAssociationViewElements>::Bind(pintf, false);
  }

  IAssociationViewElementsDispT(IAssociationViewElementsPtr pintf)
  {
    TAutoDriver<IAssociationViewElements>::Bind(pintf, true);
  }

  IAssociationViewElementsDispT& operator=(IAssociationViewElements *pintf)
  {
    TAutoDriver<IAssociationViewElements>::Bind(pintf, false);
    return *this;
  }

  IAssociationViewElementsDispT& operator=(IAssociationViewElementsPtr pintf)
  {
    TAutoDriver<IAssociationViewElements>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ProjectBodies(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectBodies(void);
  HRESULT         __fastcall set_ProjectBodies(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectSurfaces(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectSurfaces(void);
  HRESULT         __fastcall set_ProjectSurfaces(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_HiddenObjectsVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HiddenObjectsVisible(void);
  HRESULT         __fastcall set_HiddenObjectsVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectThreads(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectThreads(void);
  HRESULT         __fastcall set_ProjectThreads(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectDimensions(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectDimensions(void);
  HRESULT         __fastcall set_ProjectDimensions(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectRoughs(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectRoughs(void);
  HRESULT         __fastcall set_ProjectRoughs(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectBases(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectBases(void);
  HRESULT         __fastcall set_ProjectBases(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectTolerances(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectTolerances(void);
  HRESULT         __fastcall set_ProjectTolerances(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectPositions(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectPositions(void);
  HRESULT         __fastcall set_ProjectPositions(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectLeaders(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectLeaders(void);
  HRESULT         __fastcall set_ProjectLeaders(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectMarkLeaders(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectMarkLeaders(void);
  HRESULT         __fastcall set_ProjectMarkLeaders(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectBrandLeaders(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectBrandLeaders(void);
  HRESULT         __fastcall set_ProjectBrandLeaders(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectHiddenComponents(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectHiddenComponents(void);
  HRESULT         __fastcall set_ProjectHiddenComponents(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectStandartElements(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectStandartElements(void);
  HRESULT         __fastcall set_ProjectStandartElements(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectCurves(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectCurves(void);
  HRESULT         __fastcall set_ProjectCurves(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectPoints(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectPoints(void);
  HRESULT         __fastcall set_ProjectPoints(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectAllObjects(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectAllObjects(void);
  HRESULT         __fastcall set_ProjectAllObjects(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ProjectAllDesignations(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProjectAllDesignations(void);
  HRESULT         __fastcall set_ProjectAllDesignations(TOLEBOOL Result/*[in]*/);

  __property   TOLEBOOL        ProjectBodies = {read = get_ProjectBodies, write = set_ProjectBodies};
  __property   TOLEBOOL        ProjectSurfaces = {read = get_ProjectSurfaces, write = set_ProjectSurfaces};
  __property   TOLEBOOL        HiddenObjectsVisible = {read = get_HiddenObjectsVisible, write = set_HiddenObjectsVisible};
  __property   TOLEBOOL        ProjectThreads = {read = get_ProjectThreads, write = set_ProjectThreads};
  __property   TOLEBOOL        ProjectDimensions = {read = get_ProjectDimensions, write = set_ProjectDimensions};
  __property   TOLEBOOL        ProjectRoughs = {read = get_ProjectRoughs, write = set_ProjectRoughs};
  __property   TOLEBOOL        ProjectBases = {read = get_ProjectBases, write = set_ProjectBases};
  __property   TOLEBOOL        ProjectTolerances = {read = get_ProjectTolerances, write = set_ProjectTolerances};
  __property   TOLEBOOL        ProjectPositions = {read = get_ProjectPositions, write = set_ProjectPositions};
  __property   TOLEBOOL        ProjectLeaders = {read = get_ProjectLeaders, write = set_ProjectLeaders};
  __property   TOLEBOOL        ProjectMarkLeaders = {read = get_ProjectMarkLeaders, write = set_ProjectMarkLeaders};
  __property   TOLEBOOL        ProjectBrandLeaders = {read = get_ProjectBrandLeaders, write = set_ProjectBrandLeaders};
  __property   TOLEBOOL        ProjectHiddenComponents = {read = get_ProjectHiddenComponents, write = set_ProjectHiddenComponents};
  __property   TOLEBOOL        ProjectStandartElements = {read = get_ProjectStandartElements, write = set_ProjectStandartElements};
  __property   TOLEBOOL        ProjectCurves = {read = get_ProjectCurves, write = set_ProjectCurves};
  __property   TOLEBOOL        ProjectPoints = {read = get_ProjectPoints, write = set_ProjectPoints};
  __property   TOLEBOOL        ProjectAllObjects = {read = get_ProjectAllObjects, write = set_ProjectAllObjects};
  __property   TOLEBOOL        ProjectAllDesignations = {read = get_ProjectAllDesignations, write = set_ProjectAllDesignations};
};
typedef IAssociationViewElementsDispT<IAssociationViewElements> IAssociationViewElementsDisp;

typedef TComInterface<IBreakViewParam>  TCOMIBreakViewParam;

// *********************************************************************//
// DispIntf:  IBreakViewParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1B94C65D-3473-4FF2-B185-0B1C2C98FCAE}
// *********************************************************************//
template<class T>
class IBreakViewParamDispT : public TAutoDriver<IBreakViewParam>
{
public:
  IBreakViewParamDispT(){}

  IBreakViewParamDispT(IBreakViewParam *pintf)
  {
    TAutoDriver<IBreakViewParam>::Bind(pintf, false);
  }

  IBreakViewParamDispT(IBreakViewParamPtr pintf)
  {
    TAutoDriver<IBreakViewParam>::Bind(pintf, true);
  }

  IBreakViewParamDispT& operator=(IBreakViewParam *pintf)
  {
    TAutoDriver<IBreakViewParam>::Bind(pintf, false);
    return *this;
  }

  IBreakViewParamDispT& operator=(IBreakViewParamPtr pintf)
  {
    TAutoDriver<IBreakViewParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall AddBreakLine(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                          double Y2/*[in]*/, double Angle/*[in]*/, 
                                          long* Index/*[out,retval]*/);
  long            __fastcall AddBreakLine(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                          double Y2/*[in]*/, double Angle/*[in]*/);
  HRESULT         __fastcall DeleteBreakLine(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBreakLine(long Index/*[in]*/);
  HRESULT         __fastcall DeleteAllBreakLines(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteAllBreakLines(void);
  HRESULT         __fastcall SetBreakLinePosition(long Index/*[in]*/, double X1/*[in]*/, 
                                                  double Y1/*[in]*/, double X2/*[in]*/, 
                                                  double Y2/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBreakLinePosition(long Index/*[in]*/, double X1/*[in]*/, 
                                                  double Y1/*[in]*/, double X2/*[in]*/, 
                                                  double Y2/*[in]*/);
  HRESULT         __fastcall GetBreakLinePosition(long Index/*[in]*/, double* X1/*[out]*/, 
                                                  double* Y1/*[out]*/, double* X2/*[out]*/, 
                                                  double* Y2/*[out]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBreakLinePosition(long Index/*[in]*/, double* X1/*[out]*/, 
                                                  double* Y1/*[out]*/, double* X2/*[out]*/, 
                                                  double* Y2/*[out]*/);
  HRESULT         __fastcall SetBreakLineParams(long Index/*[in]*/, double Angle/*[in]*/, 
                                                double Clearance/*[in]*/, 
                                                ksBreakLineTypeEnum BreakLineType/*[in]*/
                                                , double Amplitude/*[in]*/, 
                                                double MaxAmplitude/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBreakLineParams(long Index/*[in]*/, double Angle/*[in]*/, 
                                                double Clearance/*[in]*/, 
                                                ksBreakLineTypeEnum BreakLineType/*[in]*/, 
                                                double Amplitude/*[in]*/, 
                                                double MaxAmplitude/*[in]*/);
  HRESULT         __fastcall GetBreakLineParams(long Index/*[in]*/, double* Angle/*[out]*/, 
                                                double* Clearance/*[out]*/, 
                                                ksBreakLineTypeEnum* BreakLineType/*[out]*/
                                                , double* Amplitude/*[out]*/, 
                                                double* MaxAmplitude/*[out]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBreakLineParams(long Index/*[in]*/, double* Angle/*[out]*/, 
                                                double* Clearance/*[out]*/, 
                                                ksBreakLineTypeEnum* BreakLineType/*[out]*/, 
                                                double* Amplitude/*[out]*/, 
                                                double* MaxAmplitude/*[out]*/);
  HRESULT         __fastcall get_BreaksCount(long* Result/*[out,retval]*/);
  long            __fastcall get_BreaksCount(void);
  HRESULT         __fastcall get_BreaksVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BreaksVisible(void);
  HRESULT         __fastcall set_BreaksVisible(TOLEBOOL Result/*[in]*/);

  __property   long            BreaksCount = {read = get_BreaksCount};
  __property   TOLEBOOL        BreaksVisible = {read = get_BreaksVisible, write = set_BreaksVisible};
};
typedef IBreakViewParamDispT<IBreakViewParam> IBreakViewParamDisp;

typedef TComInterface<ICutViewParam>  TCOMICutViewParam;

// *********************************************************************//
// DispIntf:  ICutViewParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D4C8B5AF-B2A1-4E07-9CD0-A1FC5B0BC1E1}
// *********************************************************************//
template<class T>
class ICutViewParamDispT : public TAutoDriver<ICutViewParam>
{
public:
  ICutViewParamDispT(){}

  ICutViewParamDispT(ICutViewParam *pintf)
  {
    TAutoDriver<ICutViewParam>::Bind(pintf, false);
  }

  ICutViewParamDispT(ICutViewParamPtr pintf)
  {
    TAutoDriver<ICutViewParam>::Bind(pintf, true);
  }

  ICutViewParamDispT& operator=(ICutViewParam *pintf)
  {
    TAutoDriver<ICutViewParam>::Bind(pintf, false);
    return *this;
  }

  ICutViewParamDispT& operator=(ICutViewParamPtr pintf)
  {
    TAutoDriver<ICutViewParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall AddCut(BSTR Name/*[in]*/, long Number/*[in]*/, double X/*[in]*/, 
                                    double Y/*[in]*/, TOLEBOOL ModelCut/*[in]*/, 
                                    Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                    Kompasltapi7_tlb::IViewPtr View/*[in]*/, 
                                    long* Index/*[out,retval]*/);
  long            __fastcall AddCut(BSTR Name/*[in]*/, long Number/*[in]*/, double X/*[in]*/, 
                                    double Y/*[in]*/, TOLEBOOL ModelCut/*[in]*/, 
                                    Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                    Kompasltapi7_tlb::IViewPtr View/*[in]*/);
  HRESULT         __fastcall DeleteCut(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteCut(long Index/*[in]*/);
  HRESULT         __fastcall DeleteAllCuts(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteAllCuts(void);
  HRESULT         __fastcall SetCutPlanePosition(long Index/*[in]*/, double X/*[in]*/, 
                                                 double Y/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCutPlanePosition(long Index/*[in]*/, double X/*[in]*/, 
                                                 double Y/*[in]*/);
  HRESULT         __fastcall GetCutPlanePosition(long Index/*[in]*/, double* X/*[out]*/, 
                                                 double* Y/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCutPlanePosition(long Index/*[in]*/, double* X/*[out]*/, 
                                                 double* Y/*[out]*/);
  HRESULT         __fastcall SetCutParams(long Index/*[in]*/, BSTR Name/*[in]*/, long Number/*[in]*/
                                          , TOLEBOOL ModelCut/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCutParams(long Index/*[in]*/, BSTR Name/*[in]*/, long Number/*[in]*/, 
                                          TOLEBOOL ModelCut/*[in]*/);
  HRESULT         __fastcall GetCutParams(long Index/*[in]*/, BSTR* Name/*[out]*/, 
                                          long* Number/*[out]*/, TOLEBOOL* ModelCut/*[out]*/, 
                                          Kompasltapi7_tlb::IDrawingObjectPtr* Contour/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall GetCutParams(long Index/*[in]*/, 
                                                              BSTR* Name/*[out]*/, 
                                                              long* Number/*[out]*/, 
                                                              TOLEBOOL* ModelCut/*[out]*/);
  HRESULT         __fastcall get_CutsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_CutsCount(void);
  HRESULT         __fastcall get_LocalCut(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_LocalCut(long Index/*[in]*/);
  HRESULT         __fastcall set_LocalCut(long Index/*[in]*/, TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_HatchParam(long Index/*[in]*/, 
                                            Kompasltapi7_tlb::IHatchParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHatchParamPtr __fastcall get_HatchParam(long Index/*[in]*/);

  __property   long            CutsCount = {read = get_CutsCount};
};
typedef ICutViewParamDispT<ICutViewParam> ICutViewParamDisp;

typedef TComInterface<IHatchParam>  TCOMIHatchParam;

// *********************************************************************//
// DispIntf:  IHatchParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {437D6587-7649-4A0C-80BB-7A6E89661839}
// *********************************************************************//
template<class T>
class IHatchParamDispT : public TAutoDriver<IHatchParam>
{
public:
  IHatchParamDispT(){}

  IHatchParamDispT(IHatchParam *pintf)
  {
    TAutoDriver<IHatchParam>::Bind(pintf, false);
  }

  IHatchParamDispT(IHatchParamPtr pintf)
  {
    TAutoDriver<IHatchParam>::Bind(pintf, true);
  }

  IHatchParamDispT& operator=(IHatchParam *pintf)
  {
    TAutoDriver<IHatchParam>::Bind(pintf, false);
    return *this;
  }

  IHatchParamDispT& operator=(IHatchParamPtr pintf)
  {
    TAutoDriver<IHatchParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_Color(long* Result/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Color(long Result/*[in]*/);
  HRESULT         __fastcall get_Step(double* Result/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Step(double Result/*[in]*/);
  HRESULT         __fastcall get_Angle(double* Result/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double Result/*[in]*/);
  HRESULT         __fastcall get_HatchType(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_HatchType(void);
  HRESULT         __fastcall set_HatchType(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Width(double* Result/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double Result/*[in]*/);
  HRESULT         __fastcall get_IsSheetAngle(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsSheetAngle(void);
  HRESULT         __fastcall set_IsSheetAngle(TOLEBOOL Result/*[in]*/);

  __property   long            Style = {read = get_Style, write = set_Style};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        HatchType = {read = get_HatchType, write = set_HatchType};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   TOLEBOOL        IsSheetAngle = {read = get_IsSheetAngle, write = set_IsSheetAngle};
};
typedef IHatchParamDispT<IHatchParam> IHatchParamDisp;

// *********************************************************************//
// SmartIntf: TCOMIDocument2DSettings
// Interface: IDocument2DSettings
// *********************************************************************//
template <class T /* IDocument2DSettings */ >
class TCOMIDocument2DSettingsT : public TComInterface<IDocument2DSettings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDocument2DSettingsT() {}
  TCOMIDocument2DSettingsT(IDocument2DSettings *intf, bool addRef = false) : TComInterface<IDocument2DSettings>(intf, addRef) {}
  TCOMIDocument2DSettingsT(const TCOMIDocument2DSettingsT& src) : TComInterface<IDocument2DSettings>(src) {}
  TCOMIDocument2DSettingsT& operator=(const TCOMIDocument2DSettingsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_LayersGroupWay(LayersGroupWayEnum PVal/*[in]*/);
  HRESULT         __fastcall get_LayersGroupWay(LayersGroupWayEnum* PVal/*[out,retval]*/);
  LayersGroupWayEnum __fastcall get_LayersGroupWay(void);
  HRESULT         __fastcall set_CompositionInherit(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_CompositionInherit(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CompositionInherit(void);

  __property   LayersGroupWayEnum LayersGroupWay = {read = get_LayersGroupWay, write = set_LayersGroupWay};
  __property   TOLEBOOL        CompositionInherit = {read = get_CompositionInherit, write = set_CompositionInherit};
};
typedef TCOMIDocument2DSettingsT<IDocument2DSettings> TCOMIDocument2DSettings;

// *********************************************************************//
// DispIntf:  IDocument2DSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B09A64BF-7AA6-4BF6-B8E8-AA8E8EE6E9D6}
// *********************************************************************//
template<class T>
class IDocument2DSettingsDispT : public TAutoDriver<IDocument2DSettings>
{
public:
  IDocument2DSettingsDispT(){}

  IDocument2DSettingsDispT(IDocument2DSettings *pintf)
  {
    TAutoDriver<IDocument2DSettings>::Bind(pintf, false);
  }

  IDocument2DSettingsDispT(IDocument2DSettingsPtr pintf)
  {
    TAutoDriver<IDocument2DSettings>::Bind(pintf, true);
  }

  IDocument2DSettingsDispT& operator=(IDocument2DSettings *pintf)
  {
    TAutoDriver<IDocument2DSettings>::Bind(pintf, false);
    return *this;
  }

  IDocument2DSettingsDispT& operator=(IDocument2DSettingsPtr pintf)
  {
    TAutoDriver<IDocument2DSettings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Document2DSettings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Document2DSettings);
  }

  HRESULT         __fastcall set_LayersGroupWay(LayersGroupWayEnum PVal/*[in]*/);
  HRESULT         __fastcall get_LayersGroupWay(LayersGroupWayEnum* PVal/*[out,retval]*/);
  LayersGroupWayEnum __fastcall get_LayersGroupWay(void);
  HRESULT         __fastcall set_CompositionInherit(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_CompositionInherit(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CompositionInherit(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   LayersGroupWayEnum LayersGroupWay = {read = get_LayersGroupWay, write = set_LayersGroupWay};
  __property   TOLEBOOL        CompositionInherit = {read = get_CompositionInherit, write = set_CompositionInherit};


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDocument2DSettingsDispT<IDocument2DSettings> IDocument2DSettingsDisp;

typedef TComInterface<IDrawingDocumentSettings>  TCOMIDrawingDocumentSettings;

// *********************************************************************//
// DispIntf:  IDrawingDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0DC39FC2-4FB1-489E-A76E-E47413199FA3}
// *********************************************************************//
template<class T>
class IDrawingDocumentSettingsDispT : public TAutoDriver<IDrawingDocumentSettings>
{
public:
  IDrawingDocumentSettingsDispT(){}

  IDrawingDocumentSettingsDispT(IDrawingDocumentSettings *pintf)
  {
    TAutoDriver<IDrawingDocumentSettings>::Bind(pintf, false);
  }

  IDrawingDocumentSettingsDispT(IDrawingDocumentSettingsPtr pintf)
  {
    TAutoDriver<IDrawingDocumentSettings>::Bind(pintf, true);
  }

  IDrawingDocumentSettingsDispT& operator=(IDrawingDocumentSettings *pintf)
  {
    TAutoDriver<IDrawingDocumentSettings>::Bind(pintf, false);
    return *this;
  }

  IDrawingDocumentSettingsDispT& operator=(IDrawingDocumentSettingsPtr pintf)
  {
    TAutoDriver<IDrawingDocumentSettings>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_SheetAutoNumber(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_SheetAutoNumber(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SheetAutoNumber(void);
  HRESULT         __fastcall set_SheetFirstNumber(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_SheetFirstNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_SheetFirstNumber(void);
  HRESULT         __fastcall set_SheetAutoCount(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_SheetAutoCount(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SheetAutoCount(void);
  HRESULT         __fastcall set_SheetsCount(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_SheetsCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_SheetsCount(void);

  __property   TOLEBOOL        SheetAutoNumber = {read = get_SheetAutoNumber, write = set_SheetAutoNumber};
  __property   long            SheetFirstNumber = {read = get_SheetFirstNumber, write = set_SheetFirstNumber};
  __property   TOLEBOOL        SheetAutoCount = {read = get_SheetAutoCount, write = set_SheetAutoCount};
  __property   long            SheetsCount = {read = get_SheetsCount, write = set_SheetsCount};
};
typedef IDrawingDocumentSettingsDispT<IDrawingDocumentSettings> IDrawingDocumentSettingsDisp;

typedef TComInterface<IFragmentDocumentSettings>  TCOMIFragmentDocumentSettings;

// *********************************************************************//
// DispIntf:  IFragmentDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A33D05CF-EFFF-4BBE-9BE0-15D283425828}
// *********************************************************************//
template<class T>
class IFragmentDocumentSettingsDispT : public TAutoDriver<IFragmentDocumentSettings>
{
public:
  IFragmentDocumentSettingsDispT(){}

  IFragmentDocumentSettingsDispT(IFragmentDocumentSettings *pintf)
  {
    TAutoDriver<IFragmentDocumentSettings>::Bind(pintf, false);
  }

  IFragmentDocumentSettingsDispT(IFragmentDocumentSettingsPtr pintf)
  {
    TAutoDriver<IFragmentDocumentSettings>::Bind(pintf, true);
  }

  IFragmentDocumentSettingsDispT& operator=(IFragmentDocumentSettings *pintf)
  {
    TAutoDriver<IFragmentDocumentSettings>::Bind(pintf, false);
    return *this;
  }

  IFragmentDocumentSettingsDispT& operator=(IFragmentDocumentSettingsPtr pintf)
  {
    TAutoDriver<IFragmentDocumentSettings>::Bind(pintf, true);
    return *this;
  }


};
typedef IFragmentDocumentSettingsDispT<IFragmentDocumentSettings> IFragmentDocumentSettingsDisp;

typedef TComInterface<ILibItemSettings>  TCOMILibItemSettings;

// *********************************************************************//
// DispIntf:  ILibItemSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C474582A-2AD4-4ED5-A86A-A169C4DA5D54}
// *********************************************************************//
template<class T>
class ILibItemSettingsDispT : public TAutoDriver<ILibItemSettings>
{
public:
  ILibItemSettingsDispT(){}

  ILibItemSettingsDispT(ILibItemSettings *pintf)
  {
    TAutoDriver<ILibItemSettings>::Bind(pintf, false);
  }

  ILibItemSettingsDispT(ILibItemSettingsPtr pintf)
  {
    TAutoDriver<ILibItemSettings>::Bind(pintf, true);
  }

  ILibItemSettingsDispT& operator=(ILibItemSettings *pintf)
  {
    TAutoDriver<ILibItemSettings>::Bind(pintf, false);
    return *this;
  }

  ILibItemSettingsDispT& operator=(ILibItemSettingsPtr pintf)
  {
    TAutoDriver<ILibItemSettings>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ItemCount(long* Count/*[out,retval]*/);
  long            __fastcall get_ItemCount(void);
  HRESULT         __fastcall GetItem(TVariantInParam Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                     double* Result/*[out,retval]*/);
  double          __fastcall GetItem(TVariantInParam Index/*[in]*/, TOLEBOOL* Use/*[out]*/);
  HRESULT         __fastcall SetItem(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetItem(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/);
  HRESULT         __fastcall GetItems(TVariant* UniqIds/*[out]*/, TVariant* Uses/*[out]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetItems(TVariant* UniqIds/*[out]*/, TVariant* Uses/*[out]*/);

  __property   long            ItemCount = {read = get_ItemCount};
};
typedef ILibItemSettingsDispT<ILibItemSettings> ILibItemSettingsDisp;

// *********************************************************************//
// SmartIntf: TCOMIInsertionParameters
// Interface: IInsertionParameters
// *********************************************************************//
template <class T /* IInsertionParameters */ >
class TCOMIInsertionParametersT : public TComInterface<IInsertionParameters>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertionParametersT() {}
  TCOMIInsertionParametersT(IInsertionParameters *intf, bool addRef = false) : TComInterface<IInsertionParameters>(intf, addRef) {}
  TCOMIInsertionParametersT(const TCOMIInsertionParametersT& src) : TComInterface<IInsertionParameters>(src) {}
  TCOMIInsertionParametersT& operator=(const TCOMIInsertionParametersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall get_SourceHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceHeight(void);
  HRESULT         __fastcall get_SourceWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceWidth(void);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall AutoScale(TOLEBOOL ByHeight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AutoScale(TOLEBOOL ByHeight/*[in]*/);
  HRESULT         __fastcall get_Angle(ksAngleEnum* PVal/*[out,retval]*/);
  ksAngleEnum __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(ksAngleEnum PVal/*[in]*/);
  HRESULT         __fastcall get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(void);
  HRESULT         __fastcall set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/);
  HRESULT         __fastcall get_ImageResolution(double* PVal/*[out,retval]*/);
  double          __fastcall get_ImageResolution(void);
  HRESULT         __fastcall set_ImageResolution(double PVal/*[in]*/);
  HRESULT         __fastcall get_Palette(long* PVal/*[out,retval]*/);
  long            __fastcall get_Palette(void);

  __property   BSTR            FileName = {read = get_FileName};
  __property   double          SourceHeight = {read = get_SourceHeight};
  __property   double          SourceWidth = {read = get_SourceWidth};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   ksAngleEnum Angle = {read = get_Angle, write = set_Angle};
  __property   Kompasltapi7_tlb::IInsertionDefinitionPtr InsertionDefinition = {read = get_InsertionDefinition, write = set_InsertionDefinition};
  __property   double          ImageResolution = {read = get_ImageResolution, write = set_ImageResolution};
  __property   long            Palette = {read = get_Palette};
};
typedef TCOMIInsertionParametersT<IInsertionParameters> TCOMIInsertionParameters;

// *********************************************************************//
// DispIntf:  IInsertionParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1DB65C7E-535E-489E-8F34-84DF7FBA09B2}
// *********************************************************************//
template<class T>
class IInsertionParametersDispT : public TAutoDriver<IInsertionParameters>
{
public:
  IInsertionParametersDispT(){}

  IInsertionParametersDispT(IInsertionParameters *pintf)
  {
    TAutoDriver<IInsertionParameters>::Bind(pintf, false);
  }

  IInsertionParametersDispT(IInsertionParametersPtr pintf)
  {
    TAutoDriver<IInsertionParameters>::Bind(pintf, true);
  }

  IInsertionParametersDispT& operator=(IInsertionParameters *pintf)
  {
    TAutoDriver<IInsertionParameters>::Bind(pintf, false);
    return *this;
  }

  IInsertionParametersDispT& operator=(IInsertionParametersPtr pintf)
  {
    TAutoDriver<IInsertionParameters>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_InsertionParameters));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_InsertionParameters);
  }

  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall get_SourceHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceHeight(void);
  HRESULT         __fastcall get_SourceWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceWidth(void);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall AutoScale(TOLEBOOL ByHeight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AutoScale(TOLEBOOL ByHeight/*[in]*/);
  HRESULT         __fastcall get_Angle(ksAngleEnum* PVal/*[out,retval]*/);
  ksAngleEnum __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(ksAngleEnum PVal/*[in]*/);
  HRESULT         __fastcall get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(void);
  HRESULT         __fastcall set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/);
  HRESULT         __fastcall get_ImageResolution(double* PVal/*[out,retval]*/);
  double          __fastcall get_ImageResolution(void);
  HRESULT         __fastcall set_ImageResolution(double PVal/*[in]*/);
  HRESULT         __fastcall get_Palette(long* PVal/*[out,retval]*/);
  long            __fastcall get_Palette(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            FileName = {read = get_FileName};
  __property   double          SourceHeight = {read = get_SourceHeight};
  __property   double          SourceWidth = {read = get_SourceWidth};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   ksAngleEnum Angle = {read = get_Angle, write = set_Angle};
  __property   Kompasltapi7_tlb::IInsertionDefinitionPtr InsertionDefinition = {read = get_InsertionDefinition, write = set_InsertionDefinition};
  __property   double          ImageResolution = {read = get_ImageResolution, write = set_ImageResolution};
  __property   long            Palette = {read = get_Palette};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertionParametersDispT<IInsertionParameters> IInsertionParametersDisp;

// *********************************************************************//
// SmartIntf: TCOMIInsertionDefinition
// Interface: IInsertionDefinition
// *********************************************************************//
template <class T /* IInsertionDefinition */ >
class TCOMIInsertionDefinitionT : public TComInterface<IInsertionDefinition>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertionDefinitionT() {}
  TCOMIInsertionDefinitionT(IInsertionDefinition *intf, bool addRef = false) : TComInterface<IInsertionDefinition>(intf, addRef) {}
  TCOMIInsertionDefinitionT(const TCOMIInsertionDefinitionT& src) : TComInterface<IInsertionDefinition>(src) {}
  TCOMIInsertionDefinitionT& operator=(const TCOMIInsertionDefinitionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_InsertionType(ksInsertionTypeEnum* Val/*[out,retval]*/);
  ksInsertionTypeEnum __fastcall get_InsertionType(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                  TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                  Kompasltapi7_tlb::IKompasDocument2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocument2DPtr __fastcall Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                                         TOLEBOOL ReadOnly/*[in,def,opt]*/);
  HRESULT         __fastcall get_InsertionObjectsCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_InsertionObjectsCount(void);

  __property   ksInsertionTypeEnum InsertionType = {read = get_InsertionType};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   long            InsertionObjectsCount = {read = get_InsertionObjectsCount};
};
typedef TCOMIInsertionDefinitionT<IInsertionDefinition> TCOMIInsertionDefinition;

// *********************************************************************//
// DispIntf:  IInsertionDefinition
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {66907239-09BA-4456-AC9A-318804099628}
// *********************************************************************//
template<class T>
class IInsertionDefinitionDispT : public TAutoDriver<IInsertionDefinition>
{
public:
  IInsertionDefinitionDispT(){}

  IInsertionDefinitionDispT(IInsertionDefinition *pintf)
  {
    TAutoDriver<IInsertionDefinition>::Bind(pintf, false);
  }

  IInsertionDefinitionDispT(IInsertionDefinitionPtr pintf)
  {
    TAutoDriver<IInsertionDefinition>::Bind(pintf, true);
  }

  IInsertionDefinitionDispT& operator=(IInsertionDefinition *pintf)
  {
    TAutoDriver<IInsertionDefinition>::Bind(pintf, false);
    return *this;
  }

  IInsertionDefinitionDispT& operator=(IInsertionDefinitionPtr pintf)
  {
    TAutoDriver<IInsertionDefinition>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_InsertionDefinition));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_InsertionDefinition);
  }

  HRESULT         __fastcall get_InsertionType(ksInsertionTypeEnum* Val/*[out,retval]*/);
  ksInsertionTypeEnum __fastcall get_InsertionType(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                  TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                  Kompasltapi7_tlb::IKompasDocument2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasDocument2DPtr __fastcall Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                                         TOLEBOOL ReadOnly/*[in,def,opt]*/);
  HRESULT         __fastcall get_InsertionObjectsCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_InsertionObjectsCount(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksInsertionTypeEnum InsertionType = {read = get_InsertionType};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   long            InsertionObjectsCount = {read = get_InsertionObjectsCount};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertionDefinitionDispT<IInsertionDefinition> IInsertionDefinitionDisp;

// *********************************************************************//
// SmartIntf: TCOMITableCell
// Interface: ITableCell
// *********************************************************************//
template <class T /* ITableCell */ >
class TCOMITableCellT : public TComInterface<ITableCell>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITableCellT() {}
  TCOMITableCellT(ITableCell *intf, bool addRef = false) : TComInterface<ITableCell>(intf, addRef) {}
  TCOMITableCellT(const TCOMITableCellT& src) : TComInterface<ITableCell>(src) {}
  TCOMITableCellT& operator=(const TCOMITableCellT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_CellID(long* Result/*[out,retval]*/);
  long            __fastcall get_CellID(void);
  HRESULT         __fastcall get_Row(long* Result/*[out,retval]*/);
  long            __fastcall get_Row(void);
  HRESULT         __fastcall get_Column(long* Result/*[out,retval]*/);
  long            __fastcall get_Column(void);

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Text = {read = get_Text};
  __property   long            CellID = {read = get_CellID};
  __property   long            Row = {read = get_Row};
  __property   long            Column = {read = get_Column};
};
typedef TCOMITableCellT<ITableCell> TCOMITableCell;

// *********************************************************************//
// DispIntf:  ITableCell
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CF9150BA-0E3A-46DE-8973-332A00361474}
// *********************************************************************//
template<class T>
class ITableCellDispT : public TAutoDriver<ITableCell>
{
public:
  ITableCellDispT(){}

  ITableCellDispT(ITableCell *pintf)
  {
    TAutoDriver<ITableCell>::Bind(pintf, false);
  }

  ITableCellDispT(ITableCellPtr pintf)
  {
    TAutoDriver<ITableCell>::Bind(pintf, true);
  }

  ITableCellDispT& operator=(ITableCell *pintf)
  {
    TAutoDriver<ITableCell>::Bind(pintf, false);
    return *this;
  }

  ITableCellDispT& operator=(ITableCellPtr pintf)
  {
    TAutoDriver<ITableCell>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_TableCell));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_TableCell);
  }

  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_CellID(long* Result/*[out,retval]*/);
  long            __fastcall get_CellID(void);
  HRESULT         __fastcall get_Row(long* Result/*[out,retval]*/);
  long            __fastcall get_Row(void);
  HRESULT         __fastcall get_Column(long* Result/*[out,retval]*/);
  long            __fastcall get_Column(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Text = {read = get_Text};
  __property   long            CellID = {read = get_CellID};
  __property   long            Row = {read = get_Row};
  __property   long            Column = {read = get_Column};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITableCellDispT<ITableCell> ITableCellDisp;

typedef TComInterface<ITable>  TCOMITable;

// *********************************************************************//
// DispIntf:  ITable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D3715420-645E-435B-BB25-8E35AC570718}
// *********************************************************************//
template<class T>
class ITableDispT : public TAutoDriver<ITable>
{
public:
  ITableDispT(){}

  ITableDispT(ITable *pintf)
  {
    TAutoDriver<ITable>::Bind(pintf, false);
  }

  ITableDispT(ITablePtr pintf)
  {
    TAutoDriver<ITable>::Bind(pintf, true);
  }

  ITableDispT& operator=(ITable *pintf)
  {
    TAutoDriver<ITable>::Bind(pintf, false);
    return *this;
  }

  ITableDispT& operator=(ITablePtr pintf)
  {
    TAutoDriver<ITable>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_RowsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_RowsCount(void);
  HRESULT         __fastcall get_ColumnsCount(long* Val/*[out,retval]*/);
  long            __fastcall get_ColumnsCount(void);
  HRESULT         __fastcall get_Cell(long RowN/*[in]*/, long ColN/*[in]*/, 
                                      Kompasltapi7_tlb::ITableCellPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::ITableCellPtr __fastcall get_Cell(long RowN/*[in]*/, long ColN/*[in]*/);
  HRESULT         __fastcall get_CellById(long CellID/*[in]*/, 
                                          Kompasltapi7_tlb::ITableCellPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::ITableCellPtr __fastcall get_CellById(long CellID/*[in]*/);
  HRESULT         __fastcall AddColumn(long ColN/*[in]*/, TOLEBOOL Right/*[in]*/, 
                                       TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddColumn(long ColN/*[in]*/, TOLEBOOL Right/*[in]*/);
  HRESULT         __fastcall DeleteColumn(long ColN/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteColumn(long ColN/*[in]*/);
  HRESULT         __fastcall AddRow(long RowN/*[in]*/, TOLEBOOL Down/*[in]*/, 
                                    TOLEBOOL* PVa/*[out,retval]*/);
  TOLEBOOL        __fastcall AddRow(long RowN/*[in]*/, TOLEBOOL Down/*[in]*/);
  HRESULT         __fastcall DeleteRow(long RowN/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteRow(long RowN/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Range(long BeginRow/*[in]*/, long BeginColumn/*[in]*/, 
                                       long EndRow/*[in]*/, long EndColumn/*[in]*/, 
                                       Kompasltapi7_tlb::ITableRangePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITableRangePtr __fastcall get_Range(long BeginRow/*[in]*/, 
                                                        long BeginColumn/*[in]*/, 
                                                        long EndRow/*[in]*/, long EndColumn/*[in]*/);

  __property   long            RowsCount = {read = get_RowsCount};
  __property   long            ColumnsCount = {read = get_ColumnsCount};
};
typedef ITableDispT<ITable> ITableDisp;

typedef TComInterface<ITableRange>  TCOMITableRange;

// *********************************************************************//
// DispIntf:  ITableRange
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D78E47DC-172B-4824-A519-9BC2C0387B5C}
// *********************************************************************//
template<class T>
class ITableRangeDispT : public TAutoDriver<ITableRange>
{
public:
  ITableRangeDispT(){}

  ITableRangeDispT(ITableRange *pintf)
  {
    TAutoDriver<ITableRange>::Bind(pintf, false);
  }

  ITableRangeDispT(ITableRangePtr pintf)
  {
    TAutoDriver<ITableRange>::Bind(pintf, true);
  }

  ITableRangeDispT& operator=(ITableRange *pintf)
  {
    TAutoDriver<ITableRange>::Bind(pintf, false);
    return *this;
  }

  ITableRangeDispT& operator=(ITableRangePtr pintf)
  {
    TAutoDriver<ITableRange>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall CombineCells(TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall CombineCells(void);
  HRESULT         __fastcall DivideCells(long ColumnCount/*[in]*/, long RowCount/*[in]*/, 
                                         TOLEBOOL PrepareCombine, TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall DivideCells(long ColumnCount/*[in]*/, long RowCount/*[in]*/, 
                                         TOLEBOOL PrepareCombine);
  HRESULT         __fastcall ClearCells(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall ClearCells(void);
  HRESULT         __fastcall get_Cells(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Cells(void);
  HRESULT         __fastcall get_CellsFormat(Kompasltapi7_tlb::ICellFormatPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::ICellFormatPtr __fastcall get_CellsFormat(void);
  HRESULT         __fastcall get_CellsBoundaries(Kompasltapi7_tlb::ICellBoundariesPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::ICellBoundariesPtr __fastcall get_CellsBoundaries(void);
  HRESULT         __fastcall get_Texts(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Texts(void);
  HRESULT         __fastcall set_Texts(TVariantInParam PVal/*[in]*/);

  __property   Kompasltapi7_tlb::ICellFormatPtr CellsFormat = {read = get_CellsFormat};
  __property   Kompasltapi7_tlb::ICellBoundariesPtr CellsBoundaries = {read = get_CellsBoundaries};
};
typedef ITableRangeDispT<ITableRange> ITableRangeDisp;

typedef TComInterface<ICellFormat>  TCOMICellFormat;

// *********************************************************************//
// DispIntf:  ICellFormat
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9F2F27E7-8FB2-4C6C-A54D-35DB240060D8}
// *********************************************************************//
template<class T>
class ICellFormatDispT : public TAutoDriver<ICellFormat>
{
public:
  ICellFormatDispT(){}

  ICellFormatDispT(ICellFormat *pintf)
  {
    TAutoDriver<ICellFormat>::Bind(pintf, false);
  }

  ICellFormatDispT(ICellFormatPtr pintf)
  {
    TAutoDriver<ICellFormat>::Bind(pintf, true);
  }

  ICellFormatDispT& operator=(ICellFormat *pintf)
  {
    TAutoDriver<ICellFormat>::Bind(pintf, false);
    return *this;
  }

  ICellFormatDispT& operator=(ICellFormatPtr pintf)
  {
    TAutoDriver<ICellFormat>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_TextStyle(long* Result/*[out,retval]*/);
  long            __fastcall get_TextStyle(void);
  HRESULT         __fastcall set_TextStyle(long Result/*[in]*/);
  HRESULT         __fastcall get_ReadOnly(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ReadOnly(void);
  HRESULT         __fastcall set_ReadOnly(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_OneLine(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_OneLine(void);
  HRESULT         __fastcall set_OneLine(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_LeftEdge(double* Result/*[out,retval]*/);
  double          __fastcall get_LeftEdge(void);
  HRESULT         __fastcall set_LeftEdge(double Result/*[in]*/);
  HRESULT         __fastcall get_RightEdge(double* Result/*[out,retval]*/);
  double          __fastcall get_RightEdge(void);
  HRESULT         __fastcall set_RightEdge(double Result/*[in]*/);
  HRESULT         __fastcall get_SpaceBefore(double* Result/*[out,retval]*/);
  double          __fastcall get_SpaceBefore(void);
  HRESULT         __fastcall set_SpaceBefore(double Result/*[in]*/);
  HRESULT         __fastcall get_SpaceAfter(double* Result/*[out,retval]*/);
  double          __fastcall get_SpaceAfter(void);
  HRESULT         __fastcall set_SpaceAfter(double Result/*[in]*/);
  HRESULT         __fastcall get_Width(double* Result/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double Result/*[in]*/);
  HRESULT         __fastcall get_Height(double* Result/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double Result/*[in]*/);
  HRESULT         __fastcall get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/);
  ksTextHorizontalFormatEnum __fastcall get_HFormat(void);
  HRESULT         __fastcall set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/);
  HRESULT         __fastcall get_VFormat(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VFormat(void);
  HRESULT         __fastcall set_VFormat(TOLEBOOL Result/*[in]*/);

  __property   long            TextStyle = {read = get_TextStyle, write = set_TextStyle};
  __property   TOLEBOOL        ReadOnly = {read = get_ReadOnly, write = set_ReadOnly};
  __property   TOLEBOOL        OneLine = {read = get_OneLine, write = set_OneLine};
  __property   double          LeftEdge = {read = get_LeftEdge, write = set_LeftEdge};
  __property   double          RightEdge = {read = get_RightEdge, write = set_RightEdge};
  __property   double          SpaceBefore = {read = get_SpaceBefore, write = set_SpaceBefore};
  __property   double          SpaceAfter = {read = get_SpaceAfter, write = set_SpaceAfter};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   ksTextHorizontalFormatEnum HFormat = {read = get_HFormat, write = set_HFormat};
  __property   TOLEBOOL        VFormat = {read = get_VFormat, write = set_VFormat};
};
typedef ICellFormatDispT<ICellFormat> ICellFormatDisp;

typedef TComInterface<ICellBoundaries>  TCOMICellBoundaries;

// *********************************************************************//
// DispIntf:  ICellBoundaries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1E29E849-1D1E-4791-BD31-8EF00ED5D118}
// *********************************************************************//
template<class T>
class ICellBoundariesDispT : public TAutoDriver<ICellBoundaries>
{
public:
  ICellBoundariesDispT(){}

  ICellBoundariesDispT(ICellBoundaries *pintf)
  {
    TAutoDriver<ICellBoundaries>::Bind(pintf, false);
  }

  ICellBoundariesDispT(ICellBoundariesPtr pintf)
  {
    TAutoDriver<ICellBoundaries>::Bind(pintf, true);
  }

  ICellBoundariesDispT& operator=(ICellBoundaries *pintf)
  {
    TAutoDriver<ICellBoundaries>::Bind(pintf, false);
    return *this;
  }

  ICellBoundariesDispT& operator=(ICellBoundariesPtr pintf)
  {
    TAutoDriver<ICellBoundaries>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_LineStyle(ksCellBoundariesEnum Index/*[in]*/
                                           , 
                                           ksCurveStyleEnum* Result/*[out,retval]*/);
  ksCurveStyleEnum __fastcall get_LineStyle(ksCellBoundariesEnum Index/*[in]*/);
  HRESULT         __fastcall set_LineStyle(ksCellBoundariesEnum Index/*[in]*/
                                           , ksCurveStyleEnum Result/*[in]*/);
  HRESULT         __fastcall get_LineVisible(ksCellBoundariesEnum Index/*[in]*/
                                             , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_LineVisible(ksCellBoundariesEnum Index/*[in]*/);
  HRESULT         __fastcall set_LineVisible(ksCellBoundariesEnum Index/*[in]*/
                                             , TOLEBOOL Result/*[in]*/);

};
typedef ICellBoundariesDispT<ICellBoundaries> ICellBoundariesDisp;

// *********************************************************************//
// DispIntf:  ksPropertyManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {5A89C538-E0DD-4C21-B3D1-3BF65EEB8C3E}
// *********************************************************************//
template <class T>
class ksPropertyManagerNotifyDispT : public TAutoDriver<ksPropertyManagerNotify>
{
public:
  ksPropertyManagerNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall ButtonClick(long ButtonID);
  TOLEBOOL        __fastcall ChangeControlValue(Kompasltapi7_tlb::IPropertyControlPtr Control);
  TOLEBOOL        __fastcall ControlCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                            long ButtonID);
  TOLEBOOL        __fastcall ButtonUpdate(long ButtonID, long* Check, TOLEBOOL* Enable);
  TOLEBOOL        __fastcall ProcessActivate();
  TOLEBOOL        __fastcall ProcessDeactivate();
  TOLEBOOL        __fastcall CommandHelp(long Id);
  TOLEBOOL        __fastcall SelectItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                        TOLEBOOL Select);
  TOLEBOOL        __fastcall CheckItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                       TOLEBOOL Check);
  TOLEBOOL        __fastcall ChangeActiveTab(long TabIndex);
  TOLEBOOL        __fastcall EditFocus(Kompasltapi7_tlb::IPropertyControlPtr Control, TOLEBOOL Set);
  TOLEBOOL        __fastcall UserMenuCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                             long MenuID);

};
typedef ksPropertyManagerNotifyDispT<ksPropertyManagerNotify> ksPropertyManagerNotifyDisp;

// *********************************************************************//
// DispIntf:  ksPropertyUserControlNotify
// Flags:     (4096) Dispatchable
// GUID:      {5A31BB02-026C-4419-A0FF-A93CF58DCA99}
// *********************************************************************//
template <class T>
class ksPropertyUserControlNotifyDispT : public TAutoDriver<ksPropertyUserControlNotify>
{
public:
  ksPropertyUserControlNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall CreateOCX(LPDISPATCH IOcx);
  TOLEBOOL        __fastcall DestroyOCX();

};
typedef ksPropertyUserControlNotifyDispT<ksPropertyUserControlNotify> ksPropertyUserControlNotifyDisp;

// *********************************************************************//
// DispIntf:  ksDocumentFrameNotify
// Flags:     (4096) Dispatchable
// GUID:      {6ECBB531-5609-4364-AC92-7A6A21D23313}
// *********************************************************************//
template <class T>
class ksDocumentFrameNotifyDispT : public TAutoDriver<ksDocumentFrameNotify>
{
public:
  ksDocumentFrameNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall BeginPaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj);
  TOLEBOOL        __fastcall ClosePaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj);
  TOLEBOOL        __fastcall MouseDown(short NButton/*[in]*/, short NShiftState/*[in]*/, 
                                       long X/*[in]*/, long Y/*[in]*/);
  TOLEBOOL        __fastcall MouseUp(short NButton/*[in]*/, short NShiftState/*[in]*/, 
                                     long X/*[in]*/, long Y/*[in]*/);
  TOLEBOOL        __fastcall MouseDblClick(short NButton/*[in]*/, short NShiftState/*[in]*/, 
                                           long X/*[in]*/, long Y/*[in]*/);
  TOLEBOOL        __fastcall BeginPaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj/*[in]*/, 
                                          long DrawMode/*[in]*/);
  TOLEBOOL        __fastcall ClosePaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj/*[in]*/, 
                                          long DrawMode/*[in]*/);
  TOLEBOOL        __fastcall AddGabarit(Kompasltapi7_tlb::IGabaritObjectPtr GabObj);
  TOLEBOOL        __fastcall Activate();
  TOLEBOOL        __fastcall Deactivate();
  TOLEBOOL        __fastcall CloseFrame();
  TOLEBOOL        __fastcall MouseMove(short NShiftState/*[in]*/, long X/*[in]*/, long Y/*[in]*/);
  TOLEBOOL        __fastcall ShowOcxTree(LPDISPATCH Ocx/*[in]*/, TOLEBOOL show/*[in]*/);

};
typedef ksDocumentFrameNotifyDispT<ksDocumentFrameNotify> ksDocumentFrameNotifyDisp;

typedef TComInterface<IPaintObject>  TCOMIPaintObject;

// *********************************************************************//
// DispIntf:  IPaintObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D14726D-0EC2-49CE-B02C-FEDAA6D65BBD}
// *********************************************************************//
template<class T>
class IPaintObjectDispT : public TAutoDriver<IPaintObject>
{
public:
  IPaintObjectDispT(){}

  IPaintObjectDispT(IPaintObject *pintf)
  {
    TAutoDriver<IPaintObject>::Bind(pintf, false);
  }

  IPaintObjectDispT(IPaintObjectPtr pintf)
  {
    TAutoDriver<IPaintObject>::Bind(pintf, true);
  }

  IPaintObjectDispT& operator=(IPaintObject *pintf)
  {
    TAutoDriver<IPaintObject>::Bind(pintf, false);
    return *this;
  }

  IPaintObjectDispT& operator=(IPaintObjectPtr pintf)
  {
    TAutoDriver<IPaintObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/);
  OLE_HANDLE      __fastcall GetHWND(void);
  HRESULT         __fastcall GetTransformMatrix(double* A11/*[out]*/, double* A12/*[out]*/, 
                                                double* A13/*[out]*/, double* A14/*[out]*/, 
                                                double* A21/*[out]*/, double* A22/*[out]*/, 
                                                double* A23/*[out]*/, double* A24/*[out]*/);
  HRESULT         __fastcall GetDIBForOutput(BSTR* MapFileName/*[out,retval]*/);
  BSTR            __fastcall GetDIBForOutput(void);

};
typedef IPaintObjectDispT<IPaintObject> IPaintObjectDisp;

// *********************************************************************//
// DispIntf:  ksGLObject
// Flags:     (4096) Dispatchable
// GUID:      {B1C65023-B908-4CAD-9238-C5026520E62C}
// *********************************************************************//
template<class T>
class ksGLObjectDispT : public TAutoDriver<ksGLObject>
{
public:
  ksGLObjectDispT(){}

  ksGLObjectDispT(ksGLObject *pintf)
  {
    TAutoDriver<ksGLObject>::Bind(pintf, false);
  }

  ksGLObjectDispT(ksGLObjectPtr pintf)
  {
    TAutoDriver<ksGLObject>::Bind(pintf, true);
  }

  ksGLObjectDispT& operator=(ksGLObject *pintf)
  {
    TAutoDriver<ksGLObject>::Bind(pintf, false);
    return *this;
  }

  ksGLObjectDispT& operator=(ksGLObjectPtr pintf)
  {
    TAutoDriver<ksGLObject>::Bind(pintf, true);
    return *this;
  }

  TOLEBOOL        __fastcall glBegin(long Mode/*[in]*/);
  TOLEBOOL        __fastcall glEnd();
  TOLEBOOL        __fastcall glEnable(long Cap/*[in]*/);
  TOLEBOOL        __fastcall glDisable(long Cap/*[in]*/);
  TOLEBOOL        __fastcall glColor3d(double R/*[in]*/, double G/*[in]*/, double B/*[in]*/);
  TOLEBOOL        __fastcall glLineWidth(double W/*[in]*/);
  TOLEBOOL        __fastcall glLineStipple(long Factor/*[in]*/, short Pattern/*[in]*/);
  TOLEBOOL        __fastcall glPointSize(double W/*[in]*/);
  TOLEBOOL        __fastcall glPolygonMode(long Face/*[in]*/, long Mode/*[in]*/);
  TOLEBOOL        __fastcall glVertex2d(double X/*[in]*/, double Y/*[in]*/);
  TOLEBOOL        __fastcall glVertex2dv(double* PData/*[in]*/, long CountDouble/*[in]*/);
  TOLEBOOL        __fastcall glVertex3d(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  TOLEBOOL        __fastcall glVertex3dv(double* PData/*[in]*/, long CountDouble/*[in]*/);
  TOLEBOOL        __fastcall glVertex4d(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                        double W/*[in]*/);
  TOLEBOOL        __fastcall glVertex4dv(double* PData/*[in]*/, long CountDouble/*[in]*/);

};
typedef ksGLObjectDispT<ksGLObject> ksGLObjectDisp;

typedef TComInterface<IGabaritObject>  TCOMIGabaritObject;

// *********************************************************************//
// DispIntf:  IGabaritObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B6674824-CD9D-4220-B2CB-9F939A9C35C8}
// *********************************************************************//
template<class T>
class IGabaritObjectDispT : public TAutoDriver<IGabaritObject>
{
public:
  IGabaritObjectDispT(){}

  IGabaritObjectDispT(IGabaritObject *pintf)
  {
    TAutoDriver<IGabaritObject>::Bind(pintf, false);
  }

  IGabaritObjectDispT(IGabaritObjectPtr pintf)
  {
    TAutoDriver<IGabaritObject>::Bind(pintf, true);
  }

  IGabaritObjectDispT& operator=(IGabaritObject *pintf)
  {
    TAutoDriver<IGabaritObject>::Bind(pintf, false);
    return *this;
  }

  IGabaritObjectDispT& operator=(IGabaritObjectPtr pintf)
  {
    TAutoDriver<IGabaritObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall GetCurrentGabarit(long NPage/*[in]*/, double* P1X/*[out]*/, 
                                               double* P1Y/*[out]*/, double* P1Z/*[out]*/, 
                                               double* P2X/*[out]*/, double* P2Y/*[out]*/, 
                                               double* P2Z/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCurrentGabarit(long NPage/*[in]*/, double* P1X/*[out]*/, 
                                               double* P1Y/*[out]*/, double* P1Z/*[out]*/, 
                                               double* P2X/*[out]*/, double* P2Y/*[out]*/, 
                                               double* P2Z/*[out]*/);
  HRESULT         __fastcall AddGabarit(double X1/*[in]*/, double Y1/*[in]*/, double Z1/*[in]*/, 
                                        double X2/*[in]*/, double Y2/*[in]*/, double Z2/*[in]*/, 
                                        TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddGabarit(double X1/*[in]*/, double Y1/*[in]*/, double Z1/*[in]*/, 
                                        double X2/*[in]*/, double Y2/*[in]*/, double Z2/*[in]*/);
  HRESULT         __fastcall GetGabaritModifying(TOLEBOOL* DocGabaritModify/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGabaritModifying(void);

};
typedef IGabaritObjectDispT<IGabaritObject> IGabaritObjectDisp;

// *********************************************************************//
// DispIntf:  ksDrawingObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {E335A73F-DF27-4D33-8CBD-E928F797FB94}
// *********************************************************************//
template <class T>
class ksDrawingObjectNotifyDispT : public TAutoDriver<ksDrawingObjectNotify>
{
public:
  ksDrawingObjectNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall ChangeActive(TVariant Obj);
  TOLEBOOL        __fastcall BeginDelete(TVariant Objects);
  TOLEBOOL        __fastcall Delete(TVariant Objects);
  TOLEBOOL        __fastcall BeginMove(TVariant Objects);
  TOLEBOOL        __fastcall Move(TVariant Objects);
  TOLEBOOL        __fastcall BeginRotate(TVariant Objects);
  TOLEBOOL        __fastcall Rotate(TVariant Objects);
  TOLEBOOL        __fastcall BeginScale(TVariant Objects);
  TOLEBOOL        __fastcall Scale(TVariant Objects);
  TOLEBOOL        __fastcall BeginTransform(TVariant Objects);
  TOLEBOOL        __fastcall Transform(TVariant Objects);
  TOLEBOOL        __fastcall BeginCopy(TVariant Objects);
  TOLEBOOL        __fastcall Copy(TVariant Objects);
  TOLEBOOL        __fastcall BeginSymmetry(TVariant Objects);
  TOLEBOOL        __fastcall Symmetry(TVariant Objects);
  TOLEBOOL        __fastcall BeginProcess(long PType, TVariant ObjRef);
  TOLEBOOL        __fastcall EndProcess(long PType);
  TOLEBOOL        __fastcall CreateObject(TVariant Objects);
  TOLEBOOL        __fastcall UpdateObject(TVariant Objects);
  TOLEBOOL        __fastcall BeginDestroyObject(TVariant Objects);
  TOLEBOOL        __fastcall DestroyObject(TVariant Objects);

};
typedef ksDrawingObjectNotifyDispT<ksDrawingObjectNotify> ksDrawingObjectNotifyDisp;

// *********************************************************************//
// DispIntf:  ksViewsAndLayersManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {FC04C62E-AB0F-4614-B3D9-0EA8671CEB08}
// *********************************************************************//
template <class T>
class ksViewsAndLayersManagerNotifyDispT : public TAutoDriver<ksViewsAndLayersManagerNotify>
{
public:
  ksViewsAndLayersManagerNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall BeginEdit();
  TOLEBOOL        __fastcall EndEdit(TOLEBOOL IsOk);

};
typedef ksViewsAndLayersManagerNotifyDispT<ksViewsAndLayersManagerNotify> ksViewsAndLayersManagerNotifyDisp;

// *********************************************************************//
// DispIntf:  ksLibraryManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {9B9CC387-E217-4EED-BCE9-9E1D645B49EE}
// *********************************************************************//
template <class T>
class ksLibraryManagerNotifyDispT : public TAutoDriver<ksLibraryManagerNotify>
{
public:
  ksLibraryManagerNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall BeginAttach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall Attach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall BeginDetach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall Detach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall BeginExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall EndExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall SystemControlStop(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall SystemControlStart(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall AddLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall DeleteLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        __fastcall AddInsert(Kompasltapi7_tlb::IInsertPtr PInsert, TOLEBOOL Create);
  TOLEBOOL        __fastcall DeleteInsert(Kompasltapi7_tlb::IInsertPtr PInsert);
  TOLEBOOL        __fastcall EditInsert(Kompasltapi7_tlb::ILibraryPtr PLibrary, 
                                        Kompasltapi7_tlb::IKompasDocumentPtr PDoc, TOLEBOOL NewFrw);

};
typedef ksLibraryManagerNotifyDispT<ksLibraryManagerNotify> ksLibraryManagerNotifyDisp;

// *********************************************************************//
// DispIntf:  ksSpecificationDescriptionNotify
// Flags:     (4096) Dispatchable
// GUID:      {A0DA14E6-4F92-4D18-8CD1-2BBAB695CE13}
// *********************************************************************//
template <class T>
class ksSpecificationDescriptionNotifyDispT : public TAutoDriver<ksSpecificationDescriptionNotify>
{
public:
  ksSpecificationDescriptionNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall TuningSpcStyleBeginChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        __fastcall TuningSpcStyleChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr
                                                  , TOLEBOOL IsOk);
  TOLEBOOL        __fastcall ChangeCurrentSpcDescription(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        __fastcall SpcDescriptionAdd(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        __fastcall SpcDescriptionRemove(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        __fastcall SpcDescriptionBeginEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        __fastcall SpcDescriptionEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr
                                                , TOLEBOOL IsOk);
  TOLEBOOL        __fastcall SynchronizationBegin();
  TOLEBOOL        __fastcall Synchronization();
  TOLEBOOL        __fastcall BeginCalcPositions();
  TOLEBOOL        __fastcall CalcPositions();
  TOLEBOOL        __fastcall BeginCreateObject(long TypeObj);

};
typedef ksSpecificationDescriptionNotifyDispT<ksSpecificationDescriptionNotify> ksSpecificationDescriptionNotifyDisp;

// *********************************************************************//
// DispIntf:  ksSpecificationObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {1C4DEC41-A8EA-40EE-9AC8-F807232DB874}
// *********************************************************************//
template <class T>
class ksSpecificationObjectNotifyDispT : public TAutoDriver<ksSpecificationObjectNotify>
{
public:
  ksSpecificationObjectNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number);
  TOLEBOOL        __fastcall CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                           long Number);
  TOLEBOOL        __fastcall ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName);
  TOLEBOOL        __fastcall DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                            BSTR DocName);
  TOLEBOOL        __fastcall BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall BeginProcess(long PType, Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall EndProcess(long PType);
  TOLEBOOL        __fastcall CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        __fastcall UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);

};
typedef ksSpecificationObjectNotifyDispT<ksSpecificationObjectNotify> ksSpecificationObjectNotifyDisp;

// *********************************************************************//
// DispIntf:  ksLayoutSheetsNotify
// Flags:     (4096) Dispatchable
// GUID:      {58E30500-6073-4337-BFC1-32A74EA17DE8}
// *********************************************************************//
template <class T>
class ksLayoutSheetsNotifyDispT : public TAutoDriver<ksLayoutSheetsNotify>
{
public:
  ksLayoutSheetsNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall Add(Kompasltapi7_tlb::ILayoutSheetPtr PSheet);
  TOLEBOOL        __fastcall Delete(Kompasltapi7_tlb::ILayoutSheetPtr PSheet);
  TOLEBOOL        __fastcall _Update(Kompasltapi7_tlb::ILayoutSheetPtr PSheet);

};
typedef ksLayoutSheetsNotifyDispT<ksLayoutSheetsNotify> ksLayoutSheetsNotifyDisp;

// *********************************************************************//
// DispIntf:  ksModelObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {7B8E86E1-4304-449D-9CEC-1B14F74A16FB}
// *********************************************************************//
template <class T>
class ksModelObjectNotifyDispT : public TAutoDriver<ksModelObjectNotify>
{
public:
  ksModelObjectNotifyDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall BeginDelete(TVariant Obj);
  TOLEBOOL        __fastcall Delete(TVariant Obj);
  TOLEBOOL        __fastcall Excluded(TVariant Obj, TOLEBOOL Excluded);
  TOLEBOOL        __fastcall Hidden(TVariant Obj, TOLEBOOL _Hidden);
  TOLEBOOL        __fastcall BeginPropertyChanged(TVariant Obj);
  TOLEBOOL        __fastcall PropertyChanged(TVariant Obj);
  TOLEBOOL        __fastcall BeginPlacementChanged(TVariant Obj);
  TOLEBOOL        __fastcall PlacementChanged(TVariant Obj);
  TOLEBOOL        __fastcall BeginProcess(long PType, TVariant Pbj);
  TOLEBOOL        __fastcall EndProcess(long PType);
  TOLEBOOL        __fastcall CreateObject(TVariant Obj);
  TOLEBOOL        __fastcall UpdateObject(TVariant Obj);

};
typedef ksModelObjectNotifyDispT<ksModelObjectNotify> ksModelObjectNotifyDisp;

// *********************************************************************//
// DispIntf:  ksDocument3DNotify7
// Flags:     (4096) Dispatchable
// GUID:      {C784D45B-8C68-4189-8F27-A3B0D6CFAEB2}
// *********************************************************************//
template <class T>
class ksDocument3DNotify7DispT : public TAutoDriver<ksDocument3DNotify7>
{
public:
  ksDocument3DNotify7DispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  TOLEBOOL        __fastcall BeginRebuild();
  TOLEBOOL        __fastcall Rebuild();
  TOLEBOOL        __fastcall BeginChoiceMaterial();
  TOLEBOOL        __fastcall ChoiceMaterial(BSTR Material, double Density);
  TOLEBOOL        __fastcall BeginChoiceMarking();
  TOLEBOOL        __fastcall ChoiceMarking(BSTR Marking);
  TOLEBOOL        __fastcall BeginSetPartFromFile();
  TOLEBOOL        __fastcall BeginCreatePartFromFile(TOLEBOOL TypeDoc, 
                                                     Kompasltapi7_tlb::IModelObjectPtr Plane);

};
typedef ksDocument3DNotify7DispT<ksDocument3DNotify7> ksDocument3DNotify7Disp;

typedef TComInterface<IModelObjectNotifyResult>  TCOMIModelObjectNotifyResult;

// *********************************************************************//
// DispIntf:  IModelObjectNotifyResult
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {73653933-51B5-49D6-9EF2-6667639283CC}
// *********************************************************************//
template<class T>
class IModelObjectNotifyResultDispT : public TAutoDriver<IModelObjectNotifyResult>
{
public:
  IModelObjectNotifyResultDispT(){}

  IModelObjectNotifyResultDispT(IModelObjectNotifyResult *pintf)
  {
    TAutoDriver<IModelObjectNotifyResult>::Bind(pintf, false);
  }

  IModelObjectNotifyResultDispT(IModelObjectNotifyResultPtr pintf)
  {
    TAutoDriver<IModelObjectNotifyResult>::Bind(pintf, true);
  }

  IModelObjectNotifyResultDispT& operator=(IModelObjectNotifyResult *pintf)
  {
    TAutoDriver<IModelObjectNotifyResult>::Bind(pintf, false);
    return *this;
  }

  IModelObjectNotifyResultDispT& operator=(IModelObjectNotifyResultPtr pintf)
  {
    TAutoDriver<IModelObjectNotifyResult>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_NotifyType(ksObject3DNotifyEnum* PVal/*[out,retval]*/);
  ksObject3DNotifyEnum __fastcall get_NotifyType(void);
  HRESULT         __fastcall get_NotifyObjects(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_NotifyObjects(void);
  HRESULT         __fastcall get_ProcessType(ProcessTypeEnum* PVal/*[out,retval]*/);
  ProcessTypeEnum __fastcall get_ProcessType(void);

  __property   ksObject3DNotifyEnum NotifyType = {read = get_NotifyType};
  __property   ProcessTypeEnum ProcessType = {read = get_ProcessType};
};
typedef IModelObjectNotifyResultDispT<IModelObjectNotifyResult> IModelObjectNotifyResultDisp;

typedef TComInterface<IKompasDocument3DNotifyResult>  TCOMIKompasDocument3DNotifyResult;

// *********************************************************************//
// DispIntf:  IKompasDocument3DNotifyResult
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {354EA69A-3191-4DA4-B980-821BE9B7683C}
// *********************************************************************//
template<class T>
class IKompasDocument3DNotifyResultDispT : public TAutoDriver<IKompasDocument3DNotifyResult>
{
public:
  IKompasDocument3DNotifyResultDispT(){}

  IKompasDocument3DNotifyResultDispT(IKompasDocument3DNotifyResult *pintf)
  {
    TAutoDriver<IKompasDocument3DNotifyResult>::Bind(pintf, false);
  }

  IKompasDocument3DNotifyResultDispT(IKompasDocument3DNotifyResultPtr pintf)
  {
    TAutoDriver<IKompasDocument3DNotifyResult>::Bind(pintf, true);
  }

  IKompasDocument3DNotifyResultDispT& operator=(IKompasDocument3DNotifyResult *pintf)
  {
    TAutoDriver<IKompasDocument3DNotifyResult>::Bind(pintf, false);
    return *this;
  }

  IKompasDocument3DNotifyResultDispT& operator=(IKompasDocument3DNotifyResultPtr pintf)
  {
    TAutoDriver<IKompasDocument3DNotifyResult>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_NotifyType(ksDocument3DNotifyEnum* PVal/*[out,retval]*/);
  ksDocument3DNotifyEnum __fastcall get_NotifyType(void);
  HRESULT         __fastcall get_NotifyObjectType(ksObj3dTypeEnum* PVal/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_NotifyObjectType(void);
  HRESULT         __fastcall get_NotifyObject(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_NotifyObject(void);

  __property   ksDocument3DNotifyEnum NotifyType = {read = get_NotifyType};
  __property   ksObj3dTypeEnum NotifyObjectType = {read = get_NotifyObjectType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr NotifyObject = {read = get_NotifyObject};
};
typedef IKompasDocument3DNotifyResultDispT<IKompasDocument3DNotifyResult> IKompasDocument3DNotifyResultDisp;

typedef TComInterface<IModelContainer>  TCOMIModelContainer;

// *********************************************************************//
// DispIntf:  IModelContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2C6E8A0F-EDC8-413C-9304-9278817B915B}
// *********************************************************************//
template<class T>
class IModelContainerDispT : public TAutoDriver<IModelContainer>
{
public:
  IModelContainerDispT(){}

  IModelContainerDispT(IModelContainer *pintf)
  {
    TAutoDriver<IModelContainer>::Bind(pintf, false);
  }

  IModelContainerDispT(IModelContainerPtr pintf)
  {
    TAutoDriver<IModelContainer>::Bind(pintf, true);
  }

  IModelContainerDispT& operator=(IModelContainer *pintf)
  {
    TAutoDriver<IModelContainer>::Bind(pintf, false);
    return *this;
  }

  IModelContainerDispT& operator=(IModelContainerPtr pintf)
  {
    TAutoDriver<IModelContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Objects(TVariantInParam ObjType/*[in]*/, 
                                         TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Objects(TVariantInParam ObjType/*[in]*/);
  HRESULT         __fastcall get_Sketchs(Kompasltapi7_tlb::ISketchsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchsPtr __fastcall get_Sketchs(void);
  HRESULT         __fastcall get_Extrusions(Kompasltapi7_tlb::IExtrusionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IExtrusionsPtr __fastcall get_Extrusions(void);
  HRESULT         __fastcall get_Points3D(Kompasltapi7_tlb::IPoints3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IPoints3DPtr __fastcall get_Points3D(void);

  __property   Kompasltapi7_tlb::ISketchsPtr Sketchs = {read = get_Sketchs};
  __property   Kompasltapi7_tlb::IExtrusionsPtr Extrusions = {read = get_Extrusions};
  __property   Kompasltapi7_tlb::IPoints3DPtr Points3D = {read = get_Points3D};
};
typedef IModelContainerDispT<IModelContainer> IModelContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMISketchs
// Interface: ISketchs
// *********************************************************************//
template <class T /* ISketchs */ >
class TCOMISketchsT : public TComInterface<ISketchs>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISketchsT() {}
  TCOMISketchsT(ISketchs *intf, bool addRef = false) : TComInterface<ISketchs>(intf, addRef) {}
  TCOMISketchsT(const TCOMISketchsT& src) : TComInterface<ISketchs>(src) {}
  TCOMISketchsT& operator=(const TCOMISketchsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Sketch(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall Add(void);

};
typedef TCOMISketchsT<ISketchs> TCOMISketchs;

// *********************************************************************//
// DispIntf:  ISketchs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE562963-395C-4748-9726-FCA9C531B1CA}
// *********************************************************************//
template<class T>
class ISketchsDispT : public TAutoDriver<ISketchs>
{
public:
  ISketchsDispT(){}

  ISketchsDispT(ISketchs *pintf)
  {
    TAutoDriver<ISketchs>::Bind(pintf, false);
  }

  ISketchsDispT(ISketchsPtr pintf)
  {
    TAutoDriver<ISketchs>::Bind(pintf, true);
  }

  ISketchsDispT& operator=(ISketchs *pintf)
  {
    TAutoDriver<ISketchs>::Bind(pintf, false);
    return *this;
  }

  ISketchsDispT& operator=(ISketchsPtr pintf)
  {
    TAutoDriver<ISketchs>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Sketchs));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Sketchs);
  }

  HRESULT         __fastcall get_Sketch(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISketchsDispT<ISketchs> ISketchsDisp;

// *********************************************************************//
// SmartIntf: TCOMISketch
// Interface: ISketch
// *********************************************************************//
template <class T /* ISketch */ >
class TCOMISketchT : public TComInterface<ISketch>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISketchT() {}
  TCOMISketchT(ISketch *intf, bool addRef = false) : TComInterface<ISketch>(intf, addRef) {}
  TCOMISketchT(const TCOMISketchT& src) : TComInterface<ISketch>(src) {}
  TCOMISketchT& operator=(const TCOMISketchT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Plane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Plane(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall GetLocation(double* X/*[out]*/, double* Y/*[out]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLocation(double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall SetLocation(double X/*[in]*/, double Y/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLocation(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                          TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall SetLoftPoint(double X/*[in]*/, double Y/*[in]*/, 
                                          TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLoftPoint(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall BeginEdit(Kompasltapi7_tlb::IFragmentDocumentPtr* SketchDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IFragmentDocumentPtr __fastcall BeginEdit(void);
  HRESULT         __fastcall EndEdit(TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall EndEdit(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Plane = {read = get_Plane, write = set_Plane};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMISketchT<ISketch> TCOMISketch;

// *********************************************************************//
// DispIntf:  ISketch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E6BBF50D-8401-4FB3-A6B6-153D3F447255}
// *********************************************************************//
template<class T>
class ISketchDispT : public TAutoDriver<ISketch>
{
public:
  ISketchDispT(){}

  ISketchDispT(ISketch *pintf)
  {
    TAutoDriver<ISketch>::Bind(pintf, false);
  }

  ISketchDispT(ISketchPtr pintf)
  {
    TAutoDriver<ISketch>::Bind(pintf, true);
  }

  ISketchDispT& operator=(ISketch *pintf)
  {
    TAutoDriver<ISketch>::Bind(pintf, false);
    return *this;
  }

  ISketchDispT& operator=(ISketchPtr pintf)
  {
    TAutoDriver<ISketch>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Sketch));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Sketch);
  }

  HRESULT         __fastcall set_Plane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Plane(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall GetLocation(double* X/*[out]*/, double* Y/*[out]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLocation(double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall SetLocation(double X/*[in]*/, double Y/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLocation(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                          TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall SetLoftPoint(double X/*[in]*/, double Y/*[in]*/, 
                                          TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetLoftPoint(double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall BeginEdit(Kompasltapi7_tlb::IFragmentDocumentPtr* SketchDoc/*[out,retval]*/);
  Kompasltapi7_tlb::IFragmentDocumentPtr __fastcall BeginEdit(void);
  HRESULT         __fastcall EndEdit(TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall EndEdit(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Plane = {read = get_Plane, write = set_Plane};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISketchDispT<ISketch> ISketchDisp;

// *********************************************************************//
// SmartIntf: TCOMIExtrusions
// Interface: IExtrusions
// *********************************************************************//
template <class T /* IExtrusions */ >
class TCOMIExtrusionsT : public TComInterface<IExtrusions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIExtrusionsT() {}
  TCOMIExtrusionsT(IExtrusions *intf, bool addRef = false) : TComInterface<IExtrusions>(intf, addRef) {}
  TCOMIExtrusionsT(const TCOMIExtrusionsT& src) : TComInterface<IExtrusions>(src) {}
  TCOMIExtrusionsT& operator=(const TCOMIExtrusionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Extrusion(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IExtrusionPtr __fastcall get_Extrusion(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksObj3dTypeEnum ExtrusionType/*[in]*/, 
                                 Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IExtrusionPtr __fastcall Add(ksObj3dTypeEnum ExtrusionType/*[in]*/);

};
typedef TCOMIExtrusionsT<IExtrusions> TCOMIExtrusions;

// *********************************************************************//
// DispIntf:  IExtrusions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A160C032-CF96-4467-A682-CE2243DF76BD}
// *********************************************************************//
template<class T>
class IExtrusionsDispT : public TAutoDriver<IExtrusions>
{
public:
  IExtrusionsDispT(){}

  IExtrusionsDispT(IExtrusions *pintf)
  {
    TAutoDriver<IExtrusions>::Bind(pintf, false);
  }

  IExtrusionsDispT(IExtrusionsPtr pintf)
  {
    TAutoDriver<IExtrusions>::Bind(pintf, true);
  }

  IExtrusionsDispT& operator=(IExtrusions *pintf)
  {
    TAutoDriver<IExtrusions>::Bind(pintf, false);
    return *this;
  }

  IExtrusionsDispT& operator=(IExtrusionsPtr pintf)
  {
    TAutoDriver<IExtrusions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Extrusions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Extrusions);
  }

  HRESULT         __fastcall get_Extrusion(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IExtrusionPtr __fastcall get_Extrusion(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksObj3dTypeEnum ExtrusionType/*[in]*/, 
                                 Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IExtrusionPtr __fastcall Add(ksObj3dTypeEnum ExtrusionType/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IExtrusionsDispT<IExtrusions> IExtrusionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIExtrusion
// Interface: IExtrusion
// *********************************************************************//
template <class T /* IExtrusion */ >
class TCOMIExtrusionT : public TComInterface<IExtrusion>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIExtrusionT() {}
  TCOMIExtrusionT(IExtrusion *intf, bool addRef = false) : TComInterface<IExtrusion>(intf, addRef) {}
  TCOMIExtrusionT(const TCOMIExtrusionT& src) : TComInterface<IExtrusion>(src) {}
  TCOMIExtrusionT& operator=(const TCOMIExtrusionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_Direction(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_Direction(void);
  HRESULT         __fastcall set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* PVal/*[out,retval]*/);
  ksEndTypeEnum __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DraftValue(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_DraftValue(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_DraftValue(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DraftOutward(TOLEBOOL Normal/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DraftOutward(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                               double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                               TOLEBOOL* DraftOutward/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                               TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                               double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                               TOLEBOOL* DraftOutward/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/);
  HRESULT         __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/, 
                                               double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                               TOLEBOOL DraftOutward/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                               TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/, 
                                               double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                               TOLEBOOL DraftOutward/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/);

  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};
};
typedef TCOMIExtrusionT<IExtrusion> TCOMIExtrusion;

// *********************************************************************//
// DispIntf:  IExtrusion
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0D7FFE70-33EB-442C-A9B6-A205EA85A237}
// *********************************************************************//
template<class T>
class IExtrusionDispT : public TAutoDriver<IExtrusion>
{
public:
  IExtrusionDispT(){}

  IExtrusionDispT(IExtrusion *pintf)
  {
    TAutoDriver<IExtrusion>::Bind(pintf, false);
  }

  IExtrusionDispT(IExtrusionPtr pintf)
  {
    TAutoDriver<IExtrusion>::Bind(pintf, true);
  }

  IExtrusionDispT& operator=(IExtrusion *pintf)
  {
    TAutoDriver<IExtrusion>::Bind(pintf, false);
    return *this;
  }

  IExtrusionDispT& operator=(IExtrusionPtr pintf)
  {
    TAutoDriver<IExtrusion>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Extrusion));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Extrusion);
  }

  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_Direction(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_Direction(void);
  HRESULT         __fastcall set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* PVal/*[out,retval]*/);
  ksEndTypeEnum __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DraftValue(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_DraftValue(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_DraftValue(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DraftOutward(TOLEBOOL Normal/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DraftOutward(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/
                                               , double* Depth/*[out]*/, double* DraftValue/*[out]*/
                                               , TOLEBOOL* DraftOutward/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/
                                               , TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                               double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                               TOLEBOOL* DraftOutward/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/);
  HRESULT         __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/
                                               , double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                               TOLEBOOL DraftOutward/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/
                                               , TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/, 
                                               double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                               TOLEBOOL DraftOutward/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IExtrusionDispT<IExtrusion> IExtrusionDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoints3D
// Interface: IPoints3D
// *********************************************************************//
template <class T /* IPoints3D */ >
class TCOMIPoints3DT : public TComInterface<IPoints3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoints3DT() {}
  TCOMIPoints3DT(IPoints3D *intf, bool addRef = false) : TComInterface<IPoints3D>(intf, addRef) {}
  TCOMIPoints3DT(const TCOMIPoints3DT& src) : TComInterface<IPoints3D>(src) {}
  TCOMIPoints3DT& operator=(const TCOMIPoints3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Point3D(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPoint3DPtr __fastcall get_Point3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPoint3DPtr __fastcall Add(void);

};
typedef TCOMIPoints3DT<IPoints3D> TCOMIPoints3D;

// *********************************************************************//
// DispIntf:  IPoints3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {81EBB128-3963-4759-9D4E-2829C3078B0F}
// *********************************************************************//
template<class T>
class IPoints3DDispT : public TAutoDriver<IPoints3D>
{
public:
  IPoints3DDispT(){}

  IPoints3DDispT(IPoints3D *pintf)
  {
    TAutoDriver<IPoints3D>::Bind(pintf, false);
  }

  IPoints3DDispT(IPoints3DPtr pintf)
  {
    TAutoDriver<IPoints3D>::Bind(pintf, true);
  }

  IPoints3DDispT& operator=(IPoints3D *pintf)
  {
    TAutoDriver<IPoints3D>::Bind(pintf, false);
    return *this;
  }

  IPoints3DDispT& operator=(IPoints3DPtr pintf)
  {
    TAutoDriver<IPoints3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Points3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Points3D);
  }

  HRESULT         __fastcall get_Point3D(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPoint3DPtr __fastcall get_Point3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPoint3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoints3DDispT<IPoints3D> IPoints3DDisp;

typedef TComInterface<IMassInertiaParam7>  TCOMIMassInertiaParam7;

// *********************************************************************//
// DispIntf:  IMassInertiaParam7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {666C987F-2700-4C35-B8CE-DB8BFB5AAF02}
// *********************************************************************//
template<class T>
class IMassInertiaParam7DispT : public TAutoDriver<IMassInertiaParam7>
{
public:
  IMassInertiaParam7DispT(){}

  IMassInertiaParam7DispT(IMassInertiaParam7 *pintf)
  {
    TAutoDriver<IMassInertiaParam7>::Bind(pintf, false);
  }

  IMassInertiaParam7DispT(IMassInertiaParam7Ptr pintf)
  {
    TAutoDriver<IMassInertiaParam7>::Bind(pintf, true);
  }

  IMassInertiaParam7DispT& operator=(IMassInertiaParam7 *pintf)
  {
    TAutoDriver<IMassInertiaParam7>::Bind(pintf, false);
    return *this;
  }

  IMassInertiaParam7DispT& operator=(IMassInertiaParam7Ptr pintf)
  {
    TAutoDriver<IMassInertiaParam7>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Zc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Zc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Zc(void);
  HRESULT         __fastcall set_ManualMassCentre(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ManualMassCentre(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ManualMassCentre(void);
  HRESULT         __fastcall set_LengthUnits(ksLengthUnitsEnum PVal/*[in]*/);
  HRESULT         __fastcall get_LengthUnits(ksLengthUnitsEnum* PVal/*[out,retval]*/);
  ksLengthUnitsEnum __fastcall get_LengthUnits(void);
  HRESULT         __fastcall set_MassUnits(ksMassUnitsEnum PVal/*[in]*/);
  HRESULT         __fastcall get_MassUnits(ksMassUnitsEnum* PVal/*[out,retval]*/);
  ksMassUnitsEnum __fastcall get_MassUnits(void);
  HRESULT         __fastcall set_ManualMass(double Param1/*[in]*/);
  HRESULT         __fastcall get_CalculateMass(double* PVal/*[out,retval]*/);
  double          __fastcall get_CalculateMass(void);
  HRESULT         __fastcall set_MassSettingMode(ksMassSettingModeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_MassSettingMode(ksMassSettingModeEnum* PVal/*[out,retval]*/);
  ksMassSettingModeEnum __fastcall get_MassSettingMode(void);
  HRESULT         __fastcall set_ManualDensity(double Param1/*[in]*/);
  HRESULT         __fastcall get_HandBookDensity(double* PVal/*[out,retval]*/);
  double          __fastcall get_HandBookDensity(void);
  HRESULT         __fastcall set_DensityMode(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DensityMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DensityMode(void);
  HRESULT         __fastcall get_Volume(double* PVal/*[out,retval]*/);
  double          __fastcall get_Volume(void);
  HRESULT         __fastcall get_Area(double* PVal/*[out,retval]*/);
  double          __fastcall get_Area(void);
  HRESULT         __fastcall set_SourceData(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_SourceData(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SourceData(void);
  HRESULT         __fastcall get_Actual(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Actual(void);
  HRESULT         __fastcall Calculate(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Calculate(void);
  HRESULT         __fastcall get_LX(double* PVal/*[out,retval]*/);
  double          __fastcall get_LX(void);
  HRESULT         __fastcall get_LY(double* PVal/*[out,retval]*/);
  double          __fastcall get_LY(void);
  HRESULT         __fastcall get_Lz(double* PVal/*[out,retval]*/);
  double          __fastcall get_Lz(void);
  HRESULT         __fastcall get_Lxy(double* PVal/*[out,retval]*/);
  double          __fastcall get_Lxy(void);
  HRESULT         __fastcall get_Lxz(double* PVal/*[out,retval]*/);
  double          __fastcall get_Lxz(void);
  HRESULT         __fastcall get_Lyz(double* PVal/*[out,retval]*/);
  double          __fastcall get_Lyz(void);
  HRESULT         __fastcall get_Jx(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jx(void);
  HRESULT         __fastcall get_Jy(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jy(void);
  HRESULT         __fastcall get_Jz(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jz(void);
  HRESULT         __fastcall get_Jxy(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jxy(void);
  HRESULT         __fastcall get_Jxz(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jxz(void);
  HRESULT         __fastcall get_Jyz(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jyz(void);
  HRESULT         __fastcall get_Jx0(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jx0(void);
  HRESULT         __fastcall get_Jy0(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jy0(void);
  HRESULT         __fastcall get_Jz0(double* PVal/*[out,retval]*/);
  double          __fastcall get_Jz0(void);
  HRESULT         __fastcall GetAxisX(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                      TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall GetAxisX(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall GetAxisY(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                      TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall GetAxisY(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall GetAxisZ(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                      TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall GetAxisZ(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall get_Mass(double* PVal/*[out,retval]*/);
  double          __fastcall get_Mass(void);
  HRESULT         __fastcall get_Density(double* PVal/*[out,retval]*/);
  double          __fastcall get_Density(void);
  HRESULT         __fastcall get_Material(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Material(void);
  HRESULT         __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Zc = {read = get_Zc, write = set_Zc};
  __property   TOLEBOOL        ManualMassCentre = {read = get_ManualMassCentre, write = set_ManualMassCentre};
  __property   ksLengthUnitsEnum LengthUnits = {read = get_LengthUnits, write = set_LengthUnits};
  __property   ksMassUnitsEnum MassUnits = {read = get_MassUnits, write = set_MassUnits};
  __property   double          ManualMass = {write = set_ManualMass};
  __property   double          CalculateMass = {read = get_CalculateMass};
  __property   ksMassSettingModeEnum MassSettingMode = {read = get_MassSettingMode, write = set_MassSettingMode};
  __property   double          ManualDensity = {write = set_ManualDensity};
  __property   double          HandBookDensity = {read = get_HandBookDensity};
  __property   TOLEBOOL        DensityMode = {read = get_DensityMode, write = set_DensityMode};
  __property   double          Volume = {read = get_Volume};
  __property   double          Area = {read = get_Area};
  __property   TOLEBOOL        SourceData = {read = get_SourceData, write = set_SourceData};
  __property   TOLEBOOL        Actual = {read = get_Actual};
  __property   double          LX = {read = get_LX};
  __property   double          LY = {read = get_LY};
  __property   double          Lz = {read = get_Lz};
  __property   double          Lxy = {read = get_Lxy};
  __property   double          Lxz = {read = get_Lxz};
  __property   double          Lyz = {read = get_Lyz};
  __property   double          Jx = {read = get_Jx};
  __property   double          Jy = {read = get_Jy};
  __property   double          Jz = {read = get_Jz};
  __property   double          Jxy = {read = get_Jxy};
  __property   double          Jxz = {read = get_Jxz};
  __property   double          Jyz = {read = get_Jyz};
  __property   double          Jx0 = {read = get_Jx0};
  __property   double          Jy0 = {read = get_Jy0};
  __property   double          Jz0 = {read = get_Jz0};
  __property   double          Mass = {read = get_Mass};
  __property   double          Density = {read = get_Density};
  __property   BSTR            Material = {read = get_Material};
};
typedef IMassInertiaParam7DispT<IMassInertiaParam7> IMassInertiaParam7Disp;

typedef TComInterface<IThinParameters>  TCOMIThinParameters;

// *********************************************************************//
// DispIntf:  IThinParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B90D597D-4213-4A59-98D4-0B67E719551B}
// *********************************************************************//
template<class T>
class IThinParametersDispT : public TAutoDriver<IThinParameters>
{
public:
  IThinParametersDispT(){}

  IThinParametersDispT(IThinParameters *pintf)
  {
    TAutoDriver<IThinParameters>::Bind(pintf, false);
  }

  IThinParametersDispT(IThinParametersPtr pintf)
  {
    TAutoDriver<IThinParameters>::Bind(pintf, true);
  }

  IThinParametersDispT& operator=(IThinParameters *pintf)
  {
    TAutoDriver<IThinParameters>::Bind(pintf, false);
    return *this;
  }

  IThinParametersDispT& operator=(IThinParametersPtr pintf)
  {
    TAutoDriver<IThinParameters>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_Thin(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Thin(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Thin(void);
  HRESULT         __fastcall set_ThinType(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ThinType(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_ThinType(void);
  HRESULT         __fastcall set_Thickness(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Thickness(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Thickness(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall GetThinParameters(TOLEBOOL* Thin/*[out]*/, 
                                               ksDirectionTypeEnum* ThinType/*[out]*/
                                               , double* ThicknessNormal/*[out]*/, 
                                               double* ThicknessReverse/*[out]*/, 
                                               TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetThinParameters(TOLEBOOL* Thin/*[out]*/, 
                                               ksDirectionTypeEnum* ThinType/*[out]*/, 
                                               double* ThicknessNormal/*[out]*/, 
                                               double* ThicknessReverse/*[out]*/);
  HRESULT         __fastcall SetThinParameters(TOLEBOOL Thin/*[in]*/, 
                                               ksDirectionTypeEnum ThinType/*[in]*/
                                               , double ThicknessNormal/*[in]*/, 
                                               double ThicknessReverse/*[in]*/, 
                                               TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetThinParameters(TOLEBOOL Thin/*[in]*/, 
                                               ksDirectionTypeEnum ThinType/*[in]*/, 
                                               double ThicknessNormal/*[in]*/, 
                                               double ThicknessReverse/*[in]*/);

  __property   TOLEBOOL        Thin = {read = get_Thin, write = set_Thin};
  __property   ksDirectionTypeEnum ThinType = {read = get_ThinType, write = set_ThinType};
};
typedef IThinParametersDispT<IThinParameters> IThinParametersDisp;

// *********************************************************************//
// SmartIntf: TCOMICutExtrusion
// Interface: ICutExtrusion
// *********************************************************************//
template <class T /* ICutExtrusion */ >
class TCOMICutExtrusionT : public TComInterface<ICutExtrusion>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICutExtrusionT() {}
  TCOMICutExtrusionT(ICutExtrusion *intf, bool addRef = false) : TComInterface<ICutExtrusion>(intf, addRef) {}
  TCOMICutExtrusionT(const TCOMICutExtrusionT& src) : TComInterface<ICutExtrusion>(src) {}
  TCOMICutExtrusionT& operator=(const TCOMICutExtrusionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Cut(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Cut(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Cut(void);

  __property   TOLEBOOL        Cut = {read = get_Cut, write = set_Cut};
};
typedef TCOMICutExtrusionT<ICutExtrusion> TCOMICutExtrusion;

// *********************************************************************//
// DispIntf:  ICutExtrusion
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D2A01420-9159-48C2-8302-C1B10A13D8F8}
// *********************************************************************//
template<class T>
class ICutExtrusionDispT : public TAutoDriver<ICutExtrusion>
{
public:
  ICutExtrusionDispT(){}

  ICutExtrusionDispT(ICutExtrusion *pintf)
  {
    TAutoDriver<ICutExtrusion>::Bind(pintf, false);
  }

  ICutExtrusionDispT(ICutExtrusionPtr pintf)
  {
    TAutoDriver<ICutExtrusion>::Bind(pintf, true);
  }

  ICutExtrusionDispT& operator=(ICutExtrusion *pintf)
  {
    TAutoDriver<ICutExtrusion>::Bind(pintf, false);
    return *this;
  }

  ICutExtrusionDispT& operator=(ICutExtrusionPtr pintf)
  {
    TAutoDriver<ICutExtrusion>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CutExtrusion));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CutExtrusion);
  }

  HRESULT         __fastcall set_Cut(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Cut(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Cut(void);
  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_Direction(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_Direction(void);
  HRESULT         __fastcall set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* PVal/*[out,retval]*/);
  ksEndTypeEnum __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DraftValue(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_DraftValue(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_DraftValue(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DraftOutward(TOLEBOOL Normal/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DraftOutward(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/
                                               , double* Depth/*[out]*/, double* DraftValue/*[out]*/
                                               , TOLEBOOL* DraftOutward/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/
                                               , TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                               double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                               TOLEBOOL* DraftOutward/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/);
  HRESULT         __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/
                                               , double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                               TOLEBOOL DraftOutward/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/
                                               , TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/, 
                                               double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                               TOLEBOOL DraftOutward/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Cut = {read = get_Cut, write = set_Cut};

  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICutExtrusionDispT<ICutExtrusion> ICutExtrusionDisp;

typedef TComInterface<IChooseBodies7>  TCOMIChooseBodies7;

// *********************************************************************//
// DispIntf:  IChooseBodies7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7BF80DAA-25F8-4AFF-AFEA-CAD390D4275D}
// *********************************************************************//
template<class T>
class IChooseBodies7DispT : public TAutoDriver<IChooseBodies7>
{
public:
  IChooseBodies7DispT(){}

  IChooseBodies7DispT(IChooseBodies7 *pintf)
  {
    TAutoDriver<IChooseBodies7>::Bind(pintf, false);
  }

  IChooseBodies7DispT(IChooseBodies7Ptr pintf)
  {
    TAutoDriver<IChooseBodies7>::Bind(pintf, true);
  }

  IChooseBodies7DispT& operator=(IChooseBodies7 *pintf)
  {
    TAutoDriver<IChooseBodies7>::Bind(pintf, false);
    return *this;
  }

  IChooseBodies7DispT& operator=(IChooseBodies7Ptr pintf)
  {
    TAutoDriver<IChooseBodies7>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_ChooseBodiesType(ksChooseBodiesType Type/*[in]*/);
  HRESULT         __fastcall get_ChooseBodiesType(ksChooseBodiesType* Type/*[out,retval]*/);
  ksChooseBodiesType __fastcall get_ChooseBodiesType(void);
  HRESULT         __fastcall set_Bodies(TVariantInParam Result/*[in]*/);
  HRESULT         __fastcall get_Bodies(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Bodies(void);

  __property   ksChooseBodiesType ChooseBodiesType = {read = get_ChooseBodiesType, write = set_ChooseBodiesType};
};
typedef IChooseBodies7DispT<IChooseBodies7> IChooseBodies7Disp;

// *********************************************************************//
// SmartIntf: TCOMIBody7
// Interface: IBody7
// *********************************************************************//
template <class T /* IBody7 */ >
class TCOMIBody7T : public TComInterface<IBody7>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBody7T() {}
  TCOMIBody7T(IBody7 *intf, bool addRef = false) : TComInterface<IBody7>(intf, addRef) {}
  TCOMIBody7T(const TCOMIBody7T& src) : TComInterface<IBody7>(src) {}
  TCOMIBody7T& operator=(const TCOMIBody7T& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, 
                                        double* Z1/*[out]*/, double* X2/*[out]*/, 
                                        double* Y2/*[out]*/, double* Z2/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, 
                                        double* Z1/*[out]*/, double* X2/*[out]*/, 
                                        double* Y2/*[out]*/, double* Z2/*[out]*/);
  HRESULT         __fastcall get_Marking(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Marking(void);
  HRESULT         __fastcall set_Marking(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);

  __property   BSTR            Marking = {read = get_Marking, write = set_Marking};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
};
typedef TCOMIBody7T<IBody7> TCOMIBody7;

// *********************************************************************//
// DispIntf:  IBody7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4F122E22-0AA6-46E1-841F-A2504B145995}
// *********************************************************************//
template<class T>
class IBody7DispT : public TAutoDriver<IBody7>
{
public:
  IBody7DispT(){}

  IBody7DispT(IBody7 *pintf)
  {
    TAutoDriver<IBody7>::Bind(pintf, false);
  }

  IBody7DispT(IBody7Ptr pintf)
  {
    TAutoDriver<IBody7>::Bind(pintf, true);
  }

  IBody7DispT& operator=(IBody7 *pintf)
  {
    TAutoDriver<IBody7>::Bind(pintf, false);
    return *this;
  }

  IBody7DispT& operator=(IBody7Ptr pintf)
  {
    TAutoDriver<IBody7>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Body7));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Body7);
  }

  HRESULT         __fastcall GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, 
                                        double* Z1/*[out]*/, double* X2/*[out]*/, 
                                        double* Y2/*[out]*/, double* Z2/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, 
                                        double* Z1/*[out]*/, double* X2/*[out]*/, 
                                        double* Y2/*[out]*/, double* Z2/*[out]*/);
  HRESULT         __fastcall get_Marking(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Marking(void);
  HRESULT         __fastcall set_Marking(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Marking = {read = get_Marking, write = set_Marking};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBody7DispT<IBody7> IBody7Disp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBodies
// Interface: ISheetMetalBodies
// *********************************************************************//
template <class T /* ISheetMetalBodies */ >
class TCOMISheetMetalBodiesT : public TComInterface<ISheetMetalBodies>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalBodiesT() {}
  TCOMISheetMetalBodiesT(ISheetMetalBodies *intf, bool addRef = false) : TComInterface<ISheetMetalBodies>(intf, addRef) {}
  TCOMISheetMetalBodiesT(const TCOMISheetMetalBodiesT& src) : TComInterface<ISheetMetalBodies>(src) {}
  TCOMISheetMetalBodiesT& operator=(const TCOMISheetMetalBodiesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SheetMetalBody(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall get_SheetMetalBody(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall Add(void);

};
typedef TCOMISheetMetalBodiesT<ISheetMetalBodies> TCOMISheetMetalBodies;

// *********************************************************************//
// DispIntf:  ISheetMetalBodies
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F56DBE72-48CC-48AD-9DA4-10D972C903EE}
// *********************************************************************//
template<class T>
class ISheetMetalBodiesDispT : public TAutoDriver<ISheetMetalBodies>
{
public:
  ISheetMetalBodiesDispT(){}

  ISheetMetalBodiesDispT(ISheetMetalBodies *pintf)
  {
    TAutoDriver<ISheetMetalBodies>::Bind(pintf, false);
  }

  ISheetMetalBodiesDispT(ISheetMetalBodiesPtr pintf)
  {
    TAutoDriver<ISheetMetalBodies>::Bind(pintf, true);
  }

  ISheetMetalBodiesDispT& operator=(ISheetMetalBodies *pintf)
  {
    TAutoDriver<ISheetMetalBodies>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalBodiesDispT& operator=(ISheetMetalBodiesPtr pintf)
  {
    TAutoDriver<ISheetMetalBodies>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalBodies));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalBodies);
  }

  HRESULT         __fastcall get_SheetMetalBody(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall get_SheetMetalBody(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalBodiesDispT<ISheetMetalBodies> ISheetMetalBodiesDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBody
// Interface: ISheetMetalBody
// *********************************************************************//
template <class T /* ISheetMetalBody */ >
class TCOMISheetMetalBodyT : public TComInterface<ISheetMetalBody>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalBodyT() {}
  TCOMISheetMetalBodyT(ISheetMetalBody *intf, bool addRef = false) : TComInterface<ISheetMetalBody>(intf, addRef) {}
  TCOMISheetMetalBodyT(const TCOMISheetMetalBodyT& src) : TComInterface<ISheetMetalBody>(src) {}
  TCOMISheetMetalBodyT& operator=(const TCOMISheetMetalBodyT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_ThicknessDirection(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ThicknessDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ThicknessDirection(void);
  HRESULT         __fastcall set_Thickness(double PVal/*[in]*/);
  HRESULT         __fastcall get_Thickness(double* PVal/*[out,retval]*/);
  double          __fastcall get_Thickness(void);
  HRESULT         __fastcall set_Straighten(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Straighten(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Straighten(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/);
  ksUnfoldTypeEnum __fastcall get_UnfoldType(void);
  HRESULT         __fastcall set_BendCoefficient(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendCoefficient(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendCoefficient(void);
  HRESULT         __fastcall set_BendValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendValue(void);
  HRESULT         __fastcall set_BendReduction(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendReduction(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendReduction(void);
  HRESULT         __fastcall set_BendTablePath(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_BendTablePath(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_BendTablePath(void);
  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_Direction(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_Direction(void);
  HRESULT         __fastcall set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* PVal/*[out,retval]*/);
  ksEndTypeEnum __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                               double* Depth/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                               TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                               double* Depth/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/);
  HRESULT         __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/, 
                                               double Depth/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                               TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/, 
                                               double Depth/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/);

  __property   TOLEBOOL        ThicknessDirection = {read = get_ThicknessDirection, write = set_ThicknessDirection};
  __property   double          Thickness = {read = get_Thickness, write = set_Thickness};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath, write = set_BendTablePath};
  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};
};
typedef TCOMISheetMetalBodyT<ISheetMetalBody> TCOMISheetMetalBody;

// *********************************************************************//
// DispIntf:  ISheetMetalBody
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2DC533DC-829E-4EFF-A905-541E9220A12D}
// *********************************************************************//
template<class T>
class ISheetMetalBodyDispT : public TAutoDriver<ISheetMetalBody>
{
public:
  ISheetMetalBodyDispT(){}

  ISheetMetalBodyDispT(ISheetMetalBody *pintf)
  {
    TAutoDriver<ISheetMetalBody>::Bind(pintf, false);
  }

  ISheetMetalBodyDispT(ISheetMetalBodyPtr pintf)
  {
    TAutoDriver<ISheetMetalBody>::Bind(pintf, true);
  }

  ISheetMetalBodyDispT& operator=(ISheetMetalBody *pintf)
  {
    TAutoDriver<ISheetMetalBody>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalBodyDispT& operator=(ISheetMetalBodyPtr pintf)
  {
    TAutoDriver<ISheetMetalBody>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalBody));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalBody);
  }

  HRESULT         __fastcall set_ThicknessDirection(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ThicknessDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ThicknessDirection(void);
  HRESULT         __fastcall set_Thickness(double PVal/*[in]*/);
  HRESULT         __fastcall get_Thickness(double* PVal/*[out,retval]*/);
  double          __fastcall get_Thickness(void);
  HRESULT         __fastcall set_Straighten(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Straighten(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Straighten(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/);
  ksUnfoldTypeEnum __fastcall get_UnfoldType(void);
  HRESULT         __fastcall set_BendCoefficient(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendCoefficient(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendCoefficient(void);
  HRESULT         __fastcall set_BendValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendValue(void);
  HRESULT         __fastcall set_BendReduction(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendReduction(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendReduction(void);
  HRESULT         __fastcall set_BendTablePath(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_BendTablePath(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_BendTablePath(void);
  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_Direction(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_Direction(void);
  HRESULT         __fastcall set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* PVal/*[out,retval]*/);
  ksEndTypeEnum __fastcall get_ExtrusionType(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(TOLEBOOL Normal/*[in]*/);
  HRESULT         __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/
                                               , double* Depth/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/
                                               , TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                               double* Depth/*[out]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/);
  HRESULT         __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/
                                               , double Depth/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/
                                               , TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                               ksEndTypeEnum ExtrusionType/*[in]*/, 
                                               double Depth/*[in]*/, 
                                               Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        ThicknessDirection = {read = get_ThicknessDirection, write = set_ThicknessDirection};
  __property   double          Thickness = {read = get_Thickness, write = set_Thickness};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath, write = set_BendTablePath};
  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalBodyDispT<ISheetMetalBody> ISheetMetalBodyDisp;

typedef TComInterface<ISheetMetalContainer>  TCOMISheetMetalContainer;

// *********************************************************************//
// DispIntf:  ISheetMetalContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {77A4895D-9B09-4C63-A3FF-6857F4340840}
// *********************************************************************//
template<class T>
class ISheetMetalContainerDispT : public TAutoDriver<ISheetMetalContainer>
{
public:
  ISheetMetalContainerDispT(){}

  ISheetMetalContainerDispT(ISheetMetalContainer *pintf)
  {
    TAutoDriver<ISheetMetalContainer>::Bind(pintf, false);
  }

  ISheetMetalContainerDispT(ISheetMetalContainerPtr pintf)
  {
    TAutoDriver<ISheetMetalContainer>::Bind(pintf, true);
  }

  ISheetMetalContainerDispT& operator=(ISheetMetalContainer *pintf)
  {
    TAutoDriver<ISheetMetalContainer>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalContainerDispT& operator=(ISheetMetalContainerPtr pintf)
  {
    TAutoDriver<ISheetMetalContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_SheetMetalBodies(Kompasltapi7_tlb::ISheetMetalBodiesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBodiesPtr __fastcall get_SheetMetalBodies(void);
  HRESULT         __fastcall get_SheetMetalBends(Kompasltapi7_tlb::ISheetMetalBendsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBendsPtr __fastcall get_SheetMetalBends(void);
  HRESULT         __fastcall get_SheetMetalLineBends(Kompasltapi7_tlb::ISheetMetalLineBendsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalLineBendsPtr __fastcall get_SheetMetalLineBends(void);
  HRESULT         __fastcall get_SheetMetalHoles(Kompasltapi7_tlb::ISheetMetalHolesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalHolesPtr __fastcall get_SheetMetalHoles(void);
  HRESULT         __fastcall get_SheetMetalCuts(Kompasltapi7_tlb::ISheetMetalCutsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalCutsPtr __fastcall get_SheetMetalCuts(void);

  __property   Kompasltapi7_tlb::ISheetMetalBodiesPtr SheetMetalBodies = {read = get_SheetMetalBodies};
  __property   Kompasltapi7_tlb::ISheetMetalBendsPtr SheetMetalBends = {read = get_SheetMetalBends};
  __property   Kompasltapi7_tlb::ISheetMetalLineBendsPtr SheetMetalLineBends = {read = get_SheetMetalLineBends};
  __property   Kompasltapi7_tlb::ISheetMetalHolesPtr SheetMetalHoles = {read = get_SheetMetalHoles};
  __property   Kompasltapi7_tlb::ISheetMetalCutsPtr SheetMetalCuts = {read = get_SheetMetalCuts};
};
typedef ISheetMetalContainerDispT<ISheetMetalContainer> ISheetMetalContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBends
// Interface: ISheetMetalBends
// *********************************************************************//
template <class T /* ISheetMetalBends */ >
class TCOMISheetMetalBendsT : public TComInterface<ISheetMetalBends>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalBendsT() {}
  TCOMISheetMetalBendsT(ISheetMetalBends *intf, bool addRef = false) : TComInterface<ISheetMetalBends>(intf, addRef) {}
  TCOMISheetMetalBendsT(const TCOMISheetMetalBendsT& src) : TComInterface<ISheetMetalBends>(src) {}
  TCOMISheetMetalBendsT& operator=(const TCOMISheetMetalBendsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SheetMetalBend(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall get_SheetMetalBend(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall Add(void);

};
typedef TCOMISheetMetalBendsT<ISheetMetalBends> TCOMISheetMetalBends;

// *********************************************************************//
// DispIntf:  ISheetMetalBends
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6826CFD6-6A48-4EB1-8C89-7DB4E36702B4}
// *********************************************************************//
template<class T>
class ISheetMetalBendsDispT : public TAutoDriver<ISheetMetalBends>
{
public:
  ISheetMetalBendsDispT(){}

  ISheetMetalBendsDispT(ISheetMetalBends *pintf)
  {
    TAutoDriver<ISheetMetalBends>::Bind(pintf, false);
  }

  ISheetMetalBendsDispT(ISheetMetalBendsPtr pintf)
  {
    TAutoDriver<ISheetMetalBends>::Bind(pintf, true);
  }

  ISheetMetalBendsDispT& operator=(ISheetMetalBends *pintf)
  {
    TAutoDriver<ISheetMetalBends>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalBendsDispT& operator=(ISheetMetalBendsPtr pintf)
  {
    TAutoDriver<ISheetMetalBends>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalBends));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalBends);
  }

  HRESULT         __fastcall get_SheetMetalBend(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall get_SheetMetalBend(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalBendsDispT<ISheetMetalBends> ISheetMetalBendsDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBend
// Interface: ISheetMetalBend
// *********************************************************************//
template <class T /* ISheetMetalBend */ >
class TCOMISheetMetalBendT : public TComInterface<ISheetMetalBend>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalBendT() {}
  TCOMISheetMetalBendT(ISheetMetalBend *intf, bool addRef = false) : TComInterface<ISheetMetalBend>(intf, addRef) {}
  TCOMISheetMetalBendT(const TCOMISheetMetalBendT& src) : TComInterface<ISheetMetalBend>(src) {}
  TCOMISheetMetalBendT& operator=(const TCOMISheetMetalBendT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Disposal(ksBendDisposalEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Disposal(ksBendDisposalEnum* PVal/*[out,retval]*/);
  ksBendDisposalEnum __fastcall get_Disposal(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_LengthType(ksBendLengthTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_LengthType(ksBendLengthTypeEnum* PVal/*[out,retval]*/);
  ksBendLengthTypeEnum __fastcall get_LengthType(void);
  HRESULT         __fastcall set_InternalLength(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InternalLength(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InternalLength(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_AngleType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AngleType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AngleType(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_OffsetType(ksBendOffsetTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_OffsetType(ksBendOffsetTypeEnum* PVal/*[out,retval]*/);
  ksBendOffsetTypeEnum __fastcall get_OffsetType(void);
  HRESULT         __fastcall set_Offset(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset(void);
  HRESULT         __fastcall set_Straighten(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Straighten(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Straighten(void);
  HRESULT         __fastcall set_LeftSideType(ksBendSideTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_LeftSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/);
  ksBendSideTypeEnum __fastcall get_LeftSideType(void);
  HRESULT         __fastcall set_DistanceLeftSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DistanceLeftSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DistanceLeftSide(void);
  HRESULT         __fastcall set_LeftSideAngle(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftSideAngle(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftSideAngle(void);
  HRESULT         __fastcall set_DeviationLeftSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DeviationLeftSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DeviationLeftSide(void);
  HRESULT         __fastcall set_WideningLeftSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_WideningLeftSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_WideningLeftSide(void);
  HRESULT         __fastcall set_RightSideType(ksBendSideTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_RightSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/);
  ksBendSideTypeEnum __fastcall get_RightSideType(void);
  HRESULT         __fastcall set_DistanceRightSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DistanceRightSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DistanceRightSide(void);
  HRESULT         __fastcall set_RightSideAngle(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightSideAngle(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightSideAngle(void);
  HRESULT         __fastcall set_DeviationRightSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DeviationRightSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DeviationRightSide(void);
  HRESULT         __fastcall set_WideningRightSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_WideningRightSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_WideningRightSide(void);
  HRESULT         __fastcall set_WithoutAngleRelease(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_WithoutAngleRelease(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithoutAngleRelease(void);
  HRESULT         __fastcall set_WithoutBendRelease(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_WithoutBendRelease(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithoutBendRelease(void);
  HRESULT         __fastcall set_DismissalWithWidth(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalWithWidth(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DismissalWithWidth(void);
  HRESULT         __fastcall set_BendRelease(ksBendReleaseTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_BendRelease(ksBendReleaseTypeEnum* PVal/*[out,retval]*/);
  ksBendReleaseTypeEnum __fastcall get_BendRelease(void);
  HRESULT         __fastcall set_DismissalWidth(double PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_DismissalWidth(void);
  HRESULT         __fastcall set_DismissalDepth(double PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalDepth(double* PVal/*[out,retval]*/);
  double          __fastcall get_DismissalDepth(void);
  HRESULT         __fastcall set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/);
  ksBendAngleReleaseTypeEnum __fastcall get_DismissalAngleType(void);
  HRESULT         __fastcall set_BendObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_BendObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BendObject(void);
  HRESULT         __fastcall set_InternalRadius(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InternalRadius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/);
  ksUnfoldTypeEnum __fastcall get_UnfoldType(void);
  HRESULT         __fastcall set_BendCoefficient(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendCoefficient(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendCoefficient(void);
  HRESULT         __fastcall set_BendValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendValue(void);
  HRESULT         __fastcall set_BendReduction(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendReduction(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendReduction(void);
  HRESULT         __fastcall get_BendTablePath(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_BendTablePath(void);

  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   ksBendDisposalEnum Disposal = {read = get_Disposal, write = set_Disposal};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksBendLengthTypeEnum LengthType = {read = get_LengthType, write = set_LengthType};
  __property   TOLEBOOL        InternalLength = {read = get_InternalLength, write = set_InternalLength};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   TOLEBOOL        AngleType = {read = get_AngleType, write = set_AngleType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksBendOffsetTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset = {read = get_Offset, write = set_Offset};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   ksBendSideTypeEnum LeftSideType = {read = get_LeftSideType, write = set_LeftSideType};
  __property   double          DistanceLeftSide = {read = get_DistanceLeftSide, write = set_DistanceLeftSide};
  __property   double          LeftSideAngle = {read = get_LeftSideAngle, write = set_LeftSideAngle};
  __property   double          DeviationLeftSide = {read = get_DeviationLeftSide, write = set_DeviationLeftSide};
  __property   double          WideningLeftSide = {read = get_WideningLeftSide, write = set_WideningLeftSide};
  __property   ksBendSideTypeEnum RightSideType = {read = get_RightSideType, write = set_RightSideType};
  __property   double          DistanceRightSide = {read = get_DistanceRightSide, write = set_DistanceRightSide};
  __property   double          RightSideAngle = {read = get_RightSideAngle, write = set_RightSideAngle};
  __property   double          DeviationRightSide = {read = get_DeviationRightSide, write = set_DeviationRightSide};
  __property   double          WideningRightSide = {read = get_WideningRightSide, write = set_WideningRightSide};
  __property   TOLEBOOL        WithoutAngleRelease = {read = get_WithoutAngleRelease, write = set_WithoutAngleRelease};
  __property   TOLEBOOL        WithoutBendRelease = {read = get_WithoutBendRelease, write = set_WithoutBendRelease};
  __property   TOLEBOOL        DismissalWithWidth = {read = get_DismissalWithWidth, write = set_DismissalWithWidth};
  __property   ksBendReleaseTypeEnum BendRelease = {read = get_BendRelease, write = set_BendRelease};
  __property   double          DismissalWidth = {read = get_DismissalWidth, write = set_DismissalWidth};
  __property   double          DismissalDepth = {read = get_DismissalDepth, write = set_DismissalDepth};
  __property   ksBendAngleReleaseTypeEnum DismissalAngleType = {read = get_DismissalAngleType, write = set_DismissalAngleType};
  __property   Kompasltapi7_tlb::IModelObjectPtr BendObject = {read = get_BendObject, write = set_BendObject};
  __property   TOLEBOOL        InternalRadius = {read = get_InternalRadius, write = set_InternalRadius};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath};
};
typedef TCOMISheetMetalBendT<ISheetMetalBend> TCOMISheetMetalBend;

// *********************************************************************//
// DispIntf:  ISheetMetalBend
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B631D95F-C487-41D6-9726-C65E9F5A4505}
// *********************************************************************//
template<class T>
class ISheetMetalBendDispT : public TAutoDriver<ISheetMetalBend>
{
public:
  ISheetMetalBendDispT(){}

  ISheetMetalBendDispT(ISheetMetalBend *pintf)
  {
    TAutoDriver<ISheetMetalBend>::Bind(pintf, false);
  }

  ISheetMetalBendDispT(ISheetMetalBendPtr pintf)
  {
    TAutoDriver<ISheetMetalBend>::Bind(pintf, true);
  }

  ISheetMetalBendDispT& operator=(ISheetMetalBend *pintf)
  {
    TAutoDriver<ISheetMetalBend>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalBendDispT& operator=(ISheetMetalBendPtr pintf)
  {
    TAutoDriver<ISheetMetalBend>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalBend));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalBend);
  }

  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Disposal(ksBendDisposalEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Disposal(ksBendDisposalEnum* PVal/*[out,retval]*/);
  ksBendDisposalEnum __fastcall get_Disposal(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_LengthType(ksBendLengthTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_LengthType(ksBendLengthTypeEnum* PVal/*[out,retval]*/);
  ksBendLengthTypeEnum __fastcall get_LengthType(void);
  HRESULT         __fastcall set_InternalLength(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InternalLength(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InternalLength(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_AngleType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AngleType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AngleType(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_OffsetType(ksBendOffsetTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_OffsetType(ksBendOffsetTypeEnum* PVal/*[out,retval]*/);
  ksBendOffsetTypeEnum __fastcall get_OffsetType(void);
  HRESULT         __fastcall set_Offset(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset(void);
  HRESULT         __fastcall set_Straighten(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Straighten(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Straighten(void);
  HRESULT         __fastcall set_LeftSideType(ksBendSideTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_LeftSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/);
  ksBendSideTypeEnum __fastcall get_LeftSideType(void);
  HRESULT         __fastcall set_DistanceLeftSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DistanceLeftSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DistanceLeftSide(void);
  HRESULT         __fastcall set_LeftSideAngle(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftSideAngle(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftSideAngle(void);
  HRESULT         __fastcall set_DeviationLeftSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DeviationLeftSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DeviationLeftSide(void);
  HRESULT         __fastcall set_WideningLeftSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_WideningLeftSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_WideningLeftSide(void);
  HRESULT         __fastcall set_RightSideType(ksBendSideTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_RightSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/);
  ksBendSideTypeEnum __fastcall get_RightSideType(void);
  HRESULT         __fastcall set_DistanceRightSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DistanceRightSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DistanceRightSide(void);
  HRESULT         __fastcall set_RightSideAngle(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightSideAngle(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightSideAngle(void);
  HRESULT         __fastcall set_DeviationRightSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_DeviationRightSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_DeviationRightSide(void);
  HRESULT         __fastcall set_WideningRightSide(double PVal/*[in]*/);
  HRESULT         __fastcall get_WideningRightSide(double* PVal/*[out,retval]*/);
  double          __fastcall get_WideningRightSide(void);
  HRESULT         __fastcall set_WithoutAngleRelease(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_WithoutAngleRelease(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithoutAngleRelease(void);
  HRESULT         __fastcall set_WithoutBendRelease(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_WithoutBendRelease(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WithoutBendRelease(void);
  HRESULT         __fastcall set_DismissalWithWidth(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalWithWidth(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DismissalWithWidth(void);
  HRESULT         __fastcall set_BendRelease(ksBendReleaseTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_BendRelease(ksBendReleaseTypeEnum* PVal/*[out,retval]*/);
  ksBendReleaseTypeEnum __fastcall get_BendRelease(void);
  HRESULT         __fastcall set_DismissalWidth(double PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_DismissalWidth(void);
  HRESULT         __fastcall set_DismissalDepth(double PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalDepth(double* PVal/*[out,retval]*/);
  double          __fastcall get_DismissalDepth(void);
  HRESULT         __fastcall set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/);
  ksBendAngleReleaseTypeEnum __fastcall get_DismissalAngleType(void);
  HRESULT         __fastcall set_BendObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_BendObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BendObject(void);
  HRESULT         __fastcall set_InternalRadius(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InternalRadius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/);
  ksUnfoldTypeEnum __fastcall get_UnfoldType(void);
  HRESULT         __fastcall set_BendCoefficient(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendCoefficient(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendCoefficient(void);
  HRESULT         __fastcall set_BendValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendValue(void);
  HRESULT         __fastcall set_BendReduction(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendReduction(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendReduction(void);
  HRESULT         __fastcall get_BendTablePath(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_BendTablePath(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   ksBendDisposalEnum Disposal = {read = get_Disposal, write = set_Disposal};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksBendLengthTypeEnum LengthType = {read = get_LengthType, write = set_LengthType};
  __property   TOLEBOOL        InternalLength = {read = get_InternalLength, write = set_InternalLength};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   TOLEBOOL        AngleType = {read = get_AngleType, write = set_AngleType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksBendOffsetTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset = {read = get_Offset, write = set_Offset};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   ksBendSideTypeEnum LeftSideType = {read = get_LeftSideType, write = set_LeftSideType};
  __property   double          DistanceLeftSide = {read = get_DistanceLeftSide, write = set_DistanceLeftSide};
  __property   double          LeftSideAngle = {read = get_LeftSideAngle, write = set_LeftSideAngle};
  __property   double          DeviationLeftSide = {read = get_DeviationLeftSide, write = set_DeviationLeftSide};
  __property   double          WideningLeftSide = {read = get_WideningLeftSide, write = set_WideningLeftSide};
  __property   ksBendSideTypeEnum RightSideType = {read = get_RightSideType, write = set_RightSideType};
  __property   double          DistanceRightSide = {read = get_DistanceRightSide, write = set_DistanceRightSide};
  __property   double          RightSideAngle = {read = get_RightSideAngle, write = set_RightSideAngle};
  __property   double          DeviationRightSide = {read = get_DeviationRightSide, write = set_DeviationRightSide};
  __property   double          WideningRightSide = {read = get_WideningRightSide, write = set_WideningRightSide};
  __property   TOLEBOOL        WithoutAngleRelease = {read = get_WithoutAngleRelease, write = set_WithoutAngleRelease};
  __property   TOLEBOOL        WithoutBendRelease = {read = get_WithoutBendRelease, write = set_WithoutBendRelease};
  __property   TOLEBOOL        DismissalWithWidth = {read = get_DismissalWithWidth, write = set_DismissalWithWidth};
  __property   ksBendReleaseTypeEnum BendRelease = {read = get_BendRelease, write = set_BendRelease};
  __property   double          DismissalWidth = {read = get_DismissalWidth, write = set_DismissalWidth};
  __property   double          DismissalDepth = {read = get_DismissalDepth, write = set_DismissalDepth};
  __property   ksBendAngleReleaseTypeEnum DismissalAngleType = {read = get_DismissalAngleType, write = set_DismissalAngleType};
  __property   Kompasltapi7_tlb::IModelObjectPtr BendObject = {read = get_BendObject, write = set_BendObject};
  __property   TOLEBOOL        InternalRadius = {read = get_InternalRadius, write = set_InternalRadius};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalBendDispT<ISheetMetalBend> ISheetMetalBendDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalLineBends
// Interface: ISheetMetalLineBends
// *********************************************************************//
template <class T /* ISheetMetalLineBends */ >
class TCOMISheetMetalLineBendsT : public TComInterface<ISheetMetalLineBends>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalLineBendsT() {}
  TCOMISheetMetalLineBendsT(ISheetMetalLineBends *intf, bool addRef = false) : TComInterface<ISheetMetalLineBends>(intf, addRef) {}
  TCOMISheetMetalLineBendsT(const TCOMISheetMetalLineBendsT& src) : TComInterface<ISheetMetalLineBends>(src) {}
  TCOMISheetMetalLineBendsT& operator=(const TCOMISheetMetalLineBendsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SheetMetalLineBend(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall get_SheetMetalLineBend(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall Add(void);

};
typedef TCOMISheetMetalLineBendsT<ISheetMetalLineBends> TCOMISheetMetalLineBends;

// *********************************************************************//
// DispIntf:  ISheetMetalLineBends
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AF8B8310-AF82-4B02-8733-783FFAFD4DBD}
// *********************************************************************//
template<class T>
class ISheetMetalLineBendsDispT : public TAutoDriver<ISheetMetalLineBends>
{
public:
  ISheetMetalLineBendsDispT(){}

  ISheetMetalLineBendsDispT(ISheetMetalLineBends *pintf)
  {
    TAutoDriver<ISheetMetalLineBends>::Bind(pintf, false);
  }

  ISheetMetalLineBendsDispT(ISheetMetalLineBendsPtr pintf)
  {
    TAutoDriver<ISheetMetalLineBends>::Bind(pintf, true);
  }

  ISheetMetalLineBendsDispT& operator=(ISheetMetalLineBends *pintf)
  {
    TAutoDriver<ISheetMetalLineBends>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalLineBendsDispT& operator=(ISheetMetalLineBendsPtr pintf)
  {
    TAutoDriver<ISheetMetalLineBends>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalLineBends));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalLineBends);
  }

  HRESULT         __fastcall get_SheetMetalLineBend(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall get_SheetMetalLineBend(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalLineBendsDispT<ISheetMetalLineBends> ISheetMetalLineBendsDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalLineBend
// Interface: ISheetMetalLineBend
// *********************************************************************//
template <class T /* ISheetMetalLineBend */ >
class TCOMISheetMetalLineBendT : public TComInterface<ISheetMetalLineBend>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalLineBendT() {}
  TCOMISheetMetalLineBendT(ISheetMetalLineBend *intf, bool addRef = false) : TComInterface<ISheetMetalLineBend>(intf, addRef) {}
  TCOMISheetMetalLineBendT(const TCOMISheetMetalLineBendT& src) : TComInterface<ISheetMetalLineBend>(src) {}
  TCOMISheetMetalLineBendT& operator=(const TCOMISheetMetalLineBendT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_BendLeftSideFixed(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BendLeftSideFixed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BendLeftSideFixed(void);
  HRESULT         __fastcall set_AngleType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AngleType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AngleType(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_BendType(ksBendTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_BendType(ksBendTypeEnum* PVal/*[out,retval]*/);
  ksBendTypeEnum __fastcall get_BendType(void);
  HRESULT         __fastcall set_Straighten(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Straighten(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Straighten(void);
  HRESULT         __fastcall set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/);
  ksBendAngleReleaseTypeEnum __fastcall get_DismissalAngleType(void);
  HRESULT         __fastcall set_InternalRadius(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InternalRadius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/);
  ksUnfoldTypeEnum __fastcall get_UnfoldType(void);
  HRESULT         __fastcall set_BendCoefficient(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendCoefficient(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendCoefficient(void);
  HRESULT         __fastcall set_BendValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendValue(void);
  HRESULT         __fastcall set_BendReduction(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendReduction(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendReduction(void);
  HRESULT         __fastcall get_BendTablePath(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_BendTablePath(void);
  HRESULT         __fastcall set_Faces(TVariantInParam Result/*[in]*/);
  HRESULT         __fastcall get_Faces(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Faces(void);
  HRESULT         __fastcall set_Line(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_Line(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Line(void);

  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   TOLEBOOL        BendLeftSideFixed = {read = get_BendLeftSideFixed, write = set_BendLeftSideFixed};
  __property   TOLEBOOL        AngleType = {read = get_AngleType, write = set_AngleType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksBendTypeEnum BendType = {read = get_BendType, write = set_BendType};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   ksBendAngleReleaseTypeEnum DismissalAngleType = {read = get_DismissalAngleType, write = set_DismissalAngleType};
  __property   TOLEBOOL        InternalRadius = {read = get_InternalRadius, write = set_InternalRadius};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath};
  __property   Kompasltapi7_tlb::IModelObjectPtr Line = {read = get_Line, write = set_Line};
};
typedef TCOMISheetMetalLineBendT<ISheetMetalLineBend> TCOMISheetMetalLineBend;

// *********************************************************************//
// DispIntf:  ISheetMetalLineBend
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E13EF07A-B1E8-41FD-9C85-C17F01E52A03}
// *********************************************************************//
template<class T>
class ISheetMetalLineBendDispT : public TAutoDriver<ISheetMetalLineBend>
{
public:
  ISheetMetalLineBendDispT(){}

  ISheetMetalLineBendDispT(ISheetMetalLineBend *pintf)
  {
    TAutoDriver<ISheetMetalLineBend>::Bind(pintf, false);
  }

  ISheetMetalLineBendDispT(ISheetMetalLineBendPtr pintf)
  {
    TAutoDriver<ISheetMetalLineBend>::Bind(pintf, true);
  }

  ISheetMetalLineBendDispT& operator=(ISheetMetalLineBend *pintf)
  {
    TAutoDriver<ISheetMetalLineBend>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalLineBendDispT& operator=(ISheetMetalLineBendPtr pintf)
  {
    TAutoDriver<ISheetMetalLineBend>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalLineBend));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalLineBend);
  }

  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_BendLeftSideFixed(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BendLeftSideFixed(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BendLeftSideFixed(void);
  HRESULT         __fastcall set_AngleType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AngleType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AngleType(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_BendType(ksBendTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_BendType(ksBendTypeEnum* PVal/*[out,retval]*/);
  ksBendTypeEnum __fastcall get_BendType(void);
  HRESULT         __fastcall set_Straighten(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Straighten(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Straighten(void);
  HRESULT         __fastcall set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/);
  ksBendAngleReleaseTypeEnum __fastcall get_DismissalAngleType(void);
  HRESULT         __fastcall set_InternalRadius(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InternalRadius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/);
  ksUnfoldTypeEnum __fastcall get_UnfoldType(void);
  HRESULT         __fastcall set_BendCoefficient(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendCoefficient(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendCoefficient(void);
  HRESULT         __fastcall set_BendValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendValue(void);
  HRESULT         __fastcall set_BendReduction(double PVal/*[in]*/);
  HRESULT         __fastcall get_BendReduction(double* PVal/*[out,retval]*/);
  double          __fastcall get_BendReduction(void);
  HRESULT         __fastcall get_BendTablePath(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_BendTablePath(void);
  HRESULT         __fastcall set_Faces(TVariantInParam Result/*[in]*/);
  HRESULT         __fastcall get_Faces(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Faces(void);
  HRESULT         __fastcall set_Line(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_Line(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Line(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   TOLEBOOL        BendLeftSideFixed = {read = get_BendLeftSideFixed, write = set_BendLeftSideFixed};
  __property   TOLEBOOL        AngleType = {read = get_AngleType, write = set_AngleType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksBendTypeEnum BendType = {read = get_BendType, write = set_BendType};
  __property   TOLEBOOL        Straighten = {read = get_Straighten, write = set_Straighten};
  __property   ksBendAngleReleaseTypeEnum DismissalAngleType = {read = get_DismissalAngleType, write = set_DismissalAngleType};
  __property   TOLEBOOL        InternalRadius = {read = get_InternalRadius, write = set_InternalRadius};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksUnfoldTypeEnum UnfoldType = {read = get_UnfoldType, write = set_UnfoldType};
  __property   double          BendCoefficient = {read = get_BendCoefficient, write = set_BendCoefficient};
  __property   double          BendValue = {read = get_BendValue, write = set_BendValue};
  __property   double          BendReduction = {read = get_BendReduction, write = set_BendReduction};
  __property   BSTR            BendTablePath = {read = get_BendTablePath};
  __property   Kompasltapi7_tlb::IModelObjectPtr Line = {read = get_Line, write = set_Line};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalLineBendDispT<ISheetMetalLineBend> ISheetMetalLineBendDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalHoles
// Interface: ISheetMetalHoles
// *********************************************************************//
template <class T /* ISheetMetalHoles */ >
class TCOMISheetMetalHolesT : public TComInterface<ISheetMetalHoles>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalHolesT() {}
  TCOMISheetMetalHolesT(ISheetMetalHoles *intf, bool addRef = false) : TComInterface<ISheetMetalHoles>(intf, addRef) {}
  TCOMISheetMetalHolesT(const TCOMISheetMetalHolesT& src) : TComInterface<ISheetMetalHoles>(src) {}
  TCOMISheetMetalHolesT& operator=(const TCOMISheetMetalHolesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SheetMetalHole(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall get_SheetMetalHole(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall Add(void);

};
typedef TCOMISheetMetalHolesT<ISheetMetalHoles> TCOMISheetMetalHoles;

// *********************************************************************//
// DispIntf:  ISheetMetalHoles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E117BDF9-5133-4672-9B8F-06046F6B9BF3}
// *********************************************************************//
template<class T>
class ISheetMetalHolesDispT : public TAutoDriver<ISheetMetalHoles>
{
public:
  ISheetMetalHolesDispT(){}

  ISheetMetalHolesDispT(ISheetMetalHoles *pintf)
  {
    TAutoDriver<ISheetMetalHoles>::Bind(pintf, false);
  }

  ISheetMetalHolesDispT(ISheetMetalHolesPtr pintf)
  {
    TAutoDriver<ISheetMetalHoles>::Bind(pintf, true);
  }

  ISheetMetalHolesDispT& operator=(ISheetMetalHoles *pintf)
  {
    TAutoDriver<ISheetMetalHoles>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalHolesDispT& operator=(ISheetMetalHolesPtr pintf)
  {
    TAutoDriver<ISheetMetalHoles>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalHoles));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalHoles);
  }

  HRESULT         __fastcall get_SheetMetalHole(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall get_SheetMetalHole(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalHolesDispT<ISheetMetalHoles> ISheetMetalHolesDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalHole
// Interface: ISheetMetalHole
// *********************************************************************//
template <class T /* ISheetMetalHole */ >
class TCOMISheetMetalHoleT : public TComInterface<ISheetMetalHole>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalHoleT() {}
  TCOMISheetMetalHoleT(ISheetMetalHole *intf, bool addRef = false) : TComInterface<ISheetMetalHole>(intf, addRef) {}
  TCOMISheetMetalHoleT(const TCOMISheetMetalHoleT& src) : TComInterface<ISheetMetalHole>(src) {}
  TCOMISheetMetalHoleT& operator=(const TCOMISheetMetalHoleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_CutType(ksHoleCutTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/);
  ksHoleCutTypeEnum __fastcall get_CutType(void);
  HRESULT         __fastcall set_Diameter(double PVal/*[in]*/);
  HRESULT         __fastcall get_Diameter(double* PVal/*[out,retval]*/);
  double          __fastcall get_Diameter(void);
  HRESULT         __fastcall set_Depth(double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(void);
  HRESULT         __fastcall set_BasePlane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_BasePlane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(void);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Body(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   ksHoleCutTypeEnum CutType = {read = get_CutType, write = set_CutType};
  __property   double          Diameter = {read = get_Diameter, write = set_Diameter};
  __property   double          Depth = {read = get_Depth, write = set_Depth};
  __property   Kompasltapi7_tlb::IModelObjectPtr BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr DepthObject = {read = get_DepthObject, write = set_DepthObject};
  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Body = {read = get_Body, write = set_Body};
};
typedef TCOMISheetMetalHoleT<ISheetMetalHole> TCOMISheetMetalHole;

// *********************************************************************//
// DispIntf:  ISheetMetalHole
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3490B8B8-00D7-4BCF-AAD8-9487BF271084}
// *********************************************************************//
template<class T>
class ISheetMetalHoleDispT : public TAutoDriver<ISheetMetalHole>
{
public:
  ISheetMetalHoleDispT(){}

  ISheetMetalHoleDispT(ISheetMetalHole *pintf)
  {
    TAutoDriver<ISheetMetalHole>::Bind(pintf, false);
  }

  ISheetMetalHoleDispT(ISheetMetalHolePtr pintf)
  {
    TAutoDriver<ISheetMetalHole>::Bind(pintf, true);
  }

  ISheetMetalHoleDispT& operator=(ISheetMetalHole *pintf)
  {
    TAutoDriver<ISheetMetalHole>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalHoleDispT& operator=(ISheetMetalHolePtr pintf)
  {
    TAutoDriver<ISheetMetalHole>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalHole));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalHole);
  }

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_CutType(ksHoleCutTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/);
  ksHoleCutTypeEnum __fastcall get_CutType(void);
  HRESULT         __fastcall set_Diameter(double PVal/*[in]*/);
  HRESULT         __fastcall get_Diameter(double* PVal/*[out,retval]*/);
  double          __fastcall get_Diameter(void);
  HRESULT         __fastcall set_Depth(double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(void);
  HRESULT         __fastcall set_BasePlane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_BasePlane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(void);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Body(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   ksHoleCutTypeEnum CutType = {read = get_CutType, write = set_CutType};
  __property   double          Diameter = {read = get_Diameter, write = set_Diameter};
  __property   double          Depth = {read = get_Depth, write = set_Depth};
  __property   Kompasltapi7_tlb::IModelObjectPtr BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr DepthObject = {read = get_DepthObject, write = set_DepthObject};
  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Body = {read = get_Body, write = set_Body};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalHoleDispT<ISheetMetalHole> ISheetMetalHoleDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalCuts
// Interface: ISheetMetalCuts
// *********************************************************************//
template <class T /* ISheetMetalCuts */ >
class TCOMISheetMetalCutsT : public TComInterface<ISheetMetalCuts>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalCutsT() {}
  TCOMISheetMetalCutsT(ISheetMetalCuts *intf, bool addRef = false) : TComInterface<ISheetMetalCuts>(intf, addRef) {}
  TCOMISheetMetalCutsT(const TCOMISheetMetalCutsT& src) : TComInterface<ISheetMetalCuts>(src) {}
  TCOMISheetMetalCutsT& operator=(const TCOMISheetMetalCutsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SheetMetalCut(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall get_SheetMetalCut(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall Add(void);

};
typedef TCOMISheetMetalCutsT<ISheetMetalCuts> TCOMISheetMetalCuts;

// *********************************************************************//
// DispIntf:  ISheetMetalCuts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9515E4BB-7C60-4C3A-AF7A-847861E67B55}
// *********************************************************************//
template<class T>
class ISheetMetalCutsDispT : public TAutoDriver<ISheetMetalCuts>
{
public:
  ISheetMetalCutsDispT(){}

  ISheetMetalCutsDispT(ISheetMetalCuts *pintf)
  {
    TAutoDriver<ISheetMetalCuts>::Bind(pintf, false);
  }

  ISheetMetalCutsDispT(ISheetMetalCutsPtr pintf)
  {
    TAutoDriver<ISheetMetalCuts>::Bind(pintf, true);
  }

  ISheetMetalCutsDispT& operator=(ISheetMetalCuts *pintf)
  {
    TAutoDriver<ISheetMetalCuts>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalCutsDispT& operator=(ISheetMetalCutsPtr pintf)
  {
    TAutoDriver<ISheetMetalCuts>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalCuts));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalCuts);
  }

  HRESULT         __fastcall get_SheetMetalCut(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall get_SheetMetalCut(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalCutsDispT<ISheetMetalCuts> ISheetMetalCutsDisp;

// *********************************************************************//
// SmartIntf: TCOMISheetMetalCut
// Interface: ISheetMetalCut
// *********************************************************************//
template <class T /* ISheetMetalCut */ >
class TCOMISheetMetalCutT : public TComInterface<ISheetMetalCut>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISheetMetalCutT() {}
  TCOMISheetMetalCutT(ISheetMetalCut *intf, bool addRef = false) : TComInterface<ISheetMetalCut>(intf, addRef) {}
  TCOMISheetMetalCutT(const TCOMISheetMetalCutT& src) : TComInterface<ISheetMetalCut>(src) {}
  TCOMISheetMetalCutT& operator=(const TCOMISheetMetalCutT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_CutType(ksHoleCutTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/);
  ksHoleCutTypeEnum __fastcall get_CutType(void);
  HRESULT         __fastcall set_Depth(double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(void);
  HRESULT         __fastcall set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(void);
  HRESULT         __fastcall set_Cut(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Cut(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Cut(void);
  HRESULT         __fastcall set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Body(void);

  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksHoleCutTypeEnum CutType = {read = get_CutType, write = set_CutType};
  __property   double          Depth = {read = get_Depth, write = set_Depth};
  __property   Kompasltapi7_tlb::IModelObjectPtr DepthObject = {read = get_DepthObject, write = set_DepthObject};
  __property   TOLEBOOL        Cut = {read = get_Cut, write = set_Cut};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Body = {read = get_Body, write = set_Body};
};
typedef TCOMISheetMetalCutT<ISheetMetalCut> TCOMISheetMetalCut;

// *********************************************************************//
// DispIntf:  ISheetMetalCut
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B50B1730-BACF-46F2-B10A-6CCDF4E4A2B1}
// *********************************************************************//
template<class T>
class ISheetMetalCutDispT : public TAutoDriver<ISheetMetalCut>
{
public:
  ISheetMetalCutDispT(){}

  ISheetMetalCutDispT(ISheetMetalCut *pintf)
  {
    TAutoDriver<ISheetMetalCut>::Bind(pintf, false);
  }

  ISheetMetalCutDispT(ISheetMetalCutPtr pintf)
  {
    TAutoDriver<ISheetMetalCut>::Bind(pintf, true);
  }

  ISheetMetalCutDispT& operator=(ISheetMetalCut *pintf)
  {
    TAutoDriver<ISheetMetalCut>::Bind(pintf, false);
    return *this;
  }

  ISheetMetalCutDispT& operator=(ISheetMetalCutPtr pintf)
  {
    TAutoDriver<ISheetMetalCut>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SheetMetalCut));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SheetMetalCut);
  }

  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall set_CutType(ksHoleCutTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/);
  ksHoleCutTypeEnum __fastcall get_CutType(void);
  HRESULT         __fastcall set_Depth(double PVal/*[in]*/);
  HRESULT         __fastcall get_Depth(double* PVal/*[out,retval]*/);
  double          __fastcall get_Depth(void);
  HRESULT         __fastcall set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DepthObject(void);
  HRESULT         __fastcall set_Cut(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Cut(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Cut(void);
  HRESULT         __fastcall set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/);
  HRESULT         __fastcall get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Body(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksHoleCutTypeEnum CutType = {read = get_CutType, write = set_CutType};
  __property   double          Depth = {read = get_Depth, write = set_Depth};
  __property   Kompasltapi7_tlb::IModelObjectPtr DepthObject = {read = get_DepthObject, write = set_DepthObject};
  __property   TOLEBOOL        Cut = {read = get_Cut, write = set_Cut};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Body = {read = get_Body, write = set_Body};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISheetMetalCutDispT<ISheetMetalCut> ISheetMetalCutDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamDisplace
// Interface: IPoint3DParamDisplace
// *********************************************************************//
template <class T /* IPoint3DParamDisplace */ >
class TCOMIPoint3DParamDisplaceT : public TComInterface<IPoint3DParamDisplace>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoint3DParamDisplaceT() {}
  TCOMIPoint3DParamDisplaceT(IPoint3DParamDisplace *intf, bool addRef = false) : TComInterface<IPoint3DParamDisplace>(intf, addRef) {}
  TCOMIPoint3DParamDisplaceT(const TCOMIPoint3DParamDisplaceT& src) : TComInterface<IPoint3DParamDisplace>(src) {}
  TCOMIPoint3DParamDisplaceT& operator=(const TCOMIPoint3DParamDisplaceT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_DX(double PVal/*[in]*/);
  HRESULT         __fastcall get_DX(double* PVal/*[out,retval]*/);
  double          __fastcall get_DX(void);
  HRESULT         __fastcall set_DY(double PVal/*[in]*/);
  HRESULT         __fastcall get_DY(double* PVal/*[out,retval]*/);
  double          __fastcall get_DY(void);
  HRESULT         __fastcall set_DZ(double PVal/*[in]*/);
  HRESULT         __fastcall get_DZ(double* PVal/*[out,retval]*/);
  double          __fastcall get_DZ(void);
  HRESULT         __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void);
  HRESULT         __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_GuidingObject(void);
  HRESULT         __fastcall set_Distance(double PVal/*[in]*/);
  HRESULT         __fastcall get_Distance(double* PVal/*[out,retval]*/);
  double          __fastcall get_Distance(void);

  __property   double          DX = {read = get_DX, write = set_DX};
  __property   double          DY = {read = get_DY, write = set_DY};
  __property   double          DZ = {read = get_DZ, write = set_DZ};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr GuidingObject = {read = get_GuidingObject};
  __property   double          Distance = {read = get_Distance, write = set_Distance};
};
typedef TCOMIPoint3DParamDisplaceT<IPoint3DParamDisplace> TCOMIPoint3DParamDisplace;

// *********************************************************************//
// DispIntf:  IPoint3DParamDisplace
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6D57994F-C170-4CED-968A-6AD69C1A2C7D}
// *********************************************************************//
template<class T>
class IPoint3DParamDisplaceDispT : public TAutoDriver<IPoint3DParamDisplace>
{
public:
  IPoint3DParamDisplaceDispT(){}

  IPoint3DParamDisplaceDispT(IPoint3DParamDisplace *pintf)
  {
    TAutoDriver<IPoint3DParamDisplace>::Bind(pintf, false);
  }

  IPoint3DParamDisplaceDispT(IPoint3DParamDisplacePtr pintf)
  {
    TAutoDriver<IPoint3DParamDisplace>::Bind(pintf, true);
  }

  IPoint3DParamDisplaceDispT& operator=(IPoint3DParamDisplace *pintf)
  {
    TAutoDriver<IPoint3DParamDisplace>::Bind(pintf, false);
    return *this;
  }

  IPoint3DParamDisplaceDispT& operator=(IPoint3DParamDisplacePtr pintf)
  {
    TAutoDriver<IPoint3DParamDisplace>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Point3DParamDisplace));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Point3DParamDisplace);
  }

  HRESULT         __fastcall set_DX(double PVal/*[in]*/);
  HRESULT         __fastcall get_DX(double* PVal/*[out,retval]*/);
  double          __fastcall get_DX(void);
  HRESULT         __fastcall set_DY(double PVal/*[in]*/);
  HRESULT         __fastcall get_DY(double* PVal/*[out,retval]*/);
  double          __fastcall get_DY(void);
  HRESULT         __fastcall set_DZ(double PVal/*[in]*/);
  HRESULT         __fastcall get_DZ(double* PVal/*[out,retval]*/);
  double          __fastcall get_DZ(void);
  HRESULT         __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void);
  HRESULT         __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_GuidingObject(void);
  HRESULT         __fastcall set_Distance(double PVal/*[in]*/);
  HRESULT         __fastcall get_Distance(double* PVal/*[out,retval]*/);
  double          __fastcall get_Distance(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          DX = {read = get_DX, write = set_DX};
  __property   double          DY = {read = get_DY, write = set_DY};
  __property   double          DZ = {read = get_DZ, write = set_DZ};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr GuidingObject = {read = get_GuidingObject};
  __property   double          Distance = {read = get_Distance, write = set_Distance};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoint3DParamDisplaceDispT<IPoint3DParamDisplace> IPoint3DParamDisplaceDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamIntersect
// Interface: IPoint3DParamIntersect
// *********************************************************************//
template <class T /* IPoint3DParamIntersect */ >
class TCOMIPoint3DParamIntersectT : public TComInterface<IPoint3DParamIntersect>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoint3DParamIntersectT() {}
  TCOMIPoint3DParamIntersectT(IPoint3DParamIntersect *intf, bool addRef = false) : TComInterface<IPoint3DParamIntersect>(intf, addRef) {}
  TCOMIPoint3DParamIntersectT(const TCOMIPoint3DParamIntersectT& src) : TComInterface<IPoint3DParamIntersect>(src) {}
  TCOMIPoint3DParamIntersectT& operator=(const TCOMIPoint3DParamIntersectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_CurveObject(void);
  HRESULT         __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void);
  HRESULT         __fastcall get_CartPointArray(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_CartPointArray(void);
  HRESULT         __fastcall set_Index(long PVal/*[in]*/);
  HRESULT         __fastcall get_Index(long* PVal/*[out,retval]*/);
  long            __fastcall get_Index(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr CurveObject = {read = get_CurveObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   long            Index = {read = get_Index, write = set_Index};
};
typedef TCOMIPoint3DParamIntersectT<IPoint3DParamIntersect> TCOMIPoint3DParamIntersect;

// *********************************************************************//
// DispIntf:  IPoint3DParamIntersect
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C009F9ED-ED8A-4B1E-A4CE-156F43C3F6F3}
// *********************************************************************//
template<class T>
class IPoint3DParamIntersectDispT : public TAutoDriver<IPoint3DParamIntersect>
{
public:
  IPoint3DParamIntersectDispT(){}

  IPoint3DParamIntersectDispT(IPoint3DParamIntersect *pintf)
  {
    TAutoDriver<IPoint3DParamIntersect>::Bind(pintf, false);
  }

  IPoint3DParamIntersectDispT(IPoint3DParamIntersectPtr pintf)
  {
    TAutoDriver<IPoint3DParamIntersect>::Bind(pintf, true);
  }

  IPoint3DParamIntersectDispT& operator=(IPoint3DParamIntersect *pintf)
  {
    TAutoDriver<IPoint3DParamIntersect>::Bind(pintf, false);
    return *this;
  }

  IPoint3DParamIntersectDispT& operator=(IPoint3DParamIntersectPtr pintf)
  {
    TAutoDriver<IPoint3DParamIntersect>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Point3DParamIntersect));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Point3DParamIntersect);
  }

  HRESULT         __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_CurveObject(void);
  HRESULT         __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void);
  HRESULT         __fastcall get_CartPointArray(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_CartPointArray(void);
  HRESULT         __fastcall set_Index(long PVal/*[in]*/);
  HRESULT         __fastcall get_Index(long* PVal/*[out,retval]*/);
  long            __fastcall get_Index(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr CurveObject = {read = get_CurveObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   long            Index = {read = get_Index, write = set_Index};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoint3DParamIntersectDispT<IPoint3DParamIntersect> IPoint3DParamIntersectDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamCenter
// Interface: IPoint3DParamCenter
// *********************************************************************//
template <class T /* IPoint3DParamCenter */ >
class TCOMIPoint3DParamCenterT : public TComInterface<IPoint3DParamCenter>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoint3DParamCenterT() {}
  TCOMIPoint3DParamCenterT(IPoint3DParamCenter *intf, bool addRef = false) : TComInterface<IPoint3DParamCenter>(intf, addRef) {}
  TCOMIPoint3DParamCenterT(const TCOMIPoint3DParamCenterT& src) : TComInterface<IPoint3DParamCenter>(src) {}
  TCOMIPoint3DParamCenterT& operator=(const TCOMIPoint3DParamCenterT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_Object(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object = {read = get_Object};
};
typedef TCOMIPoint3DParamCenterT<IPoint3DParamCenter> TCOMIPoint3DParamCenter;

// *********************************************************************//
// DispIntf:  IPoint3DParamCenter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A92F2938-F1D4-475E-AAB4-962FAA4A4366}
// *********************************************************************//
template<class T>
class IPoint3DParamCenterDispT : public TAutoDriver<IPoint3DParamCenter>
{
public:
  IPoint3DParamCenterDispT(){}

  IPoint3DParamCenterDispT(IPoint3DParamCenter *pintf)
  {
    TAutoDriver<IPoint3DParamCenter>::Bind(pintf, false);
  }

  IPoint3DParamCenterDispT(IPoint3DParamCenterPtr pintf)
  {
    TAutoDriver<IPoint3DParamCenter>::Bind(pintf, true);
  }

  IPoint3DParamCenterDispT& operator=(IPoint3DParamCenter *pintf)
  {
    TAutoDriver<IPoint3DParamCenter>::Bind(pintf, false);
    return *this;
  }

  IPoint3DParamCenterDispT& operator=(IPoint3DParamCenterPtr pintf)
  {
    TAutoDriver<IPoint3DParamCenter>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Point3DParamCenter));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Point3DParamCenter);
  }

  HRESULT         __fastcall SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_Object(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object = {read = get_Object};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoint3DParamCenterDispT<IPoint3DParamCenter> IPoint3DParamCenterDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamCurve
// Interface: IPoint3DParamCurve
// *********************************************************************//
template <class T /* IPoint3DParamCurve */ >
class TCOMIPoint3DParamCurveT : public TComInterface<IPoint3DParamCurve>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoint3DParamCurveT() {}
  TCOMIPoint3DParamCurveT(IPoint3DParamCurve *intf, bool addRef = false) : TComInterface<IPoint3DParamCurve>(intf, addRef) {}
  TCOMIPoint3DParamCurveT(const TCOMIPoint3DParamCurveT& src) : TComInterface<IPoint3DParamCurve>(src) {}
  TCOMIPoint3DParamCurveT& operator=(const TCOMIPoint3DParamCurveT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_CurveObject(void);
  HRESULT         __fastcall set_OffsetType(ksPoint3DCurveParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_OffsetType(ksPoint3DCurveParamTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DCurveParamTypeEnum __fastcall get_OffsetType(void);
  HRESULT         __fastcall set_Offset(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr CurveObject = {read = get_CurveObject};
  __property   ksPoint3DCurveParamTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset = {read = get_Offset, write = set_Offset};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
};
typedef TCOMIPoint3DParamCurveT<IPoint3DParamCurve> TCOMIPoint3DParamCurve;

// *********************************************************************//
// DispIntf:  IPoint3DParamCurve
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {06B6BDA5-1DC6-4321-8B28-AC065D87E060}
// *********************************************************************//
template<class T>
class IPoint3DParamCurveDispT : public TAutoDriver<IPoint3DParamCurve>
{
public:
  IPoint3DParamCurveDispT(){}

  IPoint3DParamCurveDispT(IPoint3DParamCurve *pintf)
  {
    TAutoDriver<IPoint3DParamCurve>::Bind(pintf, false);
  }

  IPoint3DParamCurveDispT(IPoint3DParamCurvePtr pintf)
  {
    TAutoDriver<IPoint3DParamCurve>::Bind(pintf, true);
  }

  IPoint3DParamCurveDispT& operator=(IPoint3DParamCurve *pintf)
  {
    TAutoDriver<IPoint3DParamCurve>::Bind(pintf, false);
    return *this;
  }

  IPoint3DParamCurveDispT& operator=(IPoint3DParamCurvePtr pintf)
  {
    TAutoDriver<IPoint3DParamCurve>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Point3DParamCurve));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Point3DParamCurve);
  }

  HRESULT         __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_CurveObject(void);
  HRESULT         __fastcall set_OffsetType(ksPoint3DCurveParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_OffsetType(ksPoint3DCurveParamTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DCurveParamTypeEnum __fastcall get_OffsetType(void);
  HRESULT         __fastcall set_Offset(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr CurveObject = {read = get_CurveObject};
  __property   ksPoint3DCurveParamTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset = {read = get_Offset, write = set_Offset};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoint3DParamCurveDispT<IPoint3DParamCurve> IPoint3DParamCurveDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamSurface
// Interface: IPoint3DParamSurface
// *********************************************************************//
template <class T /* IPoint3DParamSurface */ >
class TCOMIPoint3DParamSurfaceT : public TComInterface<IPoint3DParamSurface>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoint3DParamSurfaceT() {}
  TCOMIPoint3DParamSurfaceT(IPoint3DParamSurface *intf, bool addRef = false) : TComInterface<IPoint3DParamSurface>(intf, addRef) {}
  TCOMIPoint3DParamSurfaceT(const TCOMIPoint3DParamSurfaceT& src) : TComInterface<IPoint3DParamSurface>(src) {}
  TCOMIPoint3DParamSurfaceT& operator=(const TCOMIPoint3DParamSurfaceT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void);
  HRESULT         __fastcall set_OffsetType(ksPoint3DSurfaceParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_OffsetType(ksPoint3DSurfaceParamTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DSurfaceParamTypeEnum __fastcall get_OffsetType(void);
  HRESULT         __fastcall set_Offset1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset1(void);
  HRESULT         __fastcall set_Offset2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset2(void);
  HRESULT         __fastcall SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_Object2(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   ksPoint3DSurfaceParamTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset1 = {read = get_Offset1, write = set_Offset1};
  __property   double          Offset2 = {read = get_Offset2, write = set_Offset2};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2};
};
typedef TCOMIPoint3DParamSurfaceT<IPoint3DParamSurface> TCOMIPoint3DParamSurface;

// *********************************************************************//
// DispIntf:  IPoint3DParamSurface
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18CE6BBE-63FB-4C94-8998-E40BC5B5D1C6}
// *********************************************************************//
template<class T>
class IPoint3DParamSurfaceDispT : public TAutoDriver<IPoint3DParamSurface>
{
public:
  IPoint3DParamSurfaceDispT(){}

  IPoint3DParamSurfaceDispT(IPoint3DParamSurface *pintf)
  {
    TAutoDriver<IPoint3DParamSurface>::Bind(pintf, false);
  }

  IPoint3DParamSurfaceDispT(IPoint3DParamSurfacePtr pintf)
  {
    TAutoDriver<IPoint3DParamSurface>::Bind(pintf, true);
  }

  IPoint3DParamSurfaceDispT& operator=(IPoint3DParamSurface *pintf)
  {
    TAutoDriver<IPoint3DParamSurface>::Bind(pintf, false);
    return *this;
  }

  IPoint3DParamSurfaceDispT& operator=(IPoint3DParamSurfacePtr pintf)
  {
    TAutoDriver<IPoint3DParamSurface>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Point3DParamSurface));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Point3DParamSurface);
  }

  HRESULT         __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void);
  HRESULT         __fastcall set_OffsetType(ksPoint3DSurfaceParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_OffsetType(ksPoint3DSurfaceParamTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DSurfaceParamTypeEnum __fastcall get_OffsetType(void);
  HRESULT         __fastcall set_Offset1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset1(void);
  HRESULT         __fastcall set_Offset2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Offset2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Offset2(void);
  HRESULT         __fastcall SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_Object2(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   ksPoint3DSurfaceParamTypeEnum OffsetType = {read = get_OffsetType, write = set_OffsetType};
  __property   double          Offset1 = {read = get_Offset1, write = set_Offset1};
  __property   double          Offset2 = {read = get_Offset2, write = set_Offset2};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoint3DParamSurfaceDispT<IPoint3DParamSurface> IPoint3DParamSurfaceDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamProjection
// Interface: IPoint3DParamProjection
// *********************************************************************//
template <class T /* IPoint3DParamProjection */ >
class TCOMIPoint3DParamProjectionT : public TComInterface<IPoint3DParamProjection>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPoint3DParamProjectionT() {}
  TCOMIPoint3DParamProjectionT(IPoint3DParamProjection *intf, bool addRef = false) : TComInterface<IPoint3DParamProjection>(intf, addRef) {}
  TCOMIPoint3DParamProjectionT(const TCOMIPoint3DParamProjectionT& src) : TComInterface<IPoint3DParamProjection>(src) {}
  TCOMIPoint3DParamProjectionT& operator=(const TCOMIPoint3DParamProjectionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void);
  HRESULT         __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void);
  HRESULT         __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_GuidingObject(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr GuidingObject = {read = get_GuidingObject};
};
typedef TCOMIPoint3DParamProjectionT<IPoint3DParamProjection> TCOMIPoint3DParamProjection;

// *********************************************************************//
// DispIntf:  IPoint3DParamProjection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B5D353DD-5F26-42FD-87D3-01C97C44E1BF}
// *********************************************************************//
template<class T>
class IPoint3DParamProjectionDispT : public TAutoDriver<IPoint3DParamProjection>
{
public:
  IPoint3DParamProjectionDispT(){}

  IPoint3DParamProjectionDispT(IPoint3DParamProjection *pintf)
  {
    TAutoDriver<IPoint3DParamProjection>::Bind(pintf, false);
  }

  IPoint3DParamProjectionDispT(IPoint3DParamProjectionPtr pintf)
  {
    TAutoDriver<IPoint3DParamProjection>::Bind(pintf, true);
  }

  IPoint3DParamProjectionDispT& operator=(IPoint3DParamProjection *pintf)
  {
    TAutoDriver<IPoint3DParamProjection>::Bind(pintf, false);
    return *this;
  }

  IPoint3DParamProjectionDispT& operator=(IPoint3DParamProjectionPtr pintf)
  {
    TAutoDriver<IPoint3DParamProjection>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Point3DParamProjection));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Point3DParamProjection);
  }

  HRESULT         __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void);
  HRESULT         __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_SurfaceObject(void);
  HRESULT         __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_GuidingObject(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr SurfaceObject = {read = get_SurfaceObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr GuidingObject = {read = get_GuidingObject};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPoint3DParamProjectionDispT<IPoint3DParamProjection> IPoint3DParamProjectionDisp;

typedef TComInterface<ISourcePart7Params>  TCOMISourcePart7Params;

// *********************************************************************//
// DispIntf:  ISourcePart7Params
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C9E03A9B-0A54-49AC-9397-8DE4465A8D1D}
// *********************************************************************//
template<class T>
class ISourcePart7ParamsDispT : public TAutoDriver<ISourcePart7Params>
{
public:
  ISourcePart7ParamsDispT(){}

  ISourcePart7ParamsDispT(ISourcePart7Params *pintf)
  {
    TAutoDriver<ISourcePart7Params>::Bind(pintf, false);
  }

  ISourcePart7ParamsDispT(ISourcePart7ParamsPtr pintf)
  {
    TAutoDriver<ISourcePart7Params>::Bind(pintf, true);
  }

  ISourcePart7ParamsDispT& operator=(ISourcePart7Params *pintf)
  {
    TAutoDriver<ISourcePart7Params>::Bind(pintf, false);
    return *this;
  }

  ISourcePart7ParamsDispT& operator=(ISourcePart7ParamsPtr pintf)
  {
    TAutoDriver<ISourcePart7Params>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_SourceName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SourceName(void);
  HRESULT         __fastcall set_SourceName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_SourceMarking(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_SourceMarking(void);
  HRESULT         __fastcall set_SourceMarking(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_DocumentAuthor(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_DocumentAuthor(void);
  HRESULT         __fastcall set_DocumentAuthor(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_DocumentComment(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_DocumentComment(void);
  HRESULT         __fastcall set_DocumentComment(TVariantInParam PVal/*[in]*/);

  __property   BSTR            SourceName = {read = get_SourceName, write = set_SourceName};
  __property   BSTR            SourceMarking = {read = get_SourceMarking, write = set_SourceMarking};
  __property   BSTR            DocumentAuthor = {read = get_DocumentAuthor, write = set_DocumentAuthor};
};
typedef ISourcePart7ParamsDispT<ISourcePart7Params> ISourcePart7ParamsDisp;

typedef TComInterface<ISymbols3DContainer>  TCOMISymbols3DContainer;

// *********************************************************************//
// DispIntf:  ISymbols3DContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D695D345-7054-4BBD-8D36-8E1F5AEDC5ED}
// *********************************************************************//
template<class T>
class ISymbols3DContainerDispT : public TAutoDriver<ISymbols3DContainer>
{
public:
  ISymbols3DContainerDispT(){}

  ISymbols3DContainerDispT(ISymbols3DContainer *pintf)
  {
    TAutoDriver<ISymbols3DContainer>::Bind(pintf, false);
  }

  ISymbols3DContainerDispT(ISymbols3DContainerPtr pintf)
  {
    TAutoDriver<ISymbols3DContainer>::Bind(pintf, true);
  }

  ISymbols3DContainerDispT& operator=(ISymbols3DContainer *pintf)
  {
    TAutoDriver<ISymbols3DContainer>::Bind(pintf, false);
    return *this;
  }

  ISymbols3DContainerDispT& operator=(ISymbols3DContainerPtr pintf)
  {
    TAutoDriver<ISymbols3DContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_LineDimensions3D(Kompasltapi7_tlb::ILineDimensions3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILineDimensions3DPtr __fastcall get_LineDimensions3D(void);
  HRESULT         __fastcall get_RadialDimensions3D(Kompasltapi7_tlb::IRadialDimensions3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimensions3DPtr __fastcall get_RadialDimensions3D(void);
  HRESULT         __fastcall get_DiametralDimensions3D(Kompasltapi7_tlb::IDiametralDimensions3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimensions3DPtr __fastcall get_DiametralDimensions3D(void);
  HRESULT         __fastcall get_AngleDimensions3D(Kompasltapi7_tlb::IAngleDimensions3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimensions3DPtr __fastcall get_AngleDimensions3D(void);
  HRESULT         __fastcall get_Leaders3D(Kompasltapi7_tlb::ILeaders3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILeaders3DPtr __fastcall get_Leaders3D(void);
  HRESULT         __fastcall get_Roughs3D(Kompasltapi7_tlb::IRoughs3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRoughs3DPtr __fastcall get_Roughs3D(void);
  HRESULT         __fastcall get_Bases3D(Kompasltapi7_tlb::IBases3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBases3DPtr __fastcall get_Bases3D(void);
  HRESULT         __fastcall get_Tolerances3D(Kompasltapi7_tlb::ITolerances3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerances3DPtr __fastcall get_Tolerances3D(void);

  __property   Kompasltapi7_tlb::ILineDimensions3DPtr LineDimensions3D = {read = get_LineDimensions3D};
  __property   Kompasltapi7_tlb::IRadialDimensions3DPtr RadialDimensions3D = {read = get_RadialDimensions3D};
  __property   Kompasltapi7_tlb::IDiametralDimensions3DPtr DiametralDimensions3D = {read = get_DiametralDimensions3D};
  __property   Kompasltapi7_tlb::IAngleDimensions3DPtr AngleDimensions3D = {read = get_AngleDimensions3D};
  __property   Kompasltapi7_tlb::ILeaders3DPtr Leaders3D = {read = get_Leaders3D};
  __property   Kompasltapi7_tlb::IRoughs3DPtr Roughs3D = {read = get_Roughs3D};
  __property   Kompasltapi7_tlb::IBases3DPtr Bases3D = {read = get_Bases3D};
  __property   Kompasltapi7_tlb::ITolerances3DPtr Tolerances3D = {read = get_Tolerances3D};
};
typedef ISymbols3DContainerDispT<ISymbols3DContainer> ISymbols3DContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMILineDimensions3D
// Interface: ILineDimensions3D
// *********************************************************************//
template <class T /* ILineDimensions3D */ >
class TCOMILineDimensions3DT : public TComInterface<ILineDimensions3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILineDimensions3DT() {}
  TCOMILineDimensions3DT(ILineDimensions3D *intf, bool addRef = false) : TComInterface<ILineDimensions3D>(intf, addRef) {}
  TCOMILineDimensions3DT(const TCOMILineDimensions3DT& src) : TComInterface<ILineDimensions3D>(src) {}
  TCOMILineDimensions3DT& operator=(const TCOMILineDimensions3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LineDimension3D(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall get_LineDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/);

};
typedef TCOMILineDimensions3DT<ILineDimensions3D> TCOMILineDimensions3D;

// *********************************************************************//
// DispIntf:  ILineDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8E30C80C-4C79-497B-A74B-84D44F96EF4D}
// *********************************************************************//
template<class T>
class ILineDimensions3DDispT : public TAutoDriver<ILineDimensions3D>
{
public:
  ILineDimensions3DDispT(){}

  ILineDimensions3DDispT(ILineDimensions3D *pintf)
  {
    TAutoDriver<ILineDimensions3D>::Bind(pintf, false);
  }

  ILineDimensions3DDispT(ILineDimensions3DPtr pintf)
  {
    TAutoDriver<ILineDimensions3D>::Bind(pintf, true);
  }

  ILineDimensions3DDispT& operator=(ILineDimensions3D *pintf)
  {
    TAutoDriver<ILineDimensions3D>::Bind(pintf, false);
    return *this;
  }

  ILineDimensions3DDispT& operator=(ILineDimensions3DPtr pintf)
  {
    TAutoDriver<ILineDimensions3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LineDimensions3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LineDimensions3D);
  }

  HRESULT         __fastcall get_LineDimension3D(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall get_LineDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILineDimensions3DDispT<ILineDimensions3D> ILineDimensions3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIBaseLineDimension3D
// Interface: IBaseLineDimension3D
// *********************************************************************//
template <class T /* IBaseLineDimension3D */ >
class TCOMIBaseLineDimension3DT : public TComInterface<IBaseLineDimension3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBaseLineDimension3DT() {}
  TCOMIBaseLineDimension3DT(IBaseLineDimension3D *intf, bool addRef = false) : TComInterface<IBaseLineDimension3D>(intf, addRef) {}
  TCOMIBaseLineDimension3DT(const TCOMIBaseLineDimension3DT& src) : TComInterface<IBaseLineDimension3D>(src) {}
  TCOMIBaseLineDimension3DT& operator=(const TCOMIBaseLineDimension3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void);
  HRESULT         __fastcall set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/);

  __property   double          Length = {read = get_Length, write = set_Length};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2, write = set_Object2};
};
typedef TCOMIBaseLineDimension3DT<IBaseLineDimension3D> TCOMIBaseLineDimension3D;

// *********************************************************************//
// DispIntf:  IBaseLineDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3514887E-321B-4CE3-A966-3EB1A02CEEF2}
// *********************************************************************//
template<class T>
class IBaseLineDimension3DDispT : public TAutoDriver<IBaseLineDimension3D>
{
public:
  IBaseLineDimension3DDispT(){}

  IBaseLineDimension3DDispT(IBaseLineDimension3D *pintf)
  {
    TAutoDriver<IBaseLineDimension3D>::Bind(pintf, false);
  }

  IBaseLineDimension3DDispT(IBaseLineDimension3DPtr pintf)
  {
    TAutoDriver<IBaseLineDimension3D>::Bind(pintf, true);
  }

  IBaseLineDimension3DDispT& operator=(IBaseLineDimension3D *pintf)
  {
    TAutoDriver<IBaseLineDimension3D>::Bind(pintf, false);
    return *this;
  }

  IBaseLineDimension3DDispT& operator=(IBaseLineDimension3DPtr pintf)
  {
    TAutoDriver<IBaseLineDimension3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BaseLineDimension3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BaseLineDimension3D);
  }

  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void);
  HRESULT         __fastcall set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Length = {read = get_Length, write = set_Length};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2, write = set_Object2};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBaseLineDimension3DDispT<IBaseLineDimension3D> IBaseLineDimension3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIRadialDimensions3D
// Interface: IRadialDimensions3D
// *********************************************************************//
template <class T /* IRadialDimensions3D */ >
class TCOMIRadialDimensions3DT : public TComInterface<IRadialDimensions3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRadialDimensions3DT() {}
  TCOMIRadialDimensions3DT(IRadialDimensions3D *intf, bool addRef = false) : TComInterface<IRadialDimensions3D>(intf, addRef) {}
  TCOMIRadialDimensions3DT(const TCOMIRadialDimensions3DT& src) : TComInterface<IRadialDimensions3D>(src) {}
  TCOMIRadialDimensions3DT& operator=(const TCOMIRadialDimensions3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_RadialDimension3D(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall get_RadialDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall Add(void);

};
typedef TCOMIRadialDimensions3DT<IRadialDimensions3D> TCOMIRadialDimensions3D;

// *********************************************************************//
// DispIntf:  IRadialDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {153924CD-E046-4334-8798-46A6D6663DE4}
// *********************************************************************//
template<class T>
class IRadialDimensions3DDispT : public TAutoDriver<IRadialDimensions3D>
{
public:
  IRadialDimensions3DDispT(){}

  IRadialDimensions3DDispT(IRadialDimensions3D *pintf)
  {
    TAutoDriver<IRadialDimensions3D>::Bind(pintf, false);
  }

  IRadialDimensions3DDispT(IRadialDimensions3DPtr pintf)
  {
    TAutoDriver<IRadialDimensions3D>::Bind(pintf, true);
  }

  IRadialDimensions3DDispT& operator=(IRadialDimensions3D *pintf)
  {
    TAutoDriver<IRadialDimensions3D>::Bind(pintf, false);
    return *this;
  }

  IRadialDimensions3DDispT& operator=(IRadialDimensions3DPtr pintf)
  {
    TAutoDriver<IRadialDimensions3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RadialDimensions3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RadialDimensions3D);
  }

  HRESULT         __fastcall get_RadialDimension3D(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall get_RadialDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRadialDimensions3DDispT<IRadialDimensions3D> IRadialDimensions3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIRadialDimension3D
// Interface: IRadialDimension3D
// *********************************************************************//
template <class T /* IRadialDimension3D */ >
class TCOMIRadialDimension3DT : public TComInterface<IRadialDimension3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRadialDimension3DT() {}
  TCOMIRadialDimension3DT(IRadialDimension3D *intf, bool addRef = false) : TComInterface<IRadialDimension3D>(intf, addRef) {}
  TCOMIRadialDimension3DT(const TCOMIRadialDimension3DT& src) : TComInterface<IRadialDimension3D>(src) {}
  TCOMIRadialDimension3DT& operator=(const TCOMIRadialDimension3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PlaneObject(void);
  HRESULT         __fastcall set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/);
  HRESULT         __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/);
  HRESULT         __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr PlaneObject = {read = get_PlaneObject, write = set_PlaneObject};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMIRadialDimension3DT<IRadialDimension3D> TCOMIRadialDimension3D;

// *********************************************************************//
// DispIntf:  IRadialDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5711B871-1FAE-425C-898E-583442D851CD}
// *********************************************************************//
template<class T>
class IRadialDimension3DDispT : public TAutoDriver<IRadialDimension3D>
{
public:
  IRadialDimension3DDispT(){}

  IRadialDimension3DDispT(IRadialDimension3D *pintf)
  {
    TAutoDriver<IRadialDimension3D>::Bind(pintf, false);
  }

  IRadialDimension3DDispT(IRadialDimension3DPtr pintf)
  {
    TAutoDriver<IRadialDimension3D>::Bind(pintf, true);
  }

  IRadialDimension3DDispT& operator=(IRadialDimension3D *pintf)
  {
    TAutoDriver<IRadialDimension3D>::Bind(pintf, false);
    return *this;
  }

  IRadialDimension3DDispT& operator=(IRadialDimension3DPtr pintf)
  {
    TAutoDriver<IRadialDimension3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RadialDimension3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RadialDimension3D);
  }

  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PlaneObject(void);
  HRESULT         __fastcall set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/);
  HRESULT         __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/);
  HRESULT         __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr PlaneObject = {read = get_PlaneObject, write = set_PlaneObject};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRadialDimension3DDispT<IRadialDimension3D> IRadialDimension3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimensions3D
// Interface: IDiametralDimensions3D
// *********************************************************************//
template <class T /* IDiametralDimensions3D */ >
class TCOMIDiametralDimensions3DT : public TComInterface<IDiametralDimensions3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDiametralDimensions3DT() {}
  TCOMIDiametralDimensions3DT(IDiametralDimensions3D *intf, bool addRef = false) : TComInterface<IDiametralDimensions3D>(intf, addRef) {}
  TCOMIDiametralDimensions3DT(const TCOMIDiametralDimensions3DT& src) : TComInterface<IDiametralDimensions3D>(src) {}
  TCOMIDiametralDimensions3DT& operator=(const TCOMIDiametralDimensions3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DiametralDimension3D(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall get_DiametralDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall Add(void);

};
typedef TCOMIDiametralDimensions3DT<IDiametralDimensions3D> TCOMIDiametralDimensions3D;

// *********************************************************************//
// DispIntf:  IDiametralDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {79B5AC3B-9B2F-4C75-8482-3C0D6B07D911}
// *********************************************************************//
template<class T>
class IDiametralDimensions3DDispT : public TAutoDriver<IDiametralDimensions3D>
{
public:
  IDiametralDimensions3DDispT(){}

  IDiametralDimensions3DDispT(IDiametralDimensions3D *pintf)
  {
    TAutoDriver<IDiametralDimensions3D>::Bind(pintf, false);
  }

  IDiametralDimensions3DDispT(IDiametralDimensions3DPtr pintf)
  {
    TAutoDriver<IDiametralDimensions3D>::Bind(pintf, true);
  }

  IDiametralDimensions3DDispT& operator=(IDiametralDimensions3D *pintf)
  {
    TAutoDriver<IDiametralDimensions3D>::Bind(pintf, false);
    return *this;
  }

  IDiametralDimensions3DDispT& operator=(IDiametralDimensions3DPtr pintf)
  {
    TAutoDriver<IDiametralDimensions3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DiametralDimensions3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DiametralDimensions3D);
  }

  HRESULT         __fastcall get_DiametralDimension3D(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall get_DiametralDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDiametralDimensions3DDispT<IDiametralDimensions3D> IDiametralDimensions3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimension3D
// Interface: IDiametralDimension3D
// *********************************************************************//
template <class T /* IDiametralDimension3D */ >
class TCOMIDiametralDimension3DT : public TComInterface<IDiametralDimension3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDiametralDimension3DT() {}
  TCOMIDiametralDimension3DT(IDiametralDimension3D *intf, bool addRef = false) : TComInterface<IDiametralDimension3D>(intf, addRef) {}
  TCOMIDiametralDimension3DT(const TCOMIDiametralDimension3DT& src) : TComInterface<IDiametralDimension3D>(src) {}
  TCOMIDiametralDimension3DT& operator=(const TCOMIDiametralDimension3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PlaneObject(void);
  HRESULT         __fastcall set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/);
  HRESULT         __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/);
  HRESULT         __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr PlaneObject = {read = get_PlaneObject, write = set_PlaneObject};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMIDiametralDimension3DT<IDiametralDimension3D> TCOMIDiametralDimension3D;

// *********************************************************************//
// DispIntf:  IDiametralDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {261AE065-69B8-4B42-B103-C8746720C5BF}
// *********************************************************************//
template<class T>
class IDiametralDimension3DDispT : public TAutoDriver<IDiametralDimension3D>
{
public:
  IDiametralDimension3DDispT(){}

  IDiametralDimension3DDispT(IDiametralDimension3D *pintf)
  {
    TAutoDriver<IDiametralDimension3D>::Bind(pintf, false);
  }

  IDiametralDimension3DDispT(IDiametralDimension3DPtr pintf)
  {
    TAutoDriver<IDiametralDimension3D>::Bind(pintf, true);
  }

  IDiametralDimension3DDispT& operator=(IDiametralDimension3D *pintf)
  {
    TAutoDriver<IDiametralDimension3D>::Bind(pintf, false);
    return *this;
  }

  IDiametralDimension3DDispT& operator=(IDiametralDimension3DPtr pintf)
  {
    TAutoDriver<IDiametralDimension3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DiametralDimension3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DiametralDimension3D);
  }

  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PlaneObject(void);
  HRESULT         __fastcall set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/);
  HRESULT         __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/);
  HRESULT         __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr PlaneObject = {read = get_PlaneObject, write = set_PlaneObject};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDiametralDimension3DDispT<IDiametralDimension3D> IDiametralDimension3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIAngleDimensions3D
// Interface: IAngleDimensions3D
// *********************************************************************//
template <class T /* IAngleDimensions3D */ >
class TCOMIAngleDimensions3DT : public TComInterface<IAngleDimensions3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAngleDimensions3DT() {}
  TCOMIAngleDimensions3DT(IAngleDimensions3D *intf, bool addRef = false) : TComInterface<IAngleDimensions3D>(intf, addRef) {}
  TCOMIAngleDimensions3DT(const TCOMIAngleDimensions3DT& src) : TComInterface<IAngleDimensions3D>(src) {}
  TCOMIAngleDimensions3DT& operator=(const TCOMIAngleDimensions3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_AngleDimension3D(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall get_AngleDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall Add(void);

};
typedef TCOMIAngleDimensions3DT<IAngleDimensions3D> TCOMIAngleDimensions3D;

// *********************************************************************//
// DispIntf:  IAngleDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E0E8DB05-F71B-457E-BFEB-7EC2E803E77A}
// *********************************************************************//
template<class T>
class IAngleDimensions3DDispT : public TAutoDriver<IAngleDimensions3D>
{
public:
  IAngleDimensions3DDispT(){}

  IAngleDimensions3DDispT(IAngleDimensions3D *pintf)
  {
    TAutoDriver<IAngleDimensions3D>::Bind(pintf, false);
  }

  IAngleDimensions3DDispT(IAngleDimensions3DPtr pintf)
  {
    TAutoDriver<IAngleDimensions3D>::Bind(pintf, true);
  }

  IAngleDimensions3DDispT& operator=(IAngleDimensions3D *pintf)
  {
    TAutoDriver<IAngleDimensions3D>::Bind(pintf, false);
    return *this;
  }

  IAngleDimensions3DDispT& operator=(IAngleDimensions3DPtr pintf)
  {
    TAutoDriver<IAngleDimensions3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AngleDimensions3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AngleDimensions3D);
  }

  HRESULT         __fastcall get_AngleDimension3D(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall get_AngleDimension3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAngleDimensions3DDispT<IAngleDimensions3D> IAngleDimensions3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIAngleDimension3D
// Interface: IAngleDimension3D
// *********************************************************************//
template <class T /* IAngleDimension3D */ >
class TCOMIAngleDimension3DT : public TComInterface<IAngleDimension3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAngleDimension3DT() {}
  TCOMIAngleDimension3DT(IAngleDimension3D *intf, bool addRef = false) : TComInterface<IAngleDimension3D>(intf, addRef) {}
  TCOMIAngleDimension3DT(const TCOMIAngleDimension3DT& src) : TComInterface<IAngleDimension3D>(src) {}
  TCOMIAngleDimension3DT& operator=(const TCOMIAngleDimension3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void);
  HRESULT         __fastcall set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/);
  ksAngleDimTypeEnum __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall Inverse(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Inverse(void);
  HRESULT         __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/);
  HRESULT         __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2, write = set_Object2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   ksAngleDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
};
typedef TCOMIAngleDimension3DT<IAngleDimension3D> TCOMIAngleDimension3D;

// *********************************************************************//
// DispIntf:  IAngleDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C22870B5-F002-4C76-9E67-46854E938824}
// *********************************************************************//
template<class T>
class IAngleDimension3DDispT : public TAutoDriver<IAngleDimension3D>
{
public:
  IAngleDimension3DDispT(){}

  IAngleDimension3DDispT(IAngleDimension3D *pintf)
  {
    TAutoDriver<IAngleDimension3D>::Bind(pintf, false);
  }

  IAngleDimension3DDispT(IAngleDimension3DPtr pintf)
  {
    TAutoDriver<IAngleDimension3D>::Bind(pintf, true);
  }

  IAngleDimension3DDispT& operator=(IAngleDimension3D *pintf)
  {
    TAutoDriver<IAngleDimension3D>::Bind(pintf, false);
    return *this;
  }

  IAngleDimension3DDispT& operator=(IAngleDimension3DPtr pintf)
  {
    TAutoDriver<IAngleDimension3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AngleDimension3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AngleDimension3D);
  }

  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void);
  HRESULT         __fastcall set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/);
  ksAngleDimTypeEnum __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall Inverse(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Inverse(void);
  HRESULT         __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/);
  HRESULT         __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2, write = set_Object2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   ksAngleDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAngleDimension3DDispT<IAngleDimension3D> IAngleDimension3DDisp;

// *********************************************************************//
// SmartIntf: TCOMILeaders3D
// Interface: ILeaders3D
// *********************************************************************//
template <class T /* ILeaders3D */ >
class TCOMILeaders3DT : public TComInterface<ILeaders3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILeaders3DT() {}
  TCOMILeaders3DT(ILeaders3D *intf, bool addRef = false) : TComInterface<ILeaders3D>(intf, addRef) {}
  TCOMILeaders3DT(const TCOMILeaders3DT& src) : TComInterface<ILeaders3D>(src) {}
  TCOMILeaders3DT& operator=(const TCOMILeaders3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Leader3D(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IBaseLeader3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall get_Leader3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLeader3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/);

};
typedef TCOMILeaders3DT<ILeaders3D> TCOMILeaders3D;

// *********************************************************************//
// DispIntf:  ILeaders3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C6E6BDD4-2B0E-49BF-87D3-04E800200DDC}
// *********************************************************************//
template<class T>
class ILeaders3DDispT : public TAutoDriver<ILeaders3D>
{
public:
  ILeaders3DDispT(){}

  ILeaders3DDispT(ILeaders3D *pintf)
  {
    TAutoDriver<ILeaders3D>::Bind(pintf, false);
  }

  ILeaders3DDispT(ILeaders3DPtr pintf)
  {
    TAutoDriver<ILeaders3D>::Bind(pintf, true);
  }

  ILeaders3DDispT& operator=(ILeaders3D *pintf)
  {
    TAutoDriver<ILeaders3D>::Bind(pintf, false);
    return *this;
  }

  ILeaders3DDispT& operator=(ILeaders3DPtr pintf)
  {
    TAutoDriver<ILeaders3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Leaders3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Leaders3D);
  }

  HRESULT         __fastcall get_Leader3D(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IBaseLeader3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall get_Leader3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLeader3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall Add(ksObj3dTypeEnum DimType/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILeaders3DDispT<ILeaders3D> ILeaders3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIBaseLeader3D
// Interface: IBaseLeader3D
// *********************************************************************//
template <class T /* IBaseLeader3D */ >
class TCOMIBaseLeader3DT : public TComInterface<IBaseLeader3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBaseLeader3DT() {}
  TCOMIBaseLeader3DT(IBaseLeader3D *intf, bool addRef = false) : TComInterface<IBaseLeader3D>(intf, addRef) {}
  TCOMIBaseLeader3DT(const TCOMIBaseLeader3DT& src) : TComInterface<IBaseLeader3D>(src) {}
  TCOMIBaseLeader3DT& operator=(const TCOMIBaseLeader3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_ArrowType(ksArrowEnum* Result/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum Result/*[in]*/);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
};
typedef TCOMIBaseLeader3DT<IBaseLeader3D> TCOMIBaseLeader3D;

// *********************************************************************//
// DispIntf:  IBaseLeader3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7170F38E-8230-4C9C-B36B-0BACBB27B123}
// *********************************************************************//
template<class T>
class IBaseLeader3DDispT : public TAutoDriver<IBaseLeader3D>
{
public:
  IBaseLeader3DDispT(){}

  IBaseLeader3DDispT(IBaseLeader3D *pintf)
  {
    TAutoDriver<IBaseLeader3D>::Bind(pintf, false);
  }

  IBaseLeader3DDispT(IBaseLeader3DPtr pintf)
  {
    TAutoDriver<IBaseLeader3D>::Bind(pintf, true);
  }

  IBaseLeader3DDispT& operator=(IBaseLeader3D *pintf)
  {
    TAutoDriver<IBaseLeader3D>::Bind(pintf, false);
    return *this;
  }

  IBaseLeader3DDispT& operator=(IBaseLeader3DPtr pintf)
  {
    TAutoDriver<IBaseLeader3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BaseLeader3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BaseLeader3D);
  }

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/
                                         , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_ArrowType(ksArrowEnum* Result/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum Result/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBaseLeader3DDispT<IBaseLeader3D> IBaseLeader3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIRoughs3D
// Interface: IRoughs3D
// *********************************************************************//
template <class T /* IRoughs3D */ >
class TCOMIRoughs3DT : public TComInterface<IRoughs3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRoughs3DT() {}
  TCOMIRoughs3DT(IRoughs3D *intf, bool addRef = false) : TComInterface<IRoughs3D>(intf, addRef) {}
  TCOMIRoughs3DT(const TCOMIRoughs3DT& src) : TComInterface<IRoughs3D>(src) {}
  TCOMIRoughs3DT& operator=(const TCOMIRoughs3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Rough3D(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IRough3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRough3DPtr __fastcall get_Rough3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRough3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IRough3DPtr __fastcall Add(void);

};
typedef TCOMIRoughs3DT<IRoughs3D> TCOMIRoughs3D;

// *********************************************************************//
// DispIntf:  IRoughs3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8533772B-1C43-4FDD-9F0E-BC92F15862C9}
// *********************************************************************//
template<class T>
class IRoughs3DDispT : public TAutoDriver<IRoughs3D>
{
public:
  IRoughs3DDispT(){}

  IRoughs3DDispT(IRoughs3D *pintf)
  {
    TAutoDriver<IRoughs3D>::Bind(pintf, false);
  }

  IRoughs3DDispT(IRoughs3DPtr pintf)
  {
    TAutoDriver<IRoughs3D>::Bind(pintf, true);
  }

  IRoughs3DDispT& operator=(IRoughs3D *pintf)
  {
    TAutoDriver<IRoughs3D>::Bind(pintf, false);
    return *this;
  }

  IRoughs3DDispT& operator=(IRoughs3DPtr pintf)
  {
    TAutoDriver<IRoughs3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Roughs3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Roughs3D);
  }

  HRESULT         __fastcall get_Rough3D(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IRough3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRough3DPtr __fastcall get_Rough3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRough3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IRough3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRoughs3DDispT<IRoughs3D> IRoughs3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIRough3D
// Interface: IRough3D
// *********************************************************************//
template <class T /* IRough3D */ >
class TCOMIRough3DT : public TComInterface<IRough3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRough3DT() {}
  TCOMIRough3DT(IRough3D *intf, bool addRef = false) : TComInterface<IRough3D>(intf, addRef) {}
  TCOMIRough3DT(const TCOMIRough3DT& src) : TComInterface<IRough3D>(src) {}
  TCOMIRough3DT& operator=(const TCOMIRough3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/);
  HRESULT         __fastcall SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/);
  HRESULT         __fastcall SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject};
};
typedef TCOMIRough3DT<IRough3D> TCOMIRough3D;

// *********************************************************************//
// DispIntf:  IRough3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {083A4984-199E-4591-8FC3-CB8A9D7D4303}
// *********************************************************************//
template<class T>
class IRough3DDispT : public TAutoDriver<IRough3D>
{
public:
  IRough3DDispT(){}

  IRough3DDispT(IRough3D *pintf)
  {
    TAutoDriver<IRough3D>::Bind(pintf, false);
  }

  IRough3DDispT(IRough3DPtr pintf)
  {
    TAutoDriver<IRough3D>::Bind(pintf, true);
  }

  IRough3DDispT& operator=(IRough3D *pintf)
  {
    TAutoDriver<IRough3D>::Bind(pintf, false);
    return *this;
  }

  IRough3DDispT& operator=(IRough3DPtr pintf)
  {
    TAutoDriver<IRough3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Rough3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Rough3D);
  }

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/
                                         , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                             double* Z/*[out]*/);
  HRESULT         __fastcall SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                             Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/);
  HRESULT         __fastcall SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRough3DDispT<IRough3D> IRough3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIBases3D
// Interface: IBases3D
// *********************************************************************//
template <class T /* IBases3D */ >
class TCOMIBases3DT : public TComInterface<IBases3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBases3DT() {}
  TCOMIBases3DT(IBases3D *intf, bool addRef = false) : TComInterface<IBases3D>(intf, addRef) {}
  TCOMIBases3DT(const TCOMIBases3DT& src) : TComInterface<IBases3D>(src) {}
  TCOMIBases3DT& operator=(const TCOMIBases3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Base3D(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBase3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBase3DPtr __fastcall get_Base3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBase3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBase3DPtr __fastcall Add(void);

};
typedef TCOMIBases3DT<IBases3D> TCOMIBases3D;

// *********************************************************************//
// DispIntf:  IBases3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BC582B3-1F82-4D19-AF95-24CBAD412E52}
// *********************************************************************//
template<class T>
class IBases3DDispT : public TAutoDriver<IBases3D>
{
public:
  IBases3DDispT(){}

  IBases3DDispT(IBases3D *pintf)
  {
    TAutoDriver<IBases3D>::Bind(pintf, false);
  }

  IBases3DDispT(IBases3DPtr pintf)
  {
    TAutoDriver<IBases3D>::Bind(pintf, true);
  }

  IBases3DDispT& operator=(IBases3D *pintf)
  {
    TAutoDriver<IBases3D>::Bind(pintf, false);
    return *this;
  }

  IBases3DDispT& operator=(IBases3DPtr pintf)
  {
    TAutoDriver<IBases3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Bases3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Bases3D);
  }

  HRESULT         __fastcall get_Base3D(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBase3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBase3DPtr __fastcall get_Base3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBase3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBase3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBases3DDispT<IBases3D> IBases3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIBase3D
// Interface: IBase3D
// *********************************************************************//
template <class T /* IBase3D */ >
class TCOMIBase3DT : public TComInterface<IBase3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBase3DT() {}
  TCOMIBase3DT(IBase3D *intf, bool addRef = false) : TComInterface<IBase3D>(intf, addRef) {}
  TCOMIBase3DT(const TCOMIBase3DT& src) : TComInterface<IBase3D>(src) {}
  TCOMIBase3DT& operator=(const TCOMIBase3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall get_DrawType(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawType(void);
  HRESULT         __fastcall set_DrawType(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Z/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Z/*[out]*/);
  HRESULT         __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Z/*[in]*/, 
                                                 Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Z/*[in]*/, 
                                                 Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/);
  HRESULT         __fastcall SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject};
  __property   TOLEBOOL        DrawType = {read = get_DrawType, write = set_DrawType};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
};
typedef TCOMIBase3DT<IBase3D> TCOMIBase3D;

// *********************************************************************//
// DispIntf:  IBase3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D5B737F6-FD3D-49F8-B3D8-C8475E5E3D3A}
// *********************************************************************//
template<class T>
class IBase3DDispT : public TAutoDriver<IBase3D>
{
public:
  IBase3DDispT(){}

  IBase3DDispT(IBase3D *pintf)
  {
    TAutoDriver<IBase3D>::Bind(pintf, false);
  }

  IBase3DDispT(IBase3DPtr pintf)
  {
    TAutoDriver<IBase3D>::Bind(pintf, true);
  }

  IBase3DDispT& operator=(IBase3D *pintf)
  {
    TAutoDriver<IBase3D>::Bind(pintf, false);
    return *this;
  }

  IBase3DDispT& operator=(IBase3DPtr pintf)
  {
    TAutoDriver<IBase3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Base3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Base3D);
  }

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/
                                         , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall get_DrawType(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawType(void);
  HRESULT         __fastcall set_DrawType(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Z/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Z/*[out]*/);
  HRESULT         __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Z/*[in]*/, 
                                                 Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Z/*[in]*/, 
                                                 Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/);
  HRESULT         __fastcall SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/
                                               , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject};
  __property   TOLEBOOL        DrawType = {read = get_DrawType, write = set_DrawType};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBase3DDispT<IBase3D> IBase3DDisp;

// *********************************************************************//
// SmartIntf: TCOMITolerances3D
// Interface: ITolerances3D
// *********************************************************************//
template <class T /* ITolerances3D */ >
class TCOMITolerances3DT : public TComInterface<ITolerances3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITolerances3DT() {}
  TCOMITolerances3DT(ITolerances3D *intf, bool addRef = false) : TComInterface<ITolerances3D>(intf, addRef) {}
  TCOMITolerances3DT(const TCOMITolerances3DT& src) : TComInterface<ITolerances3D>(src) {}
  TCOMITolerances3DT& operator=(const TCOMITolerances3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Tolerance3D(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ITolerance3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerance3DPtr __fastcall get_Tolerance3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITolerance3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerance3DPtr __fastcall Add(void);

};
typedef TCOMITolerances3DT<ITolerances3D> TCOMITolerances3D;

// *********************************************************************//
// DispIntf:  ITolerances3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {82ADDA0C-B8DE-4336-A5CC-B36504A80E2D}
// *********************************************************************//
template<class T>
class ITolerances3DDispT : public TAutoDriver<ITolerances3D>
{
public:
  ITolerances3DDispT(){}

  ITolerances3DDispT(ITolerances3D *pintf)
  {
    TAutoDriver<ITolerances3D>::Bind(pintf, false);
  }

  ITolerances3DDispT(ITolerances3DPtr pintf)
  {
    TAutoDriver<ITolerances3D>::Bind(pintf, true);
  }

  ITolerances3DDispT& operator=(ITolerances3D *pintf)
  {
    TAutoDriver<ITolerances3D>::Bind(pintf, false);
    return *this;
  }

  ITolerances3DDispT& operator=(ITolerances3DPtr pintf)
  {
    TAutoDriver<ITolerances3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Tolerances3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Tolerances3D);
  }

  HRESULT         __fastcall get_Tolerance3D(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ITolerance3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerance3DPtr __fastcall get_Tolerance3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITolerance3DPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerance3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITolerances3DDispT<ITolerances3D> ITolerances3DDisp;

// *********************************************************************//
// SmartIntf: TCOMITolerance3D
// Interface: ITolerance3D
// *********************************************************************//
template <class T /* ITolerance3D */ >
class TCOMITolerance3DT : public TComInterface<ITolerance3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITolerance3DT() {}
  TCOMITolerance3DT(ITolerance3D *intf, bool addRef = false) : TComInterface<ITolerance3D>(intf, addRef) {}
  TCOMITolerance3DT(const TCOMITolerance3DT& src) : TComInterface<ITolerance3D>(src) {}
  TCOMITolerance3DT& operator=(const TCOMITolerance3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ArrowType(long Index/*[in]*/);
  HRESULT         __fastcall set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};
};
typedef TCOMITolerance3DT<ITolerance3D> TCOMITolerance3D;

// *********************************************************************//
// DispIntf:  ITolerance3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CF700CF-72DB-44EB-A191-3814A3CC21BD}
// *********************************************************************//
template<class T>
class ITolerance3DDispT : public TAutoDriver<ITolerance3D>
{
public:
  ITolerance3DDispT(){}

  ITolerance3DDispT(ITolerance3D *pintf)
  {
    TAutoDriver<ITolerance3D>::Bind(pintf, false);
  }

  ITolerance3DDispT(ITolerance3DPtr pintf)
  {
    TAutoDriver<ITolerance3D>::Bind(pintf, true);
  }

  ITolerance3DDispT& operator=(ITolerance3D *pintf)
  {
    TAutoDriver<ITolerance3D>::Bind(pintf, false);
    return *this;
  }

  ITolerance3DDispT& operator=(ITolerance3DPtr pintf)
  {
    TAutoDriver<ITolerance3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Tolerance3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Tolerance3D);
  }

  HRESULT         __fastcall get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_BasePlane(void);
  HRESULT         __fastcall set_BasePlane(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_PositionObject(void);
  HRESULT         __fastcall set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/);
  HRESULT         __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/
                                         , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ArrowType(long Index/*[in]*/);
  HRESULT         __fastcall set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksObj3dTypeEnum BasePlane = {read = get_BasePlane, write = set_BasePlane};
  __property   Kompasltapi7_tlb::IModelObjectPtr PositionObject = {read = get_PositionObject, write = set_PositionObject};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITolerance3DDispT<ITolerance3D> ITolerance3DDisp;

// *********************************************************************//
// SmartIntf: TCOMILineDimension3D
// Interface: ILineDimension3D
// *********************************************************************//
template <class T /* ILineDimension3D */ >
class TCOMILineDimension3DT : public TComInterface<ILineDimension3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILineDimension3DT() {}
  TCOMILineDimension3DT(ILineDimension3D *intf, bool addRef = false) : TComInterface<ILineDimension3D>(intf, addRef) {}
  TCOMILineDimension3DT(const TCOMILineDimension3DT& src) : TComInterface<ILineDimension3D>(src) {}
  TCOMILineDimension3DT& operator=(const TCOMILineDimension3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Plane/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Plane(void);
  HRESULT         __fastcall set_Plane(Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/);

  __property   Kompasltapi7_tlb::IModelObjectPtr Plane = {read = get_Plane, write = set_Plane};
};
typedef TCOMILineDimension3DT<ILineDimension3D> TCOMILineDimension3D;

// *********************************************************************//
// DispIntf:  ILineDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F38E986B-9CC0-4492-B850-180D3A6AF713}
// *********************************************************************//
template<class T>
class ILineDimension3DDispT : public TAutoDriver<ILineDimension3D>
{
public:
  ILineDimension3DDispT(){}

  ILineDimension3DDispT(ILineDimension3D *pintf)
  {
    TAutoDriver<ILineDimension3D>::Bind(pintf, false);
  }

  ILineDimension3DDispT(ILineDimension3DPtr pintf)
  {
    TAutoDriver<ILineDimension3D>::Bind(pintf, true);
  }

  ILineDimension3DDispT& operator=(ILineDimension3D *pintf)
  {
    TAutoDriver<ILineDimension3D>::Bind(pintf, false);
    return *this;
  }

  ILineDimension3DDispT& operator=(ILineDimension3DPtr pintf)
  {
    TAutoDriver<ILineDimension3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LineDimension3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LineDimension3D);
  }

  HRESULT         __fastcall get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Plane/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Plane(void);
  HRESULT         __fastcall set_Plane(Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object1(void);
  HRESULT         __fastcall set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Object2(void);
  HRESULT         __fastcall set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Plane = {read = get_Plane, write = set_Plane};

  __property   double          Length = {read = get_Length, write = set_Length};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object1 = {read = get_Object1, write = set_Object1};
  __property   Kompasltapi7_tlb::IModelObjectPtr Object2 = {read = get_Object2, write = set_Object2};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILineDimension3DDispT<ILineDimension3D> ILineDimension3DDisp;

// *********************************************************************//
// SmartIntf: TCOMICurveVertexParam
// Interface: ICurveVertexParam
// *********************************************************************//
template <class T /* ICurveVertexParam */ >
class TCOMICurveVertexParamT : public TComInterface<ICurveVertexParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICurveVertexParamT() {}
  TCOMICurveVertexParamT(ICurveVertexParam *intf, bool addRef = false) : TComInterface<ICurveVertexParam>(intf, addRef) {}
  TCOMICurveVertexParamT(const TCOMICurveVertexParamT& src) : TComInterface<ICurveVertexParam>(src) {}
  TCOMICurveVertexParamT& operator=(const TCOMICurveVertexParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_BuildingType(ksLineBuildingType Result/*[in]*/);
  HRESULT         __fastcall get_BuildingType(ksLineBuildingType* Result/*[out,retval]*/);
  ksLineBuildingType __fastcall get_BuildingType(void);
  HRESULT         __fastcall set_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BuildingObject(void);
  HRESULT         __fastcall set_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void);
  HRESULT         __fastcall get_Vertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Vertex(void);
  HRESULT         __fastcall get_Index(int* Result/*[out,retval]*/);
  int             __fastcall get_Index(void);
  HRESULT         __fastcall get_PointParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_PointParameters(void);
  HRESULT         __fastcall set_PointType(ksPoint3DTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_PointType(ksPoint3DTypeEnum* Result/*[out,retval]*/);
  ksPoint3DTypeEnum __fastcall get_PointType(void);
  HRESULT         __fastcall GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, double* Value/*[out]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, double* Value/*[out]*/);
  HRESULT         __fastcall SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            double Value/*[in]*/);
  HRESULT         __fastcall SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                              double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                              double Value/*[in]*/);
  HRESULT         __fastcall GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/);
  HRESULT         __fastcall SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/);

  __property   ksLineBuildingType BuildingType = {read = get_BuildingType, write = set_BuildingType};
  __property   Kompasltapi7_tlb::IModelObjectPtr BuildingObject = {read = get_BuildingObject, write = set_BuildingObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex, write = set_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr Vertex = {read = get_Vertex};
  __property   int             Index = {read = get_Index};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr PointParameters = {read = get_PointParameters};
  __property   ksPoint3DTypeEnum PointType = {read = get_PointType, write = set_PointType};
};
typedef TCOMICurveVertexParamT<ICurveVertexParam> TCOMICurveVertexParam;

// *********************************************************************//
// DispIntf:  ICurveVertexParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2AD2E4B4-B870-437A-8D57-5807729FCB05}
// *********************************************************************//
template<class T>
class ICurveVertexParamDispT : public TAutoDriver<ICurveVertexParam>
{
public:
  ICurveVertexParamDispT(){}

  ICurveVertexParamDispT(ICurveVertexParam *pintf)
  {
    TAutoDriver<ICurveVertexParam>::Bind(pintf, false);
  }

  ICurveVertexParamDispT(ICurveVertexParamPtr pintf)
  {
    TAutoDriver<ICurveVertexParam>::Bind(pintf, true);
  }

  ICurveVertexParamDispT& operator=(ICurveVertexParam *pintf)
  {
    TAutoDriver<ICurveVertexParam>::Bind(pintf, false);
    return *this;
  }

  ICurveVertexParamDispT& operator=(ICurveVertexParamPtr pintf)
  {
    TAutoDriver<ICurveVertexParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CurveVertexParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CurveVertexParam);
  }

  HRESULT         __fastcall set_BuildingType(ksLineBuildingType Result/*[in]*/);
  HRESULT         __fastcall get_BuildingType(ksLineBuildingType* Result/*[out,retval]*/);
  ksLineBuildingType __fastcall get_BuildingType(void);
  HRESULT         __fastcall set_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BuildingObject(void);
  HRESULT         __fastcall set_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationVertex(void);
  HRESULT         __fastcall get_Vertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Vertex(void);
  HRESULT         __fastcall get_Index(int* Result/*[out,retval]*/);
  int             __fastcall get_Index(void);
  HRESULT         __fastcall get_PointParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_PointParameters(void);
  HRESULT         __fastcall set_PointType(ksPoint3DTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_PointType(ksPoint3DTypeEnum* Result/*[out,retval]*/);
  ksPoint3DTypeEnum __fastcall get_PointType(void);
  HRESULT         __fastcall GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, double* Value/*[out]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, double* Value/*[out]*/);
  HRESULT         __fastcall SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            double Value/*[in]*/);
  HRESULT         __fastcall SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                              double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                              double Value/*[in]*/);
  HRESULT         __fastcall GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/);
  HRESULT         __fastcall SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/, 
                                                TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksLineBuildingType BuildingType = {read = get_BuildingType, write = set_BuildingType};
  __property   Kompasltapi7_tlb::IModelObjectPtr BuildingObject = {read = get_BuildingObject, write = set_BuildingObject};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationVertex = {read = get_AssociationVertex, write = set_AssociationVertex};
  __property   Kompasltapi7_tlb::IModelObjectPtr Vertex = {read = get_Vertex};
  __property   int             Index = {read = get_Index};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr PointParameters = {read = get_PointParameters};
  __property   ksPoint3DTypeEnum PointType = {read = get_PointType, write = set_PointType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICurveVertexParamDispT<ICurveVertexParam> ICurveVertexParamDisp;

// *********************************************************************//
// SmartIntf: TCOMISplines3D
// Interface: ISplines3D
// *********************************************************************//
template <class T /* ISplines3D */ >
class TCOMISplines3DT : public TComInterface<ISplines3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISplines3DT() {}
  TCOMISplines3DT(ISplines3D *intf, bool addRef = false) : TComInterface<ISplines3D>(intf, addRef) {}
  TCOMISplines3DT(const TCOMISplines3DT& src) : TComInterface<ISplines3D>(src) {}
  TCOMISplines3DT& operator=(const TCOMISplines3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Spline3D(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpline3DPtr __fastcall get_Spline3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpline3DPtr __fastcall Add(void);
  HRESULT         __fastcall Convert(TVariantInParam Objects/*[in]*/, 
                                     TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall Convert(TVariantInParam Objects/*[in]*/);

};
typedef TCOMISplines3DT<ISplines3D> TCOMISplines3D;

// *********************************************************************//
// DispIntf:  ISplines3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C4BC0839-932F-4DBC-9A84-5D1FE8927351}
// *********************************************************************//
template<class T>
class ISplines3DDispT : public TAutoDriver<ISplines3D>
{
public:
  ISplines3DDispT(){}

  ISplines3DDispT(ISplines3D *pintf)
  {
    TAutoDriver<ISplines3D>::Bind(pintf, false);
  }

  ISplines3DDispT(ISplines3DPtr pintf)
  {
    TAutoDriver<ISplines3D>::Bind(pintf, true);
  }

  ISplines3DDispT& operator=(ISplines3D *pintf)
  {
    TAutoDriver<ISplines3D>::Bind(pintf, false);
    return *this;
  }

  ISplines3DDispT& operator=(ISplines3DPtr pintf)
  {
    TAutoDriver<ISplines3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Splines3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Splines3D);
  }

  HRESULT         __fastcall get_Spline3D(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpline3DPtr __fastcall get_Spline3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISpline3DPtr __fastcall Add(void);
  HRESULT         __fastcall Convert(TVariantInParam Objects/*[in]*/, 
                                     TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall Convert(TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISplines3DDispT<ISplines3D> ISplines3DDisp;

// *********************************************************************//
// SmartIntf: TCOMISpline3D
// Interface: ISpline3D
// *********************************************************************//
template <class T /* ISpline3D */ >
class TCOMISpline3DT : public TComInterface<ISpline3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISpline3DT() {}
  TCOMISpline3DT(ISpline3D *intf, bool addRef = false) : TComInterface<ISpline3D>(intf, addRef) {}
  TCOMISpline3DT(const TCOMISpline3DT& src) : TComInterface<ISpline3D>(src) {}
  TCOMISpline3DT& operator=(const TCOMISpline3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall set_SplineOnPoles(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_SplineOnPoles(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SplineOnPoles(void);
  HRESULT         __fastcall set_SplineOrder(long Result/*[in]*/);
  HRESULT         __fastcall get_SplineOrder(long* Result/*[out,retval]*/);
  long            __fastcall get_SplineOrder(void);
  HRESULT         __fastcall get_VertexCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VertexCount(void);
  HRESULT         __fastcall get_VertexParams(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall get_VertexParams(long Index/*[in]*/);
  HRESULT         __fastcall AddVertex(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall AddVertex(long Index/*[in]*/);
  HRESULT         __fastcall DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteVertex(long Index/*[in]*/);
  HRESULT         __fastcall Flush(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Flush(void);
  HRESULT         __fastcall ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall get_VertexParamsArray(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_VertexParamsArray(void);
  HRESULT         __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Weights/*[out]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Weights/*[out]*/);
  HRESULT         __fastcall set_Knots(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Knots(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Knots(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   TOLEBOOL        SplineOnPoles = {read = get_SplineOnPoles, write = set_SplineOnPoles};
  __property   long            SplineOrder = {read = get_SplineOrder, write = set_SplineOrder};
  __property   long            VertexCount = {read = get_VertexCount};
};
typedef TCOMISpline3DT<ISpline3D> TCOMISpline3D;

// *********************************************************************//
// DispIntf:  ISpline3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D0940A0-6A4A-4CE8-A08A-EA0A4AE91942}
// *********************************************************************//
template<class T>
class ISpline3DDispT : public TAutoDriver<ISpline3D>
{
public:
  ISpline3DDispT(){}

  ISpline3DDispT(ISpline3D *pintf)
  {
    TAutoDriver<ISpline3D>::Bind(pintf, false);
  }

  ISpline3DDispT(ISpline3DPtr pintf)
  {
    TAutoDriver<ISpline3D>::Bind(pintf, true);
  }

  ISpline3DDispT& operator=(ISpline3D *pintf)
  {
    TAutoDriver<ISpline3D>::Bind(pintf, false);
    return *this;
  }

  ISpline3DDispT& operator=(ISpline3DPtr pintf)
  {
    TAutoDriver<ISpline3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Spline3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Spline3D);
  }

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall set_SplineOnPoles(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_SplineOnPoles(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SplineOnPoles(void);
  HRESULT         __fastcall set_SplineOrder(long Result/*[in]*/);
  HRESULT         __fastcall get_SplineOrder(long* Result/*[out,retval]*/);
  long            __fastcall get_SplineOrder(void);
  HRESULT         __fastcall get_VertexCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VertexCount(void);
  HRESULT         __fastcall get_VertexParams(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall get_VertexParams(long Index/*[in]*/);
  HRESULT         __fastcall AddVertex(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall AddVertex(long Index/*[in]*/);
  HRESULT         __fastcall DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteVertex(long Index/*[in]*/);
  HRESULT         __fastcall Flush(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Flush(void);
  HRESULT         __fastcall ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall get_VertexParamsArray(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_VertexParamsArray(void);
  HRESULT         __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Weights/*[out]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Weights/*[out]*/);
  HRESULT         __fastcall set_Knots(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Knots(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Knots(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   TOLEBOOL        SplineOnPoles = {read = get_SplineOnPoles, write = set_SplineOnPoles};
  __property   long            SplineOrder = {read = get_SplineOrder, write = set_SplineOrder};
  __property   long            VertexCount = {read = get_VertexCount};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISpline3DDispT<ISpline3D> ISpline3DDisp;

// *********************************************************************//
// SmartIntf: TCOMILocalCoordinateSystems
// Interface: ILocalCoordinateSystems
// *********************************************************************//
template <class T /* ILocalCoordinateSystems */ >
class TCOMILocalCoordinateSystemsT : public TComInterface<ILocalCoordinateSystems>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILocalCoordinateSystemsT() {}
  TCOMILocalCoordinateSystemsT(ILocalCoordinateSystems *intf, bool addRef = false) : TComInterface<ILocalCoordinateSystems>(intf, addRef) {}
  TCOMILocalCoordinateSystemsT(const TCOMILocalCoordinateSystemsT& src) : TComInterface<ILocalCoordinateSystems>(src) {}
  TCOMILocalCoordinateSystemsT& operator=(const TCOMILocalCoordinateSystemsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall Add(void);
  HRESULT         __fastcall get_Current(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Current(void);
  HRESULT         __fastcall SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/);

  __property   Kompasltapi7_tlb::IModelObjectPtr Current = {read = get_Current};
};
typedef TCOMILocalCoordinateSystemsT<ILocalCoordinateSystems> TCOMILocalCoordinateSystems;

// *********************************************************************//
// DispIntf:  ILocalCoordinateSystems
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CC04CBF6-F0D4-456E-903A-C0B0D3551368}
// *********************************************************************//
template<class T>
class ILocalCoordinateSystemsDispT : public TAutoDriver<ILocalCoordinateSystems>
{
public:
  ILocalCoordinateSystemsDispT(){}

  ILocalCoordinateSystemsDispT(ILocalCoordinateSystems *pintf)
  {
    TAutoDriver<ILocalCoordinateSystems>::Bind(pintf, false);
  }

  ILocalCoordinateSystemsDispT(ILocalCoordinateSystemsPtr pintf)
  {
    TAutoDriver<ILocalCoordinateSystems>::Bind(pintf, true);
  }

  ILocalCoordinateSystemsDispT& operator=(ILocalCoordinateSystems *pintf)
  {
    TAutoDriver<ILocalCoordinateSystems>::Bind(pintf, false);
    return *this;
  }

  ILocalCoordinateSystemsDispT& operator=(ILocalCoordinateSystemsPtr pintf)
  {
    TAutoDriver<ILocalCoordinateSystems>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LocalCoordinateSystems));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LocalCoordinateSystems);
  }

  HRESULT         __fastcall get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/, 
                                                       Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall Add(void);
  HRESULT         __fastcall get_Current(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Current(void);
  HRESULT         __fastcall SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr Current = {read = get_Current};


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILocalCoordinateSystemsDispT<ILocalCoordinateSystems> ILocalCoordinateSystemsDisp;

typedef TComInterface<IAuxiliaryGeomContainer>  TCOMIAuxiliaryGeomContainer;

// *********************************************************************//
// DispIntf:  IAuxiliaryGeomContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {950FEBE2-F916-4E77-A37D-B061E5C22FA8}
// *********************************************************************//
template<class T>
class IAuxiliaryGeomContainerDispT : public TAutoDriver<IAuxiliaryGeomContainer>
{
public:
  IAuxiliaryGeomContainerDispT(){}

  IAuxiliaryGeomContainerDispT(IAuxiliaryGeomContainer *pintf)
  {
    TAutoDriver<IAuxiliaryGeomContainer>::Bind(pintf, false);
  }

  IAuxiliaryGeomContainerDispT(IAuxiliaryGeomContainerPtr pintf)
  {
    TAutoDriver<IAuxiliaryGeomContainer>::Bind(pintf, true);
  }

  IAuxiliaryGeomContainerDispT& operator=(IAuxiliaryGeomContainer *pintf)
  {
    TAutoDriver<IAuxiliaryGeomContainer>::Bind(pintf, false);
    return *this;
  }

  IAuxiliaryGeomContainerDispT& operator=(IAuxiliaryGeomContainerPtr pintf)
  {
    TAutoDriver<IAuxiliaryGeomContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_LocalCoordinateSystems(Kompasltapi7_tlb::ILocalCoordinateSystemsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILocalCoordinateSystemsPtr __fastcall get_LocalCoordinateSystems(void);
  HRESULT         __fastcall get_Splines3D(Kompasltapi7_tlb::ISplines3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISplines3DPtr __fastcall get_Splines3D(void);
  HRESULT         __fastcall get_PolyLines(Kompasltapi7_tlb::IPolyLinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLinesPtr __fastcall get_PolyLines(void);
  HRESULT         __fastcall get_ControlPoints(Kompasltapi7_tlb::IControlPointsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IControlPointsPtr __fastcall get_ControlPoints(void);
  HRESULT         __fastcall get_ConjunctivePoints(Kompasltapi7_tlb::IConjunctivePointsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IConjunctivePointsPtr __fastcall get_ConjunctivePoints(void);
  HRESULT         __fastcall get_SplitLines(Kompasltapi7_tlb::ISplitLinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISplitLinesPtr __fastcall get_SplitLines(void);
  HRESULT         __fastcall get_SurfacesIntersectionCurves(Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr __fastcall get_SurfacesIntersectionCurves(void);
  HRESULT         __fastcall get_Equidistants3D(Kompasltapi7_tlb::IEquidistants3DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistants3DPtr __fastcall get_Equidistants3D(void);

  __property   Kompasltapi7_tlb::ILocalCoordinateSystemsPtr LocalCoordinateSystems = {read = get_LocalCoordinateSystems};
  __property   Kompasltapi7_tlb::ISplines3DPtr Splines3D = {read = get_Splines3D};
  __property   Kompasltapi7_tlb::IPolyLinesPtr PolyLines = {read = get_PolyLines};
  __property   Kompasltapi7_tlb::IControlPointsPtr ControlPoints = {read = get_ControlPoints};
  __property   Kompasltapi7_tlb::IConjunctivePointsPtr ConjunctivePoints = {read = get_ConjunctivePoints};
  __property   Kompasltapi7_tlb::ISplitLinesPtr SplitLines = {read = get_SplitLines};
  __property   Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr SurfacesIntersectionCurves = {read = get_SurfacesIntersectionCurves};
  __property   Kompasltapi7_tlb::IEquidistants3DPtr Equidistants3D = {read = get_Equidistants3D};
};
typedef IAuxiliaryGeomContainerDispT<IAuxiliaryGeomContainer> IAuxiliaryGeomContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMIPolyLines
// Interface: IPolyLines
// *********************************************************************//
template <class T /* IPolyLines */ >
class TCOMIPolyLinesT : public TComInterface<IPolyLines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPolyLinesT() {}
  TCOMIPolyLinesT(IPolyLines *intf, bool addRef = false) : TComInterface<IPolyLines>(intf, addRef) {}
  TCOMIPolyLinesT(const TCOMIPolyLinesT& src) : TComInterface<IPolyLines>(src) {}
  TCOMIPolyLinesT& operator=(const TCOMIPolyLinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_PolyLine(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLinePtr __fastcall get_PolyLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLinePtr __fastcall Add(void);

};
typedef TCOMIPolyLinesT<IPolyLines> TCOMIPolyLines;

// *********************************************************************//
// DispIntf:  IPolyLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0CF9B989-29F8-495F-9DDA-8C2CAD840BB6}
// *********************************************************************//
template<class T>
class IPolyLinesDispT : public TAutoDriver<IPolyLines>
{
public:
  IPolyLinesDispT(){}

  IPolyLinesDispT(IPolyLines *pintf)
  {
    TAutoDriver<IPolyLines>::Bind(pintf, false);
  }

  IPolyLinesDispT(IPolyLinesPtr pintf)
  {
    TAutoDriver<IPolyLines>::Bind(pintf, true);
  }

  IPolyLinesDispT& operator=(IPolyLines *pintf)
  {
    TAutoDriver<IPolyLines>::Bind(pintf, false);
    return *this;
  }

  IPolyLinesDispT& operator=(IPolyLinesPtr pintf)
  {
    TAutoDriver<IPolyLines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PolyLines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PolyLines);
  }

  HRESULT         __fastcall get_PolyLine(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLinePtr __fastcall get_PolyLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPolyLinesDispT<IPolyLines> IPolyLinesDisp;

// *********************************************************************//
// SmartIntf: TCOMIPolyLine
// Interface: IPolyLine
// *********************************************************************//
template <class T /* IPolyLine */ >
class TCOMIPolyLineT : public TComInterface<IPolyLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPolyLineT() {}
  TCOMIPolyLineT(IPolyLine *intf, bool addRef = false) : TComInterface<IPolyLine>(intf, addRef) {}
  TCOMIPolyLineT(const TCOMIPolyLineT& src) : TComInterface<IPolyLine>(src) {}
  TCOMIPolyLineT& operator=(const TCOMIPolyLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall set_VertexVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_VertexVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VertexVisible(void);
  HRESULT         __fastcall get_VertexCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VertexCount(void);
  HRESULT         __fastcall get_Edges(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Edges(void);
  HRESULT         __fastcall get_VertexParams(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall get_VertexParams(long Index/*[in]*/);
  HRESULT         __fastcall ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall AddVertex(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall AddVertex(long Index/*[in]*/);
  HRESULT         __fastcall DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteVertex(long Index/*[in]*/);
  HRESULT         __fastcall Flush(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Flush(void);
  HRESULT         __fastcall get_VertexParamsArray(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_VertexParamsArray(void);
  HRESULT         __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Radiuses/*[out]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Radiuses/*[out]*/);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   TOLEBOOL        VertexVisible = {read = get_VertexVisible, write = set_VertexVisible};
  __property   long            VertexCount = {read = get_VertexCount};
};
typedef TCOMIPolyLineT<IPolyLine> TCOMIPolyLine;

// *********************************************************************//
// DispIntf:  IPolyLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6CE7843D-9AFA-48FF-B444-61CDF036D118}
// *********************************************************************//
template<class T>
class IPolyLineDispT : public TAutoDriver<IPolyLine>
{
public:
  IPolyLineDispT(){}

  IPolyLineDispT(IPolyLine *pintf)
  {
    TAutoDriver<IPolyLine>::Bind(pintf, false);
  }

  IPolyLineDispT(IPolyLinePtr pintf)
  {
    TAutoDriver<IPolyLine>::Bind(pintf, true);
  }

  IPolyLineDispT& operator=(IPolyLine *pintf)
  {
    TAutoDriver<IPolyLine>::Bind(pintf, false);
    return *this;
  }

  IPolyLineDispT& operator=(IPolyLinePtr pintf)
  {
    TAutoDriver<IPolyLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PolyLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PolyLine);
  }

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall set_VertexVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_VertexVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VertexVisible(void);
  HRESULT         __fastcall get_VertexCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VertexCount(void);
  HRESULT         __fastcall get_Edges(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Edges(void);
  HRESULT         __fastcall get_VertexParams(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall get_VertexParams(long Index/*[in]*/);
  HRESULT         __fastcall ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ReadFromFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall WriteToFile(BSTR FileName/*[in]*/);
  HRESULT         __fastcall AddVertex(long Index/*[in]*/, 
                                       Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall AddVertex(long Index/*[in]*/);
  HRESULT         __fastcall DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteVertex(long Index/*[in]*/);
  HRESULT         __fastcall Flush(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Flush(void);
  HRESULT         __fastcall get_VertexParamsArray(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_VertexParamsArray(void);
  HRESULT         __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Radiuses/*[out]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                                       TVariant* Radiuses/*[out]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   TOLEBOOL        VertexVisible = {read = get_VertexVisible, write = set_VertexVisible};
  __property   long            VertexCount = {read = get_VertexCount};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPolyLineDispT<IPolyLine> IPolyLineDisp;

// *********************************************************************//
// SmartIntf: TCOMIControlPoints
// Interface: IControlPoints
// *********************************************************************//
template <class T /* IControlPoints */ >
class TCOMIControlPointsT : public TComInterface<IControlPoints>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIControlPointsT() {}
  TCOMIControlPointsT(IControlPoints *intf, bool addRef = false) : TComInterface<IControlPoints>(intf, addRef) {}
  TCOMIControlPointsT(const TCOMIControlPointsT& src) : TComInterface<IControlPoints>(src) {}
  TCOMIControlPointsT& operator=(const TCOMIControlPointsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ControlPoint(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IControlPointPtr __fastcall get_ControlPoint(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IControlPointPtr __fastcall Add(void);

};
typedef TCOMIControlPointsT<IControlPoints> TCOMIControlPoints;

// *********************************************************************//
// DispIntf:  IControlPoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E22E30F6-05EE-4FB5-9EEB-E288234F256A}
// *********************************************************************//
template<class T>
class IControlPointsDispT : public TAutoDriver<IControlPoints>
{
public:
  IControlPointsDispT(){}

  IControlPointsDispT(IControlPoints *pintf)
  {
    TAutoDriver<IControlPoints>::Bind(pintf, false);
  }

  IControlPointsDispT(IControlPointsPtr pintf)
  {
    TAutoDriver<IControlPoints>::Bind(pintf, true);
  }

  IControlPointsDispT& operator=(IControlPoints *pintf)
  {
    TAutoDriver<IControlPoints>::Bind(pintf, false);
    return *this;
  }

  IControlPointsDispT& operator=(IControlPointsPtr pintf)
  {
    TAutoDriver<IControlPoints>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ControlPoints));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ControlPoints);
  }

  HRESULT         __fastcall get_ControlPoint(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IControlPointPtr __fastcall get_ControlPoint(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IControlPointPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IControlPointsDispT<IControlPoints> IControlPointsDisp;

// *********************************************************************//
// SmartIntf: TCOMIControlPoint
// Interface: IControlPoint
// *********************************************************************//
template <class T /* IControlPoint */ >
class TCOMIControlPointT : public TComInterface<IControlPoint>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIControlPointT() {}
  TCOMIControlPointT(IControlPoint *intf, bool addRef = false) : TComInterface<IControlPoint>(intf, addRef) {}
  TCOMIControlPointT(const TCOMIControlPointT& src) : TComInterface<IControlPoint>(src) {}
  TCOMIControlPointT& operator=(const TCOMIControlPointT& src) { Bind(src, true); return *this;}


};
typedef TCOMIControlPointT<IControlPoint> TCOMIControlPoint;

// *********************************************************************//
// DispIntf:  IControlPoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {39F4FC2C-99E7-411B-9036-9C756A71E211}
// *********************************************************************//
template<class T>
class IControlPointDispT : public TAutoDriver<IControlPoint>
{
public:
  IControlPointDispT(){}

  IControlPointDispT(IControlPoint *pintf)
  {
    TAutoDriver<IControlPoint>::Bind(pintf, false);
  }

  IControlPointDispT(IControlPointPtr pintf)
  {
    TAutoDriver<IControlPoint>::Bind(pintf, true);
  }

  IControlPointDispT& operator=(IControlPoint *pintf)
  {
    TAutoDriver<IControlPoint>::Bind(pintf, false);
    return *this;
  }

  IControlPointDispT& operator=(IControlPointPtr pintf)
  {
    TAutoDriver<IControlPoint>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ControlPoint));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ControlPoint);
  }

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Z(double PVal/*[in]*/);
  HRESULT         __fastcall get_Z(double* PVal/*[out,retval]*/);
  double          __fastcall get_Z(void);
  HRESULT         __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationObject(void);
  HRESULT         __fastcall set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/);
  ksAnnotationSymbolEnum __fastcall get_Symbol(void);
  HRESULT         __fastcall set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DTypeEnum __fastcall get_ParameterType(void);
  HRESULT         __fastcall get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parameters(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Z = {read = get_Z, write = set_Z};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationObject = {read = get_AssociationObject};
  __property   ksAnnotationSymbolEnum Symbol = {read = get_Symbol, write = set_Symbol};
  __property   ksPoint3DTypeEnum ParameterType = {read = get_ParameterType, write = set_ParameterType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parameters = {read = get_Parameters};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IControlPointDispT<IControlPoint> IControlPointDisp;

// *********************************************************************//
// SmartIntf: TCOMIConjunctivePoints
// Interface: IConjunctivePoints
// *********************************************************************//
template <class T /* IConjunctivePoints */ >
class TCOMIConjunctivePointsT : public TComInterface<IConjunctivePoints>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIConjunctivePointsT() {}
  TCOMIConjunctivePointsT(IConjunctivePoints *intf, bool addRef = false) : TComInterface<IConjunctivePoints>(intf, addRef) {}
  TCOMIConjunctivePointsT(const TCOMIConjunctivePointsT& src) : TComInterface<IConjunctivePoints>(src) {}
  TCOMIConjunctivePointsT& operator=(const TCOMIConjunctivePointsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ConjunctivePoint(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IConjunctivePointPtr __fastcall get_ConjunctivePoint(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IConjunctivePointPtr __fastcall Add(void);

};
typedef TCOMIConjunctivePointsT<IConjunctivePoints> TCOMIConjunctivePoints;

// *********************************************************************//
// DispIntf:  IConjunctivePoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4DF343A0-8744-429D-A605-0EEABB7B5F23}
// *********************************************************************//
template<class T>
class IConjunctivePointsDispT : public TAutoDriver<IConjunctivePoints>
{
public:
  IConjunctivePointsDispT(){}

  IConjunctivePointsDispT(IConjunctivePoints *pintf)
  {
    TAutoDriver<IConjunctivePoints>::Bind(pintf, false);
  }

  IConjunctivePointsDispT(IConjunctivePointsPtr pintf)
  {
    TAutoDriver<IConjunctivePoints>::Bind(pintf, true);
  }

  IConjunctivePointsDispT& operator=(IConjunctivePoints *pintf)
  {
    TAutoDriver<IConjunctivePoints>::Bind(pintf, false);
    return *this;
  }

  IConjunctivePointsDispT& operator=(IConjunctivePointsPtr pintf)
  {
    TAutoDriver<IConjunctivePoints>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ConjunctivePoints));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ConjunctivePoints);
  }

  HRESULT         __fastcall get_ConjunctivePoint(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IConjunctivePointPtr __fastcall get_ConjunctivePoint(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IConjunctivePointPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IConjunctivePointsDispT<IConjunctivePoints> IConjunctivePointsDisp;

// *********************************************************************//
// SmartIntf: TCOMIConjunctivePoint
// Interface: IConjunctivePoint
// *********************************************************************//
template <class T /* IConjunctivePoint */ >
class TCOMIConjunctivePointT : public TComInterface<IConjunctivePoint>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIConjunctivePointT() {}
  TCOMIConjunctivePointT(IConjunctivePoint *intf, bool addRef = false) : TComInterface<IConjunctivePoint>(intf, addRef) {}
  TCOMIConjunctivePointT(const TCOMIConjunctivePointT& src) : TComInterface<IConjunctivePoint>(src) {}
  TCOMIConjunctivePointT& operator=(const TCOMIConjunctivePointT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_DirectionObject1(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectionObject1(void);
  HRESULT         __fastcall SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_DirectionObject2(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectionObject2(void);
  HRESULT         __fastcall get_Direction1(TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction1(void);
  HRESULT         __fastcall set_Direction1(TOLEBOOL Val/*[in]*/);
  HRESULT         __fastcall get_Direction2(TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction2(void);
  HRESULT         __fastcall set_Direction2(TOLEBOOL Val/*[in]*/);
  HRESULT         __fastcall get_Axis(ksObj3dTypeEnum Val/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Axis(ksObj3dTypeEnum Val/*[in]*/);

  __property   Kompasltapi7_tlb::IModelObjectPtr DirectionObject1 = {read = get_DirectionObject1};
  __property   Kompasltapi7_tlb::IModelObjectPtr DirectionObject2 = {read = get_DirectionObject2};
  __property   TOLEBOOL        Direction1 = {read = get_Direction1, write = set_Direction1};
  __property   TOLEBOOL        Direction2 = {read = get_Direction2, write = set_Direction2};
};
typedef TCOMIConjunctivePointT<IConjunctivePoint> TCOMIConjunctivePoint;

// *********************************************************************//
// DispIntf:  IConjunctivePoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BC7AD518-9599-490B-9E2B-9711FD9B8D4C}
// *********************************************************************//
template<class T>
class IConjunctivePointDispT : public TAutoDriver<IConjunctivePoint>
{
public:
  IConjunctivePointDispT(){}

  IConjunctivePointDispT(IConjunctivePoint *pintf)
  {
    TAutoDriver<IConjunctivePoint>::Bind(pintf, false);
  }

  IConjunctivePointDispT(IConjunctivePointPtr pintf)
  {
    TAutoDriver<IConjunctivePoint>::Bind(pintf, true);
  }

  IConjunctivePointDispT& operator=(IConjunctivePoint *pintf)
  {
    TAutoDriver<IConjunctivePoint>::Bind(pintf, false);
    return *this;
  }

  IConjunctivePointDispT& operator=(IConjunctivePointPtr pintf)
  {
    TAutoDriver<IConjunctivePoint>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ConjunctivePoint));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ConjunctivePoint);
  }

  HRESULT         __fastcall SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_DirectionObject1(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectionObject1(void);
  HRESULT         __fastcall SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_DirectionObject2(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectionObject2(void);
  HRESULT         __fastcall get_Direction1(TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction1(void);
  HRESULT         __fastcall set_Direction1(TOLEBOOL Val/*[in]*/);
  HRESULT         __fastcall get_Direction2(TOLEBOOL* Val/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction2(void);
  HRESULT         __fastcall set_Direction2(TOLEBOOL Val/*[in]*/);
  HRESULT         __fastcall get_Axis(ksObj3dTypeEnum Val/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Axis(ksObj3dTypeEnum Val/*[in]*/);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Z(double PVal/*[in]*/);
  HRESULT         __fastcall get_Z(double* PVal/*[out,retval]*/);
  double          __fastcall get_Z(void);
  HRESULT         __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/);
  HRESULT         __fastcall get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_AssociationObject(void);
  HRESULT         __fastcall set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/);
  ksAnnotationSymbolEnum __fastcall get_Symbol(void);
  HRESULT         __fastcall set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/);
  ksPoint3DTypeEnum __fastcall get_ParameterType(void);
  HRESULT         __fastcall get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parameters(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr DirectionObject1 = {read = get_DirectionObject1};
  __property   Kompasltapi7_tlb::IModelObjectPtr DirectionObject2 = {read = get_DirectionObject2};
  __property   TOLEBOOL        Direction1 = {read = get_Direction1, write = set_Direction1};
  __property   TOLEBOOL        Direction2 = {read = get_Direction2, write = set_Direction2};

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Z = {read = get_Z, write = set_Z};
  __property   Kompasltapi7_tlb::IModelObjectPtr AssociationObject = {read = get_AssociationObject};
  __property   ksAnnotationSymbolEnum Symbol = {read = get_Symbol, write = set_Symbol};
  __property   ksPoint3DTypeEnum ParameterType = {read = get_ParameterType, write = set_ParameterType};
  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parameters = {read = get_Parameters};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IConjunctivePointDispT<IConjunctivePoint> IConjunctivePointDisp;

// *********************************************************************//
// SmartIntf: TCOMISplitLines
// Interface: ISplitLines
// *********************************************************************//
template <class T /* ISplitLines */ >
class TCOMISplitLinesT : public TComInterface<ISplitLines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISplitLinesT() {}
  TCOMISplitLinesT(ISplitLines *intf, bool addRef = false) : TComInterface<ISplitLines>(intf, addRef) {}
  TCOMISplitLinesT(const TCOMISplitLinesT& src) : TComInterface<ISplitLines>(src) {}
  TCOMISplitLinesT& operator=(const TCOMISplitLinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SplitLine(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISplitLinePtr __fastcall get_SplitLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISplitLinePtr __fastcall Add(void);

};
typedef TCOMISplitLinesT<ISplitLines> TCOMISplitLines;

// *********************************************************************//
// DispIntf:  ISplitLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {986E4A45-362F-469D-A3AE-CE081B8EA93A}
// *********************************************************************//
template<class T>
class ISplitLinesDispT : public TAutoDriver<ISplitLines>
{
public:
  ISplitLinesDispT(){}

  ISplitLinesDispT(ISplitLines *pintf)
  {
    TAutoDriver<ISplitLines>::Bind(pintf, false);
  }

  ISplitLinesDispT(ISplitLinesPtr pintf)
  {
    TAutoDriver<ISplitLines>::Bind(pintf, true);
  }

  ISplitLinesDispT& operator=(ISplitLines *pintf)
  {
    TAutoDriver<ISplitLines>::Bind(pintf, false);
    return *this;
  }

  ISplitLinesDispT& operator=(ISplitLinesPtr pintf)
  {
    TAutoDriver<ISplitLines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SplitLines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SplitLines);
  }

  HRESULT         __fastcall get_SplitLine(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISplitLinePtr __fastcall get_SplitLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISplitLinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISplitLinesDispT<ISplitLines> ISplitLinesDisp;

// *********************************************************************//
// SmartIntf: TCOMISplitLine
// Interface: ISplitLine
// *********************************************************************//
template <class T /* ISplitLine */ >
class TCOMISplitLineT : public TComInterface<ISplitLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISplitLineT() {}
  TCOMISplitLineT(ISplitLine *intf, bool addRef = false) : TComInterface<ISplitLine>(intf, addRef) {}
  TCOMISplitLineT(const TCOMISplitLineT& src) : TComInterface<ISplitLine>(src) {}
  TCOMISplitLineT& operator=(const TCOMISplitLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall get_Faces(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Faces(void);
  HRESULT         __fastcall set_Faces(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall set_Direction(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_Direction(void);

  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};
};
typedef TCOMISplitLineT<ISplitLine> TCOMISplitLine;

// *********************************************************************//
// DispIntf:  ISplitLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {969B49D1-E660-4E94-9343-DE5B0F397B03}
// *********************************************************************//
template<class T>
class ISplitLineDispT : public TAutoDriver<ISplitLine>
{
public:
  ISplitLineDispT(){}

  ISplitLineDispT(ISplitLine *pintf)
  {
    TAutoDriver<ISplitLine>::Bind(pintf, false);
  }

  ISplitLineDispT(ISplitLinePtr pintf)
  {
    TAutoDriver<ISplitLine>::Bind(pintf, true);
  }

  ISplitLineDispT& operator=(ISplitLine *pintf)
  {
    TAutoDriver<ISplitLine>::Bind(pintf, false);
    return *this;
  }

  ISplitLineDispT& operator=(ISplitLinePtr pintf)
  {
    TAutoDriver<ISplitLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SplitLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SplitLine);
  }

  HRESULT         __fastcall set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/);
  HRESULT         __fastcall get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISketchPtr __fastcall get_Sketch(void);
  HRESULT         __fastcall get_Faces(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Faces(void);
  HRESULT         __fastcall set_Faces(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall set_Direction(ksDirectionTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/);
  ksDirectionTypeEnum __fastcall get_Direction(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::ISketchPtr Sketch = {read = get_Sketch, write = set_Sketch};
  __property   ksDirectionTypeEnum Direction = {read = get_Direction, write = set_Direction};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISplitLineDispT<ISplitLine> ISplitLineDisp;

// *********************************************************************//
// SmartIntf: TCOMISurfacesIntersectionCurves
// Interface: ISurfacesIntersectionCurves
// *********************************************************************//
template <class T /* ISurfacesIntersectionCurves */ >
class TCOMISurfacesIntersectionCurvesT : public TComInterface<ISurfacesIntersectionCurves>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISurfacesIntersectionCurvesT() {}
  TCOMISurfacesIntersectionCurvesT(ISurfacesIntersectionCurves *intf, bool addRef = false) : TComInterface<ISurfacesIntersectionCurves>(intf, addRef) {}
  TCOMISurfacesIntersectionCurvesT(const TCOMISurfacesIntersectionCurvesT& src) : TComInterface<ISurfacesIntersectionCurves>(src) {}
  TCOMISurfacesIntersectionCurvesT& operator=(const TCOMISurfacesIntersectionCurvesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/, 
                                                           Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall Add(void);

};
typedef TCOMISurfacesIntersectionCurvesT<ISurfacesIntersectionCurves> TCOMISurfacesIntersectionCurves;

// *********************************************************************//
// DispIntf:  ISurfacesIntersectionCurves
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {453E0E34-4D2D-47B2-8E95-EB05C731961D}
// *********************************************************************//
template<class T>
class ISurfacesIntersectionCurvesDispT : public TAutoDriver<ISurfacesIntersectionCurves>
{
public:
  ISurfacesIntersectionCurvesDispT(){}

  ISurfacesIntersectionCurvesDispT(ISurfacesIntersectionCurves *pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurves>::Bind(pintf, false);
  }

  ISurfacesIntersectionCurvesDispT(ISurfacesIntersectionCurvesPtr pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurves>::Bind(pintf, true);
  }

  ISurfacesIntersectionCurvesDispT& operator=(ISurfacesIntersectionCurves *pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurves>::Bind(pintf, false);
    return *this;
  }

  ISurfacesIntersectionCurvesDispT& operator=(ISurfacesIntersectionCurvesPtr pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurves>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SurfacesIntersectionCurves));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SurfacesIntersectionCurves);
  }

  HRESULT         __fastcall get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/, 
                                                           Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISurfacesIntersectionCurvesDispT<ISurfacesIntersectionCurves> ISurfacesIntersectionCurvesDisp;

// *********************************************************************//
// SmartIntf: TCOMISurfacesIntersectionCurve
// Interface: ISurfacesIntersectionCurve
// *********************************************************************//
template <class T /* ISurfacesIntersectionCurve */ >
class TCOMISurfacesIntersectionCurveT : public TComInterface<ISurfacesIntersectionCurve>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISurfacesIntersectionCurveT() {}
  TCOMISurfacesIntersectionCurveT(ISurfacesIntersectionCurve *intf, bool addRef = false) : TComInterface<ISurfacesIntersectionCurve>(intf, addRef) {}
  TCOMISurfacesIntersectionCurveT(const TCOMISurfacesIntersectionCurveT& src) : TComInterface<ISurfacesIntersectionCurve>(src) {}
  TCOMISurfacesIntersectionCurveT& operator=(const TCOMISurfacesIntersectionCurveT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                        TVariantInParam ObjectsArray2/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                        TVariantInParam ObjectsArray2/*[in]*/);
  HRESULT         __fastcall GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                        TVariant* ObjectsArray2/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                        TVariant* ObjectsArray2/*[out]*/);
  HRESULT         __fastcall AddObjects(TOLEBOOL ForArray1/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddObjects(TOLEBOOL ForArray1/*[in]*/, TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL ForArray1/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(TOLEBOOL ForArray1/*[in]*/);
  HRESULT         __fastcall get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/, 
                                              long* Count/*[out,retval]*/);
  long            __fastcall get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/);
  HRESULT         __fastcall GetObject(TOLEBOOL ForArray1/*[in]*/, long Index/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall GetObject(TOLEBOOL ForArray1/*[in]*/, 
                                                         long Index/*[in]*/);
  HRESULT         __fastcall get_AutoCheck(TOLEBOOL* CheckValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoCheck(void);
  HRESULT         __fastcall set_AutoCheck(TOLEBOOL CheckValue/*[in]*/);
  HRESULT         __fastcall get_EdgesChecks(TVariant* Checks/*[out,retval]*/);
  TVariant        __fastcall get_EdgesChecks(void);
  HRESULT         __fastcall set_EdgesChecks(TVariantInParam Checks/*[in]*/);
  HRESULT         __fastcall get_EdgesArraysCount(long* Count/*[out,retval]*/);
  long            __fastcall get_EdgesArraysCount(void);
  HRESULT         __fastcall get_Edges(long Index/*[in]*/, TVariant* Edges/*[out,retval]*/);
  TVariant        __fastcall get_Edges(long Index/*[in]*/);
  HRESULT         __fastcall get_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                            TOLEBOOL* CheckValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EdgesCheck(long EdgesArrayIndex/*[in]*/);
  HRESULT         __fastcall set_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                            TOLEBOOL CheckValue/*[in]*/);

  __property   TOLEBOOL        AutoCheck = {read = get_AutoCheck, write = set_AutoCheck};
  __property   long            EdgesArraysCount = {read = get_EdgesArraysCount};
};
typedef TCOMISurfacesIntersectionCurveT<ISurfacesIntersectionCurve> TCOMISurfacesIntersectionCurve;

// *********************************************************************//
// DispIntf:  ISurfacesIntersectionCurve
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {758420A0-BECB-4FDA-BDDE-1F398B41117C}
// *********************************************************************//
template<class T>
class ISurfacesIntersectionCurveDispT : public TAutoDriver<ISurfacesIntersectionCurve>
{
public:
  ISurfacesIntersectionCurveDispT(){}

  ISurfacesIntersectionCurveDispT(ISurfacesIntersectionCurve *pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurve>::Bind(pintf, false);
  }

  ISurfacesIntersectionCurveDispT(ISurfacesIntersectionCurvePtr pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurve>::Bind(pintf, true);
  }

  ISurfacesIntersectionCurveDispT& operator=(ISurfacesIntersectionCurve *pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurve>::Bind(pintf, false);
    return *this;
  }

  ISurfacesIntersectionCurveDispT& operator=(ISurfacesIntersectionCurvePtr pintf)
  {
    TAutoDriver<ISurfacesIntersectionCurve>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SurfacesIntersectionCurve));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SurfacesIntersectionCurve);
  }

  HRESULT         __fastcall SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                        TVariantInParam ObjectsArray2/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                        TVariantInParam ObjectsArray2/*[in]*/);
  HRESULT         __fastcall GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                        TVariant* ObjectsArray2/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                        TVariant* ObjectsArray2/*[out]*/);
  HRESULT         __fastcall AddObjects(TOLEBOOL ForArray1/*[in]*/, TVariantInParam Objects/*[in]*/
                                        , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddObjects(TOLEBOOL ForArray1/*[in]*/, TVariantInParam Objects/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL ForArray1/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(TOLEBOOL ForArray1/*[in]*/);
  HRESULT         __fastcall get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/, 
                                              long* Count/*[out,retval]*/);
  long            __fastcall get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/);
  HRESULT         __fastcall GetObject(TOLEBOOL ForArray1/*[in]*/, long Index/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall GetObject(TOLEBOOL ForArray1/*[in]*/, 
                                                         long Index/*[in]*/);
  HRESULT         __fastcall get_AutoCheck(TOLEBOOL* CheckValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoCheck(void);
  HRESULT         __fastcall set_AutoCheck(TOLEBOOL CheckValue/*[in]*/);
  HRESULT         __fastcall get_EdgesChecks(TVariant* Checks/*[out,retval]*/);
  TVariant        __fastcall get_EdgesChecks(void);
  HRESULT         __fastcall set_EdgesChecks(TVariantInParam Checks/*[in]*/);
  HRESULT         __fastcall get_EdgesArraysCount(long* Count/*[out,retval]*/);
  long            __fastcall get_EdgesArraysCount(void);
  HRESULT         __fastcall get_Edges(long Index/*[in]*/, TVariant* Edges/*[out,retval]*/);
  TVariant        __fastcall get_Edges(long Index/*[in]*/);
  HRESULT         __fastcall get_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                            TOLEBOOL* CheckValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_EdgesCheck(long EdgesArrayIndex/*[in]*/);
  HRESULT         __fastcall set_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                            TOLEBOOL CheckValue/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        AutoCheck = {read = get_AutoCheck, write = set_AutoCheck};
  __property   long            EdgesArraysCount = {read = get_EdgesArraysCount};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISurfacesIntersectionCurveDispT<ISurfacesIntersectionCurve> ISurfacesIntersectionCurveDisp;

// *********************************************************************//
// SmartIntf: TCOMIEquidistants3D
// Interface: IEquidistants3D
// *********************************************************************//
template <class T /* IEquidistants3D */ >
class TCOMIEquidistants3DT : public TComInterface<IEquidistants3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEquidistants3DT() {}
  TCOMIEquidistants3DT(IEquidistants3D *intf, bool addRef = false) : TComInterface<IEquidistants3D>(intf, addRef) {}
  TCOMIEquidistants3DT(const TCOMIEquidistants3DT& src) : TComInterface<IEquidistants3D>(src) {}
  TCOMIEquidistants3DT& operator=(const TCOMIEquidistants3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Equidistant3D(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistant3DPtr __fastcall get_Equidistant3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistant3DPtr __fastcall Add(void);

};
typedef TCOMIEquidistants3DT<IEquidistants3D> TCOMIEquidistants3D;

// *********************************************************************//
// DispIntf:  IEquidistants3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8B94F332-EEFD-4610-9C55-20A1F7336122}
// *********************************************************************//
template<class T>
class IEquidistants3DDispT : public TAutoDriver<IEquidistants3D>
{
public:
  IEquidistants3DDispT(){}

  IEquidistants3DDispT(IEquidistants3D *pintf)
  {
    TAutoDriver<IEquidistants3D>::Bind(pintf, false);
  }

  IEquidistants3DDispT(IEquidistants3DPtr pintf)
  {
    TAutoDriver<IEquidistants3D>::Bind(pintf, true);
  }

  IEquidistants3DDispT& operator=(IEquidistants3D *pintf)
  {
    TAutoDriver<IEquidistants3D>::Bind(pintf, false);
    return *this;
  }

  IEquidistants3DDispT& operator=(IEquidistants3DPtr pintf)
  {
    TAutoDriver<IEquidistants3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Equidistants3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Equidistants3D);
  }

  HRESULT         __fastcall get_Equidistant3D(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistant3DPtr __fastcall get_Equidistant3D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistant3DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEquidistants3DDispT<IEquidistants3D> IEquidistants3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIEquidistant3D
// Interface: IEquidistant3D
// *********************************************************************//
template <class T /* IEquidistant3D */ >
class TCOMIEquidistant3DT : public TComInterface<IEquidistant3D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEquidistant3DT() {}
  TCOMIEquidistant3DT(IEquidistant3D *intf, bool addRef = false) : TComInterface<IEquidistant3D>(intf, addRef) {}
  TCOMIEquidistant3DT(const TCOMIEquidistant3DT& src) : TComInterface<IEquidistant3D>(src) {}
  TCOMIEquidistant3DT& operator=(const TCOMIEquidistant3DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Edges(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Edges(void);
  HRESULT         __fastcall set_Edges(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall set_OnFace(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_OnFace(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_OnFace(void);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Distance(double PVal/*[in]*/);
  HRESULT         __fastcall get_Distance(double* PVal/*[out,retval]*/);
  double          __fastcall get_Distance(void);
  HRESULT         __fastcall set_CutMode(ksEquidistant3DCutModeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CutMode(ksEquidistant3DCutModeEnum* PVal/*[out,retval]*/);
  ksEquidistant3DCutModeEnum __fastcall get_CutMode(void);
  HRESULT         __fastcall set_KeepRadius(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_KeepRadius(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_KeepRadius(void);
  HRESULT         __fastcall set_DirFromBegin(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DirFromBegin(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DirFromBegin(void);

  __property   TOLEBOOL        OnFace = {read = get_OnFace, write = set_OnFace};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Distance = {read = get_Distance, write = set_Distance};
  __property   ksEquidistant3DCutModeEnum CutMode = {read = get_CutMode, write = set_CutMode};
  __property   TOLEBOOL        KeepRadius = {read = get_KeepRadius, write = set_KeepRadius};
  __property   TOLEBOOL        DirFromBegin = {read = get_DirFromBegin, write = set_DirFromBegin};
};
typedef TCOMIEquidistant3DT<IEquidistant3D> TCOMIEquidistant3D;

// *********************************************************************//
// DispIntf:  IEquidistant3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C25DDBF4-3CC1-467D-B996-E30ED4D529B6}
// *********************************************************************//
template<class T>
class IEquidistant3DDispT : public TAutoDriver<IEquidistant3D>
{
public:
  IEquidistant3DDispT(){}

  IEquidistant3DDispT(IEquidistant3D *pintf)
  {
    TAutoDriver<IEquidistant3D>::Bind(pintf, false);
  }

  IEquidistant3DDispT(IEquidistant3DPtr pintf)
  {
    TAutoDriver<IEquidistant3D>::Bind(pintf, true);
  }

  IEquidistant3DDispT& operator=(IEquidistant3D *pintf)
  {
    TAutoDriver<IEquidistant3D>::Bind(pintf, false);
    return *this;
  }

  IEquidistant3DDispT& operator=(IEquidistant3DPtr pintf)
  {
    TAutoDriver<IEquidistant3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Equidistant3D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Equidistant3D);
  }

  HRESULT         __fastcall get_Edges(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Edges(void);
  HRESULT         __fastcall set_Edges(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall set_OnFace(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_OnFace(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_OnFace(void);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Distance(double PVal/*[in]*/);
  HRESULT         __fastcall get_Distance(double* PVal/*[out,retval]*/);
  double          __fastcall get_Distance(void);
  HRESULT         __fastcall set_CutMode(ksEquidistant3DCutModeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_CutMode(ksEquidistant3DCutModeEnum* PVal/*[out,retval]*/);
  ksEquidistant3DCutModeEnum __fastcall get_CutMode(void);
  HRESULT         __fastcall set_KeepRadius(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_KeepRadius(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_KeepRadius(void);
  HRESULT         __fastcall set_DirFromBegin(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DirFromBegin(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DirFromBegin(void);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        OnFace = {read = get_OnFace, write = set_OnFace};
  __property   Kompasltapi7_tlb::IModelObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Distance = {read = get_Distance, write = set_Distance};
  __property   ksEquidistant3DCutModeEnum CutMode = {read = get_CutMode, write = set_CutMode};
  __property   TOLEBOOL        KeepRadius = {read = get_KeepRadius, write = set_KeepRadius};
  __property   TOLEBOOL        DirFromBegin = {read = get_DirFromBegin, write = set_DirFromBegin};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEquidistant3DDispT<IEquidistant3D> IEquidistant3DDisp;

// *********************************************************************//
// SmartIntf: TCOMILocalCSAxesDirectionParam
// Interface: ILocalCSAxesDirectionParam
// *********************************************************************//
template <class T /* ILocalCSAxesDirectionParam */ >
class TCOMILocalCSAxesDirectionParamT : public TComInterface<ILocalCSAxesDirectionParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILocalCSAxesDirectionParamT() {}
  TCOMILocalCSAxesDirectionParamT(ILocalCSAxesDirectionParam *intf, bool addRef = false) : TComInterface<ILocalCSAxesDirectionParam>(intf, addRef) {}
  TCOMILocalCSAxesDirectionParamT(const TCOMILocalCSAxesDirectionParamT& src) : TComInterface<ILocalCSAxesDirectionParam>(src) {}
  TCOMILocalCSAxesDirectionParamT& operator=(const TCOMILocalCSAxesDirectionParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                 Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/);
  HRESULT         __fastcall RotateAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RotateAxis(ksObj3dTypeEnum Axis/*[in]*/);
  HRESULT         __fastcall set_AngleByOwnAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                double Param2/*[in]*/);

};
typedef TCOMILocalCSAxesDirectionParamT<ILocalCSAxesDirectionParam> TCOMILocalCSAxesDirectionParam;

// *********************************************************************//
// DispIntf:  ILocalCSAxesDirectionParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {919DF6DB-0BA9-4EDD-B681-33E0B519834B}
// *********************************************************************//
template<class T>
class ILocalCSAxesDirectionParamDispT : public TAutoDriver<ILocalCSAxesDirectionParam>
{
public:
  ILocalCSAxesDirectionParamDispT(){}

  ILocalCSAxesDirectionParamDispT(ILocalCSAxesDirectionParam *pintf)
  {
    TAutoDriver<ILocalCSAxesDirectionParam>::Bind(pintf, false);
  }

  ILocalCSAxesDirectionParamDispT(ILocalCSAxesDirectionParamPtr pintf)
  {
    TAutoDriver<ILocalCSAxesDirectionParam>::Bind(pintf, true);
  }

  ILocalCSAxesDirectionParamDispT& operator=(ILocalCSAxesDirectionParam *pintf)
  {
    TAutoDriver<ILocalCSAxesDirectionParam>::Bind(pintf, false);
    return *this;
  }

  ILocalCSAxesDirectionParamDispT& operator=(ILocalCSAxesDirectionParamPtr pintf)
  {
    TAutoDriver<ILocalCSAxesDirectionParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LocalCSAxesDirectionParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LocalCSAxesDirectionParam);
  }

  HRESULT         __fastcall SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/
                                                , Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/
                                                 , 
                                                 Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/);
  HRESULT         __fastcall RotateAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall RotateAxis(ksObj3dTypeEnum Axis/*[in]*/);
  HRESULT         __fastcall set_AngleByOwnAxis(ksObj3dTypeEnum Axis/*[in]*/
                                                , double Param2/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILocalCSAxesDirectionParamDispT<ILocalCSAxesDirectionParam> ILocalCSAxesDirectionParamDisp;

// *********************************************************************//
// SmartIntf: TCOMILocalCSEulerParam
// Interface: ILocalCSEulerParam
// *********************************************************************//
template <class T /* ILocalCSEulerParam */ >
class TCOMILocalCSEulerParamT : public TComInterface<ILocalCSEulerParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILocalCSEulerParamT() {}
  TCOMILocalCSEulerParamT(ILocalCSEulerParam *intf, bool addRef = false) : TComInterface<ILocalCSEulerParam>(intf, addRef) {}
  TCOMILocalCSEulerParamT(const TCOMILocalCSEulerParamT& src) : TComInterface<ILocalCSEulerParam>(src) {}
  TCOMILocalCSEulerParamT& operator=(const TCOMILocalCSEulerParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_NutationAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_NutationAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_NutationAngle(void);
  HRESULT         __fastcall set_PrecessionAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_PrecessionAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_PrecessionAngle(void);
  HRESULT         __fastcall set_RotationAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_RotationAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_RotationAngle(void);

  __property   double          NutationAngle = {read = get_NutationAngle, write = set_NutationAngle};
  __property   double          PrecessionAngle = {read = get_PrecessionAngle, write = set_PrecessionAngle};
  __property   double          RotationAngle = {read = get_RotationAngle, write = set_RotationAngle};
};
typedef TCOMILocalCSEulerParamT<ILocalCSEulerParam> TCOMILocalCSEulerParam;

// *********************************************************************//
// DispIntf:  ILocalCSEulerParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AD261149-1455-49BD-BA0A-B1760A0C8CB0}
// *********************************************************************//
template<class T>
class ILocalCSEulerParamDispT : public TAutoDriver<ILocalCSEulerParam>
{
public:
  ILocalCSEulerParamDispT(){}

  ILocalCSEulerParamDispT(ILocalCSEulerParam *pintf)
  {
    TAutoDriver<ILocalCSEulerParam>::Bind(pintf, false);
  }

  ILocalCSEulerParamDispT(ILocalCSEulerParamPtr pintf)
  {
    TAutoDriver<ILocalCSEulerParam>::Bind(pintf, true);
  }

  ILocalCSEulerParamDispT& operator=(ILocalCSEulerParam *pintf)
  {
    TAutoDriver<ILocalCSEulerParam>::Bind(pintf, false);
    return *this;
  }

  ILocalCSEulerParamDispT& operator=(ILocalCSEulerParamPtr pintf)
  {
    TAutoDriver<ILocalCSEulerParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LocalCSEulerParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LocalCSEulerParam);
  }

  HRESULT         __fastcall set_NutationAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_NutationAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_NutationAngle(void);
  HRESULT         __fastcall set_PrecessionAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_PrecessionAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_PrecessionAngle(void);
  HRESULT         __fastcall set_RotationAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_RotationAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_RotationAngle(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          NutationAngle = {read = get_NutationAngle, write = set_NutationAngle};
  __property   double          PrecessionAngle = {read = get_PrecessionAngle, write = set_PrecessionAngle};
  __property   double          RotationAngle = {read = get_RotationAngle, write = set_RotationAngle};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILocalCSEulerParamDispT<ILocalCSEulerParam> ILocalCSEulerParamDisp;

typedef TComInterface<IRoughParams>  TCOMIRoughParams;

// *********************************************************************//
// DispIntf:  IRoughParams
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6C1943CE-8FDB-47D2-9B2F-95F7B851BE3D}
// *********************************************************************//
template<class T>
class IRoughParamsDispT : public TAutoDriver<IRoughParams>
{
public:
  IRoughParamsDispT(){}

  IRoughParamsDispT(IRoughParams *pintf)
  {
    TAutoDriver<IRoughParams>::Bind(pintf, false);
  }

  IRoughParamsDispT(IRoughParamsPtr pintf)
  {
    TAutoDriver<IRoughParams>::Bind(pintf, true);
  }

  IRoughParamsDispT& operator=(IRoughParams *pintf)
  {
    TAutoDriver<IRoughParams>::Bind(pintf, false);
    return *this;
  }

  IRoughParamsDispT& operator=(IRoughParamsPtr pintf)
  {
    TAutoDriver<IRoughParams>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_SignType(ksRoughSignEnum* Result/*[out,retval]*/);
  ksRoughSignEnum __fastcall get_SignType(void);
  HRESULT         __fastcall set_SignType(ksRoughSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_RoughParamText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_RoughParamText(void);
  HRESULT         __fastcall get_ProcessText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_ProcessText(void);
  HRESULT         __fastcall get_BaseLengthText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_BaseLengthText(void);
  HRESULT         __fastcall get_TrendText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TrendText(void);
  HRESULT         __fastcall get_ProcessingByContour(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ProcessingByContour(void);
  HRESULT         __fastcall set_ProcessingByContour(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_LeaderLength(double* Result/*[out,retval]*/);
  double          __fastcall get_LeaderLength(void);
  HRESULT         __fastcall set_LeaderLength(double Result/*[in]*/);
  HRESULT         __fastcall get_LeaderAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_LeaderAngle(void);
  HRESULT         __fastcall set_LeaderAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_ArrowType(ksArrowEnum* Result/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum Result/*[in]*/);
  HRESULT         __fastcall get_ArrowInside(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ArrowInside(void);
  HRESULT         __fastcall set_ArrowInside(TOLEBOOL Result/*[in]*/);

  __property   ksRoughSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   Kompasltapi7_tlb::ITextPtr RoughParamText = {read = get_RoughParamText};
  __property   Kompasltapi7_tlb::ITextPtr ProcessText = {read = get_ProcessText};
  __property   Kompasltapi7_tlb::ITextPtr BaseLengthText = {read = get_BaseLengthText};
  __property   Kompasltapi7_tlb::ITextPtr TrendText = {read = get_TrendText};
  __property   TOLEBOOL        ProcessingByContour = {read = get_ProcessingByContour, write = set_ProcessingByContour};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          LeaderLength = {read = get_LeaderLength, write = set_LeaderLength};
  __property   double          LeaderAngle = {read = get_LeaderAngle, write = set_LeaderAngle};
  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   TOLEBOOL        ArrowInside = {read = get_ArrowInside, write = set_ArrowInside};
};
typedef IRoughParamsDispT<IRoughParams> IRoughParamsDisp;

typedef TComInterface<IBranchs3D>  TCOMIBranchs3D;

// *********************************************************************//
// DispIntf:  IBranchs3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AFE08AEC-F751-42D9-A6F5-3C004E4D41A6}
// *********************************************************************//
template<class T>
class IBranchs3DDispT : public TAutoDriver<IBranchs3D>
{
public:
  IBranchs3DDispT(){}

  IBranchs3DDispT(IBranchs3D *pintf)
  {
    TAutoDriver<IBranchs3D>::Bind(pintf, false);
  }

  IBranchs3DDispT(IBranchs3DPtr pintf)
  {
    TAutoDriver<IBranchs3D>::Bind(pintf, true);
  }

  IBranchs3DDispT& operator=(IBranchs3D *pintf)
  {
    TAutoDriver<IBranchs3D>::Bind(pintf, false);
    return *this;
  }

  IBranchs3DDispT& operator=(IBranchs3DPtr pintf)
  {
    TAutoDriver<IBranchs3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_BranchCount(long* Result/*[out,retval]*/);
  long            __fastcall get_BranchCount(void);
  HRESULT         __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Z/*[out]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                                 double* Z/*[out]*/);
  HRESULT         __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Z/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                 double Z/*[in]*/);
  HRESULT         __fastcall GetBranchEndPoint(long Index/*[in]*/, double* X/*[out]*/, 
                                               double* Y/*[out]*/, double* Z/*[out]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBranchEndPoint(long Index/*[in]*/, double* X/*[out]*/, 
                                               double* Y/*[out]*/, double* Z/*[out]*/);
  HRESULT         __fastcall SetBranchEndPoint(long Index/*[in]*/, double X/*[in]*/, 
                                               double Y/*[in]*/, double Z/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetBranchEndPoint(long Index/*[in]*/, double X/*[in]*/, 
                                               double Y/*[in]*/, double Z/*[in]*/);
  HRESULT         __fastcall set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BranchPoints(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_BranchPointsCount(long Index/*[in]*/);
  HRESULT         __fastcall AddBranch(TVariantInParam Points/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr Object, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranch(TVariantInParam Points/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr Object);
  HRESULT         __fastcall AddBranchByPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr Object, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranchByPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr Object);
  HRESULT         __fastcall DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBranch(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchObject(long Index/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_BranchObject(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchObjects(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BranchObjects(void);
  HRESULT         __fastcall get_BranchEndPoints(TVariant* Points/*[out,retval]*/);
  TVariant        __fastcall get_BranchEndPoints(void);

  __property   long            BranchCount = {read = get_BranchCount};
};
typedef IBranchs3DDispT<IBranchs3D> IBranchs3DDisp;

// *********************************************************************//
// SmartIntf: TCOMILocalCSOrientByObjectParam
// Interface: ILocalCSOrientByObjectParam
// *********************************************************************//
template <class T /* ILocalCSOrientByObjectParam */ >
class TCOMILocalCSOrientByObjectParamT : public TComInterface<ILocalCSOrientByObjectParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILocalCSOrientByObjectParamT() {}
  TCOMILocalCSOrientByObjectParamT(ILocalCSOrientByObjectParam *intf, bool addRef = false) : TComInterface<ILocalCSOrientByObjectParam>(intf, addRef) {}
  TCOMILocalCSOrientByObjectParamT(const TCOMILocalCSOrientByObjectParamT& src) : TComInterface<ILocalCSOrientByObjectParam>(src) {}
  TCOMILocalCSOrientByObjectParamT& operator=(const TCOMILocalCSOrientByObjectParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_OrientationObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_OrientationObject(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr OrientationObject = {read = get_OrientationObject};
};
typedef TCOMILocalCSOrientByObjectParamT<ILocalCSOrientByObjectParam> TCOMILocalCSOrientByObjectParam;

// *********************************************************************//
// DispIntf:  ILocalCSOrientByObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {618485E7-D88A-4DCC-8896-7EA04D831DBB}
// *********************************************************************//
template<class T>
class ILocalCSOrientByObjectParamDispT : public TAutoDriver<ILocalCSOrientByObjectParam>
{
public:
  ILocalCSOrientByObjectParamDispT(){}

  ILocalCSOrientByObjectParamDispT(ILocalCSOrientByObjectParam *pintf)
  {
    TAutoDriver<ILocalCSOrientByObjectParam>::Bind(pintf, false);
  }

  ILocalCSOrientByObjectParamDispT(ILocalCSOrientByObjectParamPtr pintf)
  {
    TAutoDriver<ILocalCSOrientByObjectParam>::Bind(pintf, true);
  }

  ILocalCSOrientByObjectParamDispT& operator=(ILocalCSOrientByObjectParam *pintf)
  {
    TAutoDriver<ILocalCSOrientByObjectParam>::Bind(pintf, false);
    return *this;
  }

  ILocalCSOrientByObjectParamDispT& operator=(ILocalCSOrientByObjectParamPtr pintf)
  {
    TAutoDriver<ILocalCSOrientByObjectParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LocalCSOrientByObjectParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LocalCSOrientByObjectParam);
  }

  HRESULT         __fastcall SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/);
  HRESULT         __fastcall get_OrientationObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_OrientationObject(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IModelObjectPtr OrientationObject = {read = get_OrientationObject};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILocalCSOrientByObjectParamDispT<ILocalCSOrientByObjectParam> ILocalCSOrientByObjectParamDisp;

typedef TComInterface<ILocalCSObject>  TCOMILocalCSObject;

// *********************************************************************//
// DispIntf:  ILocalCSObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {116F7E59-F175-47D2-8346-EB3C87D60578}
// *********************************************************************//
template<class T>
class ILocalCSObjectDispT : public TAutoDriver<ILocalCSObject>
{
public:
  ILocalCSObjectDispT(){}

  ILocalCSObjectDispT(ILocalCSObject *pintf)
  {
    TAutoDriver<ILocalCSObject>::Bind(pintf, false);
  }

  ILocalCSObjectDispT(ILocalCSObjectPtr pintf)
  {
    TAutoDriver<ILocalCSObject>::Bind(pintf, true);
  }

  ILocalCSObjectDispT& operator=(ILocalCSObject *pintf)
  {
    TAutoDriver<ILocalCSObject>::Bind(pintf, false);
    return *this;
  }

  ILocalCSObjectDispT& operator=(ILocalCSObjectPtr pintf)
  {
    TAutoDriver<ILocalCSObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_ModelObjectParamType(ksModelObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ModelObjectParamType(ksModelObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksModelObjectParamTypeEnum __fastcall get_ModelObjectParamType(void);
  HRESULT         __fastcall get_LocalCoordinateSystem(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall get_LocalCoordinateSystem(void);

  __property   ksModelObjectParamTypeEnum ModelObjectParamType = {read = get_ModelObjectParamType, write = set_ModelObjectParamType};
  __property   Kompasltapi7_tlb::ILocalCoordinateSystemPtr LocalCoordinateSystem = {read = get_LocalCoordinateSystem};
};
typedef ILocalCSObjectDispT<ILocalCSObject> ILocalCSObjectDisp;

typedef TComInterface<ISurfaceContainer>  TCOMISurfaceContainer;

// *********************************************************************//
// DispIntf:  ISurfaceContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2FE3B199-A6B2-4644-9950-F9905250FF0D}
// *********************************************************************//
template<class T>
class ISurfaceContainerDispT : public TAutoDriver<ISurfaceContainer>
{
public:
  ISurfaceContainerDispT(){}

  ISurfaceContainerDispT(ISurfaceContainer *pintf)
  {
    TAutoDriver<ISurfaceContainer>::Bind(pintf, false);
  }

  ISurfaceContainerDispT(ISurfaceContainerPtr pintf)
  {
    TAutoDriver<ISurfaceContainer>::Bind(pintf, true);
  }

  ISurfaceContainerDispT& operator=(ISurfaceContainer *pintf)
  {
    TAutoDriver<ISurfaceContainer>::Bind(pintf, false);
    return *this;
  }

  ISurfaceContainerDispT& operator=(ISurfaceContainerPtr pintf)
  {
    TAutoDriver<ISurfaceContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_SurfacePatches(Kompasltapi7_tlb::ISurfacePatchesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacePatchesPtr __fastcall get_SurfacePatches(void);
  HRESULT         __fastcall get_FaceRemovers(Kompasltapi7_tlb::IFaceRemoversPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFaceRemoversPtr __fastcall get_FaceRemovers(void);
  HRESULT         __fastcall get_SurfaceSewers(Kompasltapi7_tlb::ISurfaceSewersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfaceSewersPtr __fastcall get_SurfaceSewers(void);
  HRESULT         __fastcall get_NurbsSurfaces(Kompasltapi7_tlb::INurbsSurfacesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsSurfacesPtr __fastcall get_NurbsSurfaces(void);

  __property   Kompasltapi7_tlb::ISurfacePatchesPtr SurfacePatches = {read = get_SurfacePatches};
  __property   Kompasltapi7_tlb::IFaceRemoversPtr FaceRemovers = {read = get_FaceRemovers};
  __property   Kompasltapi7_tlb::ISurfaceSewersPtr SurfaceSewers = {read = get_SurfaceSewers};
  __property   Kompasltapi7_tlb::INurbsSurfacesPtr NurbsSurfaces = {read = get_NurbsSurfaces};
};
typedef ISurfaceContainerDispT<ISurfaceContainer> ISurfaceContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMISurfacePatches
// Interface: ISurfacePatches
// *********************************************************************//
template <class T /* ISurfacePatches */ >
class TCOMISurfacePatchesT : public TComInterface<ISurfacePatches>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISurfacePatchesT() {}
  TCOMISurfacePatchesT(ISurfacePatches *intf, bool addRef = false) : TComInterface<ISurfacePatches>(intf, addRef) {}
  TCOMISurfacePatchesT(const TCOMISurfacePatchesT& src) : TComInterface<ISurfacePatches>(src) {}
  TCOMISurfacePatchesT& operator=(const TCOMISurfacePatchesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SurfacePatch(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacePatchPtr __fastcall get_SurfacePatch(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacePatchPtr __fastcall Add(void);

};
typedef TCOMISurfacePatchesT<ISurfacePatches> TCOMISurfacePatches;

// *********************************************************************//
// DispIntf:  ISurfacePatches
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DEE5B135-4D8E-4AD8-AEA4-E763F68290B2}
// *********************************************************************//
template<class T>
class ISurfacePatchesDispT : public TAutoDriver<ISurfacePatches>
{
public:
  ISurfacePatchesDispT(){}

  ISurfacePatchesDispT(ISurfacePatches *pintf)
  {
    TAutoDriver<ISurfacePatches>::Bind(pintf, false);
  }

  ISurfacePatchesDispT(ISurfacePatchesPtr pintf)
  {
    TAutoDriver<ISurfacePatches>::Bind(pintf, true);
  }

  ISurfacePatchesDispT& operator=(ISurfacePatches *pintf)
  {
    TAutoDriver<ISurfacePatches>::Bind(pintf, false);
    return *this;
  }

  ISurfacePatchesDispT& operator=(ISurfacePatchesPtr pintf)
  {
    TAutoDriver<ISurfacePatches>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SurfacePatches));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SurfacePatches);
  }

  HRESULT         __fastcall get_SurfacePatch(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacePatchPtr __fastcall get_SurfacePatch(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfacePatchPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISurfacePatchesDispT<ISurfacePatches> ISurfacePatchesDisp;

// *********************************************************************//
// SmartIntf: TCOMISurfacePatch
// Interface: ISurfacePatch
// *********************************************************************//
template <class T /* ISurfacePatch */ >
class TCOMISurfacePatchT : public TComInterface<ISurfacePatch>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISurfacePatchT() {}
  TCOMISurfacePatchT(ISurfacePatch *intf, bool addRef = false) : TComInterface<ISurfacePatch>(intf, addRef) {}
  TCOMISurfacePatchT(const TCOMISurfacePatchT& src) : TComInterface<ISurfacePatch>(src) {}
  TCOMISurfacePatchT& operator=(const TCOMISurfacePatchT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Edges(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Edges(void);
  HRESULT         __fastcall set_Edges(TVariantInParam PVal/*[in]*/);

};
typedef TCOMISurfacePatchT<ISurfacePatch> TCOMISurfacePatch;

// *********************************************************************//
// DispIntf:  ISurfacePatch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B6330040-7ABA-4ECD-8C92-5B441AF11C3B}
// *********************************************************************//
template<class T>
class ISurfacePatchDispT : public TAutoDriver<ISurfacePatch>
{
public:
  ISurfacePatchDispT(){}

  ISurfacePatchDispT(ISurfacePatch *pintf)
  {
    TAutoDriver<ISurfacePatch>::Bind(pintf, false);
  }

  ISurfacePatchDispT(ISurfacePatchPtr pintf)
  {
    TAutoDriver<ISurfacePatch>::Bind(pintf, true);
  }

  ISurfacePatchDispT& operator=(ISurfacePatch *pintf)
  {
    TAutoDriver<ISurfacePatch>::Bind(pintf, false);
    return *this;
  }

  ISurfacePatchDispT& operator=(ISurfacePatchPtr pintf)
  {
    TAutoDriver<ISurfacePatch>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SurfacePatch));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SurfacePatch);
  }

  HRESULT         __fastcall get_Edges(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Edges(void);
  HRESULT         __fastcall set_Edges(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISurfacePatchDispT<ISurfacePatch> ISurfacePatchDisp;

// *********************************************************************//
// SmartIntf: TCOMIFaceRemovers
// Interface: IFaceRemovers
// *********************************************************************//
template <class T /* IFaceRemovers */ >
class TCOMIFaceRemoversT : public TComInterface<IFaceRemovers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIFaceRemoversT() {}
  TCOMIFaceRemoversT(IFaceRemovers *intf, bool addRef = false) : TComInterface<IFaceRemovers>(intf, addRef) {}
  TCOMIFaceRemoversT(const TCOMIFaceRemoversT& src) : TComInterface<IFaceRemovers>(src) {}
  TCOMIFaceRemoversT& operator=(const TCOMIFaceRemoversT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_FaceRemover(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IFaceRemoverPtr __fastcall get_FaceRemover(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IFaceRemoverPtr __fastcall Add(void);

};
typedef TCOMIFaceRemoversT<IFaceRemovers> TCOMIFaceRemovers;

// *********************************************************************//
// DispIntf:  IFaceRemovers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6E177627-05D6-40B4-B955-9203F00656B5}
// *********************************************************************//
template<class T>
class IFaceRemoversDispT : public TAutoDriver<IFaceRemovers>
{
public:
  IFaceRemoversDispT(){}

  IFaceRemoversDispT(IFaceRemovers *pintf)
  {
    TAutoDriver<IFaceRemovers>::Bind(pintf, false);
  }

  IFaceRemoversDispT(IFaceRemoversPtr pintf)
  {
    TAutoDriver<IFaceRemovers>::Bind(pintf, true);
  }

  IFaceRemoversDispT& operator=(IFaceRemovers *pintf)
  {
    TAutoDriver<IFaceRemovers>::Bind(pintf, false);
    return *this;
  }

  IFaceRemoversDispT& operator=(IFaceRemoversPtr pintf)
  {
    TAutoDriver<IFaceRemovers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_FaceRemovers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_FaceRemovers);
  }

  HRESULT         __fastcall get_FaceRemover(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IFaceRemoverPtr __fastcall get_FaceRemover(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IFaceRemoverPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IFaceRemoversDispT<IFaceRemovers> IFaceRemoversDisp;

// *********************************************************************//
// SmartIntf: TCOMIFaceRemover
// Interface: IFaceRemover
// *********************************************************************//
template <class T /* IFaceRemover */ >
class TCOMIFaceRemoverT : public TComInterface<IFaceRemover>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIFaceRemoverT() {}
  TCOMIFaceRemoverT(IFaceRemover *intf, bool addRef = false) : TComInterface<IFaceRemover>(intf, addRef) {}
  TCOMIFaceRemoverT(const TCOMIFaceRemoverT& src) : TComInterface<IFaceRemover>(src) {}
  TCOMIFaceRemoverT& operator=(const TCOMIFaceRemoverT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Faces(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Faces(void);
  HRESULT         __fastcall set_Faces(TVariantInParam PVal/*[in]*/);

};
typedef TCOMIFaceRemoverT<IFaceRemover> TCOMIFaceRemover;

// *********************************************************************//
// DispIntf:  IFaceRemover
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4CAE21E3-4183-47A6-94B8-8AD14D5775EE}
// *********************************************************************//
template<class T>
class IFaceRemoverDispT : public TAutoDriver<IFaceRemover>
{
public:
  IFaceRemoverDispT(){}

  IFaceRemoverDispT(IFaceRemover *pintf)
  {
    TAutoDriver<IFaceRemover>::Bind(pintf, false);
  }

  IFaceRemoverDispT(IFaceRemoverPtr pintf)
  {
    TAutoDriver<IFaceRemover>::Bind(pintf, true);
  }

  IFaceRemoverDispT& operator=(IFaceRemover *pintf)
  {
    TAutoDriver<IFaceRemover>::Bind(pintf, false);
    return *this;
  }

  IFaceRemoverDispT& operator=(IFaceRemoverPtr pintf)
  {
    TAutoDriver<IFaceRemover>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_FaceRemover));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_FaceRemover);
  }

  HRESULT         __fastcall get_Faces(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Faces(void);
  HRESULT         __fastcall set_Faces(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IFaceRemoverDispT<IFaceRemover> IFaceRemoverDisp;

// *********************************************************************//
// SmartIntf: TCOMISurfaceSewers
// Interface: ISurfaceSewers
// *********************************************************************//
template <class T /* ISurfaceSewers */ >
class TCOMISurfaceSewersT : public TComInterface<ISurfaceSewers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISurfaceSewersT() {}
  TCOMISurfaceSewersT(ISurfaceSewers *intf, bool addRef = false) : TComInterface<ISurfaceSewers>(intf, addRef) {}
  TCOMISurfaceSewersT(const TCOMISurfaceSewersT& src) : TComInterface<ISurfaceSewers>(src) {}
  TCOMISurfaceSewersT& operator=(const TCOMISurfaceSewersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SurfaceSewer(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall get_SurfaceSewer(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall Add(void);

};
typedef TCOMISurfaceSewersT<ISurfaceSewers> TCOMISurfaceSewers;

// *********************************************************************//
// DispIntf:  ISurfaceSewers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {70AE0BA0-2059-4EAB-BE41-A6E8C8ACFA8A}
// *********************************************************************//
template<class T>
class ISurfaceSewersDispT : public TAutoDriver<ISurfaceSewers>
{
public:
  ISurfaceSewersDispT(){}

  ISurfaceSewersDispT(ISurfaceSewers *pintf)
  {
    TAutoDriver<ISurfaceSewers>::Bind(pintf, false);
  }

  ISurfaceSewersDispT(ISurfaceSewersPtr pintf)
  {
    TAutoDriver<ISurfaceSewers>::Bind(pintf, true);
  }

  ISurfaceSewersDispT& operator=(ISurfaceSewers *pintf)
  {
    TAutoDriver<ISurfaceSewers>::Bind(pintf, false);
    return *this;
  }

  ISurfaceSewersDispT& operator=(ISurfaceSewersPtr pintf)
  {
    TAutoDriver<ISurfaceSewers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SurfaceSewers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SurfaceSewers);
  }

  HRESULT         __fastcall get_SurfaceSewer(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall get_SurfaceSewer(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISurfaceSewersDispT<ISurfaceSewers> ISurfaceSewersDisp;

// *********************************************************************//
// SmartIntf: TCOMISurfaceSewer
// Interface: ISurfaceSewer
// *********************************************************************//
template <class T /* ISurfaceSewer */ >
class TCOMISurfaceSewerT : public TComInterface<ISurfaceSewer>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMISurfaceSewerT() {}
  TCOMISurfaceSewerT(ISurfaceSewer *intf, bool addRef = false) : TComInterface<ISurfaceSewer>(intf, addRef) {}
  TCOMISurfaceSewerT(const TCOMISurfaceSewerT& src) : TComInterface<ISurfaceSewer>(src) {}
  TCOMISurfaceSewerT& operator=(const TCOMISurfaceSewerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Shells(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Shells(void);
  HRESULT         __fastcall set_Shells(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Precision(double* Result/*[out,retval]*/);
  double          __fastcall get_Precision(void);
  HRESULT         __fastcall set_Precision(double Result/*[in]*/);
  HRESULT         __fastcall get_CreateBody(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateBody(void);
  HRESULT         __fastcall set_CreateBody(TOLEBOOL Result/*[in]*/);

  __property   double          Precision = {read = get_Precision, write = set_Precision};
  __property   TOLEBOOL        CreateBody = {read = get_CreateBody, write = set_CreateBody};
};
typedef TCOMISurfaceSewerT<ISurfaceSewer> TCOMISurfaceSewer;

// *********************************************************************//
// DispIntf:  ISurfaceSewer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {031FD1C7-9CB6-4E49-A27D-73B8D0B648D4}
// *********************************************************************//
template<class T>
class ISurfaceSewerDispT : public TAutoDriver<ISurfaceSewer>
{
public:
  ISurfaceSewerDispT(){}

  ISurfaceSewerDispT(ISurfaceSewer *pintf)
  {
    TAutoDriver<ISurfaceSewer>::Bind(pintf, false);
  }

  ISurfaceSewerDispT(ISurfaceSewerPtr pintf)
  {
    TAutoDriver<ISurfaceSewer>::Bind(pintf, true);
  }

  ISurfaceSewerDispT& operator=(ISurfaceSewer *pintf)
  {
    TAutoDriver<ISurfaceSewer>::Bind(pintf, false);
    return *this;
  }

  ISurfaceSewerDispT& operator=(ISurfaceSewerPtr pintf)
  {
    TAutoDriver<ISurfaceSewer>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SurfaceSewer));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SurfaceSewer);
  }

  HRESULT         __fastcall get_Shells(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Shells(void);
  HRESULT         __fastcall set_Shells(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Precision(double* Result/*[out,retval]*/);
  double          __fastcall get_Precision(void);
  HRESULT         __fastcall set_Precision(double Result/*[in]*/);
  HRESULT         __fastcall get_CreateBody(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CreateBody(void);
  HRESULT         __fastcall set_CreateBody(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Precision = {read = get_Precision, write = set_Precision};
  __property   TOLEBOOL        CreateBody = {read = get_CreateBody, write = set_CreateBody};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ISurfaceSewerDispT<ISurfaceSewer> ISurfaceSewerDisp;

// *********************************************************************//
// SmartIntf: TCOMINurbsSurfaces
// Interface: INurbsSurfaces
// *********************************************************************//
template <class T /* INurbsSurfaces */ >
class TCOMINurbsSurfacesT : public TComInterface<INurbsSurfaces>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMINurbsSurfacesT() {}
  TCOMINurbsSurfacesT(INurbsSurfaces *intf, bool addRef = false) : TComInterface<INurbsSurfaces>(intf, addRef) {}
  TCOMINurbsSurfacesT(const TCOMINurbsSurfacesT& src) : TComInterface<INurbsSurfaces>(src) {}
  TCOMINurbsSurfacesT& operator=(const TCOMINurbsSurfacesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_NurbsSurface(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsSurfacePtr __fastcall get_NurbsSurface(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsSurfacePtr __fastcall Add(void);

};
typedef TCOMINurbsSurfacesT<INurbsSurfaces> TCOMINurbsSurfaces;

// *********************************************************************//
// DispIntf:  INurbsSurfaces
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DB184867-6207-4FB7-9B3F-882BEAA16B4D}
// *********************************************************************//
template<class T>
class INurbsSurfacesDispT : public TAutoDriver<INurbsSurfaces>
{
public:
  INurbsSurfacesDispT(){}

  INurbsSurfacesDispT(INurbsSurfaces *pintf)
  {
    TAutoDriver<INurbsSurfaces>::Bind(pintf, false);
  }

  INurbsSurfacesDispT(INurbsSurfacesPtr pintf)
  {
    TAutoDriver<INurbsSurfaces>::Bind(pintf, true);
  }

  INurbsSurfacesDispT& operator=(INurbsSurfaces *pintf)
  {
    TAutoDriver<INurbsSurfaces>::Bind(pintf, false);
    return *this;
  }

  INurbsSurfacesDispT& operator=(INurbsSurfacesPtr pintf)
  {
    TAutoDriver<INurbsSurfaces>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_NurbsSurfaces));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_NurbsSurfaces);
  }

  HRESULT         __fastcall get_NurbsSurface(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsSurfacePtr __fastcall get_NurbsSurface(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsSurfacePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IModelObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef INurbsSurfacesDispT<INurbsSurfaces> INurbsSurfacesDisp;

// *********************************************************************//
// SmartIntf: TCOMINurbsSurface
// Interface: INurbsSurface
// *********************************************************************//
template <class T /* INurbsSurface */ >
class TCOMINurbsSurfaceT : public TComInterface<INurbsSurface>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMINurbsSurfaceT() {}
  TCOMINurbsSurfaceT(INurbsSurface *intf, bool addRef = false) : TComInterface<INurbsSurface>(intf, addRef) {}
  TCOMINurbsSurfaceT(const TCOMINurbsSurfaceT& src) : TComInterface<INurbsSurface>(src) {}
  TCOMINurbsSurfaceT& operator=(const TCOMINurbsSurfaceT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                            long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                            TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                            TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                            long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                            TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                            TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/);
  HRESULT         __fastcall SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long DegreeV/*[in]*/, long DegreeU/*[in]*/, 
                                            long NPV/*[in]*/, long NPU/*[in]*/, 
                                            TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weights/*[in]*/, 
                                            TVariantInParam KnotsV/*[in]*/, 
                                            TVariantInParam KnotsU/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long DegreeV/*[in]*/, long DegreeU/*[in]*/, 
                                            long NPV/*[in]*/, long NPU/*[in]*/, 
                                            TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weights/*[in]*/, 
                                            TVariantInParam KnotsV/*[in]*/, 
                                            TVariantInParam KnotsU/*[in]*/);
  HRESULT         __fastcall InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/, 
                                             TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/);
  HRESULT         __fastcall get_ClosedU(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ClosedU(void);
  HRESULT         __fastcall set_ClosedU(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ClosedV(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ClosedV(void);
  HRESULT         __fastcall set_ClosedV(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BoundaryCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BoundaryCount(void);
  HRESULT         __fastcall AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long Degree/*[in]*/, TVariantInParam Points/*[in]*/, 
                                         TVariantInParam Weights/*[in]*/, 
                                         TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                         double TMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long Degree/*[in]*/, TVariantInParam Points/*[in]*/, 
                                         TVariantInParam Weights/*[in]*/, 
                                         TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                         double TMax/*[in]*/);
  HRESULT         __fastcall GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                         TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                         TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                         double* TMax/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                         TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                         TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                         double* TMax/*[out]*/);
  HRESULT         __fastcall DeleteBoundary(long BoundaryIndex/*[in]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBoundary(long BoundaryIndex/*[in]*/);

  __property   TOLEBOOL        ClosedU = {read = get_ClosedU, write = set_ClosedU};
  __property   TOLEBOOL        ClosedV = {read = get_ClosedV, write = set_ClosedV};
  __property   long            BoundaryCount = {read = get_BoundaryCount};
};
typedef TCOMINurbsSurfaceT<INurbsSurface> TCOMINurbsSurface;

// *********************************************************************//
// DispIntf:  INurbsSurface
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5DAFC690-B3A7-4771-8E98-F83B5BF0D454}
// *********************************************************************//
template<class T>
class INurbsSurfaceDispT : public TAutoDriver<INurbsSurface>
{
public:
  INurbsSurfaceDispT(){}

  INurbsSurfaceDispT(INurbsSurface *pintf)
  {
    TAutoDriver<INurbsSurface>::Bind(pintf, false);
  }

  INurbsSurfaceDispT(INurbsSurfacePtr pintf)
  {
    TAutoDriver<INurbsSurface>::Bind(pintf, true);
  }

  INurbsSurfaceDispT& operator=(INurbsSurface *pintf)
  {
    TAutoDriver<INurbsSurface>::Bind(pintf, false);
    return *this;
  }

  INurbsSurfaceDispT& operator=(INurbsSurfacePtr pintf)
  {
    TAutoDriver<INurbsSurface>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_NurbsSurface));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_NurbsSurface);
  }

  HRESULT         __fastcall GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                            long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                            TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                            TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                            long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                            TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                            TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/);
  HRESULT         __fastcall SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long DegreeV/*[in]*/, long DegreeU/*[in]*/, 
                                            long NPV/*[in]*/, long NPU/*[in]*/, 
                                            TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weights/*[in]*/, 
                                            TVariantInParam KnotsV/*[in]*/, 
                                            TVariantInParam KnotsU/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                            long DegreeV/*[in]*/, long DegreeU/*[in]*/, 
                                            long NPV/*[in]*/, long NPU/*[in]*/, 
                                            TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weights/*[in]*/, 
                                            TVariantInParam KnotsV/*[in]*/, 
                                            TVariantInParam KnotsU/*[in]*/);
  HRESULT         __fastcall InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/, 
                                             TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/);
  HRESULT         __fastcall get_ClosedU(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ClosedU(void);
  HRESULT         __fastcall set_ClosedU(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ClosedV(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ClosedV(void);
  HRESULT         __fastcall set_ClosedV(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BoundaryCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BoundaryCount(void);
  HRESULT         __fastcall AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long Degree/*[in]*/, TVariantInParam Points/*[in]*/, 
                                         TVariantInParam Weights/*[in]*/, 
                                         TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                         double TMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long Degree/*[in]*/, TVariantInParam Points/*[in]*/, 
                                         TVariantInParam Weights/*[in]*/, 
                                         TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                         double TMax/*[in]*/);
  HRESULT         __fastcall GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                         TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                         TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                         double* TMax/*[out]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                         long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                         TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                         TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                         double* TMax/*[out]*/);
  HRESULT         __fastcall DeleteBoundary(long BoundaryIndex/*[in]*/, 
                                            TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBoundary(long BoundaryIndex/*[in]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in]*/);
  HRESULT         __fastcall set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hidden(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Hidden(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPart7Ptr __fastcall get_Part(void);
  HRESULT         __fastcall get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/);
  ksObj3dTypeEnum __fastcall get_ModelObjectType(void);
  HRESULT         __fastcall get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IFeature7Ptr __fastcall get_Owner(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        ClosedU = {read = get_ClosedU, write = set_ClosedU};
  __property   TOLEBOOL        ClosedV = {read = get_ClosedV, write = set_ClosedV};
  __property   long            BoundaryCount = {read = get_BoundaryCount};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   TOLEBOOL        Hidden = {read = get_Hidden, write = set_Hidden};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   Kompasltapi7_tlb::IPart7Ptr Part = {read = get_Part};
  __property   ksObj3dTypeEnum ModelObjectType = {read = get_ModelObjectType};
  __property   Kompasltapi7_tlb::IFeature7Ptr Owner = {read = get_Owner};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef INurbsSurfaceDispT<INurbsSurface> INurbsSurfaceDisp;

typedef TComInterface<IColorParam7>  TCOMIColorParam7;

// *********************************************************************//
// DispIntf:  IColorParam7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BE6A80EE-38FE-4432-8331-BF864830761C}
// *********************************************************************//
template<class T>
class IColorParam7DispT : public TAutoDriver<IColorParam7>
{
public:
  IColorParam7DispT(){}

  IColorParam7DispT(IColorParam7 *pintf)
  {
    TAutoDriver<IColorParam7>::Bind(pintf, false);
  }

  IColorParam7DispT(IColorParam7Ptr pintf)
  {
    TAutoDriver<IColorParam7>::Bind(pintf, true);
  }

  IColorParam7DispT& operator=(IColorParam7 *pintf)
  {
    TAutoDriver<IColorParam7>::Bind(pintf, false);
    return *this;
  }

  IColorParam7DispT& operator=(IColorParam7Ptr pintf)
  {
    TAutoDriver<IColorParam7>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_UseColor(ksUseColorEnum* PVal/*[out,retval]*/);
  ksUseColorEnum __fastcall get_UseColor(void);
  HRESULT         __fastcall set_UseColor(ksUseColorEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Color(long* PVal/*[out,retval]*/);
  long            __fastcall get_Color(void);
  HRESULT         __fastcall set_Color(long PVal/*[in]*/);
  HRESULT         __fastcall get_Ambient(double* PVal/*[out,retval]*/);
  double          __fastcall get_Ambient(void);
  HRESULT         __fastcall set_Ambient(double PVal/*[in]*/);
  HRESULT         __fastcall get_Diffuse(double* PVal/*[out,retval]*/);
  double          __fastcall get_Diffuse(void);
  HRESULT         __fastcall set_Diffuse(double PVal/*[in]*/);
  HRESULT         __fastcall get_Specularity(double* PVal/*[out,retval]*/);
  double          __fastcall get_Specularity(void);
  HRESULT         __fastcall set_Specularity(double PVal/*[in]*/);
  HRESULT         __fastcall get_Shininess(double* PVal/*[out,retval]*/);
  double          __fastcall get_Shininess(void);
  HRESULT         __fastcall set_Shininess(double PVal/*[in]*/);
  HRESULT         __fastcall get_Transparency(double* PVal/*[out,retval]*/);
  double          __fastcall get_Transparency(void);
  HRESULT         __fastcall set_Transparency(double PVal/*[in]*/);
  HRESULT         __fastcall get_Emission(double* PVal/*[out,retval]*/);
  double          __fastcall get_Emission(void);
  HRESULT         __fastcall set_Emission(double PVal/*[in]*/);
  HRESULT         __fastcall GetAdvancedColor(long* Color/*[out]*/, double* Ambient/*[out]*/, 
                                              double* Diffuse/*[out]*/, double* Specularity/*[out]*/
                                              , double* Shininess/*[out]*/, 
                                              double* Transparency/*[out]*/, 
                                              double* Emission/*[out]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetAdvancedColor(long* Color/*[out]*/, double* Ambient/*[out]*/, 
                                              double* Diffuse/*[out]*/, double* Specularity/*[out]*/, 
                                              double* Shininess/*[out]*/, 
                                              double* Transparency/*[out]*/, 
                                              double* Emission/*[out]*/);
  HRESULT         __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                              double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                              double Shininess/*[in]*/, double Transparency/*[in]*/
                                              , double Emission/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                              double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                              double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                              double Emission/*[in]*/);

  __property   ksUseColorEnum UseColor = {read = get_UseColor, write = set_UseColor};
  __property   long            Color = {read = get_Color, write = set_Color};
  __property   double          Ambient = {read = get_Ambient, write = set_Ambient};
  __property   double          Diffuse = {read = get_Diffuse, write = set_Diffuse};
  __property   double          Specularity = {read = get_Specularity, write = set_Specularity};
  __property   double          Shininess = {read = get_Shininess, write = set_Shininess};
  __property   double          Transparency = {read = get_Transparency, write = set_Transparency};
  __property   double          Emission = {read = get_Emission, write = set_Emission};
};
typedef IColorParam7DispT<IColorParam7> IColorParam7Disp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingText
// Interface: IDrawingText
// *********************************************************************//
template <class T /* IDrawingText */ >
class TCOMIDrawingTextT : public TComInterface<IDrawingText>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingTextT() {}
  TCOMIDrawingTextT(IDrawingText *intf, bool addRef = false) : TComInterface<IDrawingText>(intf, addRef) {}
  TCOMIDrawingTextT(const TCOMIDrawingTextT& src) : TComInterface<IDrawingText>(src) {}
  TCOMIDrawingTextT& operator=(const TCOMIDrawingTextT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Height(double* Result/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double Result/*[in]*/);
  HRESULT         __fastcall get_Width(double* Result/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double Result/*[in]*/);
  HRESULT         __fastcall get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/);
  ksTextHorizontalFormatEnum __fastcall get_HFormat(void);
  HRESULT         __fastcall set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/);
  HRESULT         __fastcall get_VFormat(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VFormat(void);
  HRESULT         __fastcall set_VFormat(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Allocation(ksAllocationEnum* Result/*[out,retval]*/);
  ksAllocationEnum __fastcall get_Allocation(void);
  HRESULT         __fastcall set_Allocation(ksAllocationEnum Result/*[in]*/);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksTextHorizontalFormatEnum HFormat = {read = get_HFormat, write = set_HFormat};
  __property   TOLEBOOL        VFormat = {read = get_VFormat, write = set_VFormat};
  __property   ksAllocationEnum Allocation = {read = get_Allocation, write = set_Allocation};
};
typedef TCOMIDrawingTextT<IDrawingText> TCOMIDrawingText;

// *********************************************************************//
// DispIntf:  IDrawingText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E32E5703-0141-41CF-9917-9565648FE331}
// *********************************************************************//
template<class T>
class IDrawingTextDispT : public TAutoDriver<IDrawingText>
{
public:
  IDrawingTextDispT(){}

  IDrawingTextDispT(IDrawingText *pintf)
  {
    TAutoDriver<IDrawingText>::Bind(pintf, false);
  }

  IDrawingTextDispT(IDrawingTextPtr pintf)
  {
    TAutoDriver<IDrawingText>::Bind(pintf, true);
  }

  IDrawingTextDispT& operator=(IDrawingText *pintf)
  {
    TAutoDriver<IDrawingText>::Bind(pintf, false);
    return *this;
  }

  IDrawingTextDispT& operator=(IDrawingTextPtr pintf)
  {
    TAutoDriver<IDrawingText>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingText));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingText);
  }

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Height(double* Result/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double Result/*[in]*/);
  HRESULT         __fastcall get_Width(double* Result/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double Result/*[in]*/);
  HRESULT         __fastcall get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/);
  ksTextHorizontalFormatEnum __fastcall get_HFormat(void);
  HRESULT         __fastcall set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/);
  HRESULT         __fastcall get_VFormat(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VFormat(void);
  HRESULT         __fastcall set_VFormat(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Allocation(ksAllocationEnum* Result/*[out,retval]*/);
  ksAllocationEnum __fastcall get_Allocation(void);
  HRESULT         __fastcall set_Allocation(ksAllocationEnum Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksTextHorizontalFormatEnum HFormat = {read = get_HFormat, write = set_HFormat};
  __property   TOLEBOOL        VFormat = {read = get_VFormat, write = set_VFormat};
  __property   ksAllocationEnum Allocation = {read = get_Allocation, write = set_Allocation};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingTextDispT<IDrawingText> IDrawingTextDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingTexts
// Interface: IDrawingTexts
// *********************************************************************//
template <class T /* IDrawingTexts */ >
class TCOMIDrawingTextsT : public TComInterface<IDrawingTexts>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingTextsT() {}
  TCOMIDrawingTextsT(IDrawingTexts *intf, bool addRef = false) : TComInterface<IDrawingTexts>(intf, addRef) {}
  TCOMIDrawingTextsT(const TCOMIDrawingTextsT& src) : TComInterface<IDrawingTexts>(src) {}
  TCOMIDrawingTextsT& operator=(const TCOMIDrawingTextsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DrawingText(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IDrawingTextPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTextPtr __fastcall get_DrawingText(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDrawingTextPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTextPtr __fastcall Add(void);

};
typedef TCOMIDrawingTextsT<IDrawingTexts> TCOMIDrawingTexts;

// *********************************************************************//
// DispIntf:  IDrawingTexts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C72E0E9D-7078-4AA7-95E4-E8C75CA9BCEC}
// *********************************************************************//
template<class T>
class IDrawingTextsDispT : public TAutoDriver<IDrawingTexts>
{
public:
  IDrawingTextsDispT(){}

  IDrawingTextsDispT(IDrawingTexts *pintf)
  {
    TAutoDriver<IDrawingTexts>::Bind(pintf, false);
  }

  IDrawingTextsDispT(IDrawingTextsPtr pintf)
  {
    TAutoDriver<IDrawingTexts>::Bind(pintf, true);
  }

  IDrawingTextsDispT& operator=(IDrawingTexts *pintf)
  {
    TAutoDriver<IDrawingTexts>::Bind(pintf, false);
    return *this;
  }

  IDrawingTextsDispT& operator=(IDrawingTextsPtr pintf)
  {
    TAutoDriver<IDrawingTexts>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingTexts));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingTexts);
  }

  HRESULT         __fastcall get_DrawingText(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IDrawingTextPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTextPtr __fastcall get_DrawingText(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDrawingTextPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTextPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingTextsDispT<IDrawingTexts> IDrawingTextsDisp;

typedef TComInterface<IDrawingContainer>  TCOMIDrawingContainer;

// *********************************************************************//
// DispIntf:  IDrawingContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D603FEC9-75B7-4FA5-918F-47074C45B848}
// *********************************************************************//
template<class T>
class IDrawingContainerDispT : public TAutoDriver<IDrawingContainer>
{
public:
  IDrawingContainerDispT(){}

  IDrawingContainerDispT(IDrawingContainer *pintf)
  {
    TAutoDriver<IDrawingContainer>::Bind(pintf, false);
  }

  IDrawingContainerDispT(IDrawingContainerPtr pintf)
  {
    TAutoDriver<IDrawingContainer>::Bind(pintf, true);
  }

  IDrawingContainerDispT& operator=(IDrawingContainer *pintf)
  {
    TAutoDriver<IDrawingContainer>::Bind(pintf, false);
    return *this;
  }

  IDrawingContainerDispT& operator=(IDrawingContainerPtr pintf)
  {
    TAutoDriver<IDrawingContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Objects(TVariantInParam ObjType/*[in]*/, 
                                         TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Objects(TVariantInParam ObjType/*[in]*/);
  HRESULT         __fastcall get_DrawingTexts(Kompasltapi7_tlb::IDrawingTextsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTextsPtr __fastcall get_DrawingTexts(void);
  HRESULT         __fastcall get_LineSegments(Kompasltapi7_tlb::ILineSegmentsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILineSegmentsPtr __fastcall get_LineSegments(void);
  HRESULT         __fastcall get_Arcs(Kompasltapi7_tlb::IArcsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IArcsPtr __fastcall get_Arcs(void);
  HRESULT         __fastcall get_Multilines(Kompasltapi7_tlb::IMultilinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMultilinesPtr __fastcall get_Multilines(void);
  HRESULT         __fastcall get_DrawingContours(Kompasltapi7_tlb::IDrawingContoursPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingContoursPtr __fastcall get_DrawingContours(void);
  HRESULT         __fastcall get_Circles(Kompasltapi7_tlb::ICirclesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ICirclesPtr __fastcall get_Circles(void);
  HRESULT         __fastcall get_Points(Kompasltapi7_tlb::IPointsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IPointsPtr __fastcall get_Points(void);
  HRESULT         __fastcall get_Beziers(Kompasltapi7_tlb::IBeziersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBeziersPtr __fastcall get_Beziers(void);
  HRESULT         __fastcall get_MacroObjects(Kompasltapi7_tlb::IMacroObjectsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMacroObjectsPtr __fastcall get_MacroObjects(void);
  HRESULT         __fastcall get_Lines(Kompasltapi7_tlb::ILinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILinesPtr __fastcall get_Lines(void);
  HRESULT         __fastcall get_PolyLines2D(Kompasltapi7_tlb::IPolyLines2DPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLines2DPtr __fastcall get_PolyLines2D(void);
  HRESULT         __fastcall get_Nurbses(Kompasltapi7_tlb::INurbsesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsesPtr __fastcall get_Nurbses(void);
  HRESULT         __fastcall get_Rasters(Kompasltapi7_tlb::IRastersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRastersPtr __fastcall get_Rasters(void);
  HRESULT         __fastcall get_OleDrawingObjects(Kompasltapi7_tlb::IOleDrawingObjectsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IOleDrawingObjectsPtr __fastcall get_OleDrawingObjects(void);
  HRESULT         __fastcall get_Ellipses(Kompasltapi7_tlb::IEllipsesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipsesPtr __fastcall get_Ellipses(void);
  HRESULT         __fastcall get_EllipseArcs(Kompasltapi7_tlb::IEllipseArcsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipseArcsPtr __fastcall get_EllipseArcs(void);
  HRESULT         __fastcall get_Rectangles(Kompasltapi7_tlb::IRectanglesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRectanglesPtr __fastcall get_Rectangles(void);
  HRESULT         __fastcall get_RegularPolygons(Kompasltapi7_tlb::IRegularPolygonsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRegularPolygonsPtr __fastcall get_RegularPolygons(void);
  HRESULT         __fastcall get_Equidistants(Kompasltapi7_tlb::IEquidistantsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistantsPtr __fastcall get_Equidistants(void);
  HRESULT         __fastcall get_InsertionObjects(Kompasltapi7_tlb::IInsertionObjectsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionObjectsPtr __fastcall get_InsertionObjects(void);
  HRESULT         __fastcall get_Hatches(Kompasltapi7_tlb::IHatchesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IHatchesPtr __fastcall get_Hatches(void);
  HRESULT         __fastcall get_Colourings(Kompasltapi7_tlb::IColouringsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IColouringsPtr __fastcall get_Colourings(void);

  __property   Kompasltapi7_tlb::IDrawingTextsPtr DrawingTexts = {read = get_DrawingTexts};
  __property   Kompasltapi7_tlb::ILineSegmentsPtr LineSegments = {read = get_LineSegments};
  __property   Kompasltapi7_tlb::IArcsPtr Arcs = {read = get_Arcs};
  __property   Kompasltapi7_tlb::IMultilinesPtr Multilines = {read = get_Multilines};
  __property   Kompasltapi7_tlb::IDrawingContoursPtr DrawingContours = {read = get_DrawingContours};
  __property   Kompasltapi7_tlb::ICirclesPtr Circles = {read = get_Circles};
  __property   Kompasltapi7_tlb::IPointsPtr Points = {read = get_Points};
  __property   Kompasltapi7_tlb::IBeziersPtr Beziers = {read = get_Beziers};
  __property   Kompasltapi7_tlb::IMacroObjectsPtr MacroObjects = {read = get_MacroObjects};
  __property   Kompasltapi7_tlb::ILinesPtr Lines = {read = get_Lines};
  __property   Kompasltapi7_tlb::IPolyLines2DPtr PolyLines2D = {read = get_PolyLines2D};
  __property   Kompasltapi7_tlb::INurbsesPtr Nurbses = {read = get_Nurbses};
  __property   Kompasltapi7_tlb::IRastersPtr Rasters = {read = get_Rasters};
  __property   Kompasltapi7_tlb::IOleDrawingObjectsPtr OleDrawingObjects = {read = get_OleDrawingObjects};
  __property   Kompasltapi7_tlb::IEllipsesPtr Ellipses = {read = get_Ellipses};
  __property   Kompasltapi7_tlb::IEllipseArcsPtr EllipseArcs = {read = get_EllipseArcs};
  __property   Kompasltapi7_tlb::IRectanglesPtr Rectangles = {read = get_Rectangles};
  __property   Kompasltapi7_tlb::IRegularPolygonsPtr RegularPolygons = {read = get_RegularPolygons};
  __property   Kompasltapi7_tlb::IEquidistantsPtr Equidistants = {read = get_Equidistants};
  __property   Kompasltapi7_tlb::IInsertionObjectsPtr InsertionObjects = {read = get_InsertionObjects};
  __property   Kompasltapi7_tlb::IHatchesPtr Hatches = {read = get_Hatches};
  __property   Kompasltapi7_tlb::IColouringsPtr Colourings = {read = get_Colourings};
};
typedef IDrawingContainerDispT<IDrawingContainer> IDrawingContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMILineSegments
// Interface: ILineSegments
// *********************************************************************//
template <class T /* ILineSegments */ >
class TCOMILineSegmentsT : public TComInterface<ILineSegments>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILineSegmentsT() {}
  TCOMILineSegmentsT(ILineSegments *intf, bool addRef = false) : TComInterface<ILineSegments>(intf, addRef) {}
  TCOMILineSegmentsT(const TCOMILineSegmentsT& src) : TComInterface<ILineSegments>(src) {}
  TCOMILineSegmentsT& operator=(const TCOMILineSegmentsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LineSegment(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILineSegmentPtr __fastcall get_LineSegment(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILineSegmentPtr __fastcall Add(void);

};
typedef TCOMILineSegmentsT<ILineSegments> TCOMILineSegments;

// *********************************************************************//
// DispIntf:  ILineSegments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B211C782-A830-468E-9F4F-C499A77078D8}
// *********************************************************************//
template<class T>
class ILineSegmentsDispT : public TAutoDriver<ILineSegments>
{
public:
  ILineSegmentsDispT(){}

  ILineSegmentsDispT(ILineSegments *pintf)
  {
    TAutoDriver<ILineSegments>::Bind(pintf, false);
  }

  ILineSegmentsDispT(ILineSegmentsPtr pintf)
  {
    TAutoDriver<ILineSegments>::Bind(pintf, true);
  }

  ILineSegmentsDispT& operator=(ILineSegments *pintf)
  {
    TAutoDriver<ILineSegments>::Bind(pintf, false);
    return *this;
  }

  ILineSegmentsDispT& operator=(ILineSegmentsPtr pintf)
  {
    TAutoDriver<ILineSegments>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LineSegments));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LineSegments);
  }

  HRESULT         __fastcall get_LineSegment(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILineSegmentPtr __fastcall get_LineSegment(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILineSegmentPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILineSegmentsDispT<ILineSegments> ILineSegmentsDisp;

// *********************************************************************//
// SmartIntf: TCOMILineSegment
// Interface: ILineSegment
// *********************************************************************//
template <class T /* ILineSegment */ >
class TCOMILineSegmentT : public TComInterface<ILineSegment>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILineSegmentT() {}
  TCOMILineSegmentT(ILineSegment *intf, bool addRef = false) : TComInterface<ILineSegment>(intf, addRef) {}
  TCOMILineSegmentT(const TCOMILineSegmentT& src) : TComInterface<ILineSegment>(src) {}
  TCOMILineSegmentT& operator=(const TCOMILineSegmentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMILineSegmentT<ILineSegment> TCOMILineSegment;

// *********************************************************************//
// DispIntf:  ILineSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {64ACC86F-4B10-4897-8552-BC0A556D228B}
// *********************************************************************//
template<class T>
class ILineSegmentDispT : public TAutoDriver<ILineSegment>
{
public:
  ILineSegmentDispT(){}

  ILineSegmentDispT(ILineSegment *pintf)
  {
    TAutoDriver<ILineSegment>::Bind(pintf, false);
  }

  ILineSegmentDispT(ILineSegmentPtr pintf)
  {
    TAutoDriver<ILineSegment>::Bind(pintf, true);
  }

  ILineSegmentDispT& operator=(ILineSegment *pintf)
  {
    TAutoDriver<ILineSegment>::Bind(pintf, false);
    return *this;
  }

  ILineSegmentDispT& operator=(ILineSegmentPtr pintf)
  {
    TAutoDriver<ILineSegment>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LineSegment));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LineSegment);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILineSegmentDispT<ILineSegment> ILineSegmentDisp;

// *********************************************************************//
// SmartIntf: TCOMIArcs
// Interface: IArcs
// *********************************************************************//
template <class T /* IArcs */ >
class TCOMIArcsT : public TComInterface<IArcs>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIArcsT() {}
  TCOMIArcsT(IArcs *intf, bool addRef = false) : TComInterface<IArcs>(intf, addRef) {}
  TCOMIArcsT(const TCOMIArcsT& src) : TComInterface<IArcs>(src) {}
  TCOMIArcsT& operator=(const TCOMIArcsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Arc(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IArcPtr __fastcall get_Arc(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IArcPtr __fastcall Add(void);

};
typedef TCOMIArcsT<IArcs> TCOMIArcs;

// *********************************************************************//
// DispIntf:  IArcs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4FCB4C17-3B9E-45E8-B83C-9284027BAA0D}
// *********************************************************************//
template<class T>
class IArcsDispT : public TAutoDriver<IArcs>
{
public:
  IArcsDispT(){}

  IArcsDispT(IArcs *pintf)
  {
    TAutoDriver<IArcs>::Bind(pintf, false);
  }

  IArcsDispT(IArcsPtr pintf)
  {
    TAutoDriver<IArcs>::Bind(pintf, true);
  }

  IArcsDispT& operator=(IArcs *pintf)
  {
    TAutoDriver<IArcs>::Bind(pintf, false);
    return *this;
  }

  IArcsDispT& operator=(IArcsPtr pintf)
  {
    TAutoDriver<IArcs>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Arcs));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Arcs);
  }

  HRESULT         __fastcall get_Arc(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IArcPtr __fastcall get_Arc(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IArcPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IArcsDispT<IArcs> IArcsDisp;

// *********************************************************************//
// SmartIntf: TCOMIArc
// Interface: IArc
// *********************************************************************//
template <class T /* IArc */ >
class TCOMIArcT : public TComInterface<IArc>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIArcT() {}
  TCOMIArcT(IArc *intf, bool addRef = false) : TComInterface<IArc>(intf, addRef) {}
  TCOMIArcT(const TCOMIArcT& src) : TComInterface<IArc>(src) {}
  TCOMIArcT& operator=(const TCOMIArcT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIArcT<IArc> TCOMIArc;

// *********************************************************************//
// DispIntf:  IArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A22DFB7E-21E0-4B28-9CA1-29B7950CF256}
// *********************************************************************//
template<class T>
class IArcDispT : public TAutoDriver<IArc>
{
public:
  IArcDispT(){}

  IArcDispT(IArc *pintf)
  {
    TAutoDriver<IArc>::Bind(pintf, false);
  }

  IArcDispT(IArcPtr pintf)
  {
    TAutoDriver<IArc>::Bind(pintf, true);
  }

  IArcDispT& operator=(IArc *pintf)
  {
    TAutoDriver<IArc>::Bind(pintf, false);
    return *this;
  }

  IArcDispT& operator=(IArcPtr pintf)
  {
    TAutoDriver<IArc>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Arc));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Arc);
  }

  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IArcDispT<IArc> IArcDisp;

// *********************************************************************//
// SmartIntf: TCOMIMultilines
// Interface: IMultilines
// *********************************************************************//
template <class T /* IMultilines */ >
class TCOMIMultilinesT : public TComInterface<IMultilines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMultilinesT() {}
  TCOMIMultilinesT(IMultilines *intf, bool addRef = false) : TComInterface<IMultilines>(intf, addRef) {}
  TCOMIMultilinesT(const TCOMIMultilinesT& src) : TComInterface<IMultilines>(src) {}
  TCOMIMultilinesT& operator=(const TCOMIMultilinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Multiline(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IMultilinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMultilinePtr __fastcall get_Multiline(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IMultilinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IMultilinePtr __fastcall Add(void);

};
typedef TCOMIMultilinesT<IMultilines> TCOMIMultilines;

// *********************************************************************//
// DispIntf:  IMultilines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {968D7B84-2BC1-4354-AAFE-73192E405546}
// *********************************************************************//
template<class T>
class IMultilinesDispT : public TAutoDriver<IMultilines>
{
public:
  IMultilinesDispT(){}

  IMultilinesDispT(IMultilines *pintf)
  {
    TAutoDriver<IMultilines>::Bind(pintf, false);
  }

  IMultilinesDispT(IMultilinesPtr pintf)
  {
    TAutoDriver<IMultilines>::Bind(pintf, true);
  }

  IMultilinesDispT& operator=(IMultilines *pintf)
  {
    TAutoDriver<IMultilines>::Bind(pintf, false);
    return *this;
  }

  IMultilinesDispT& operator=(IMultilinesPtr pintf)
  {
    TAutoDriver<IMultilines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Multilines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Multilines);
  }

  HRESULT         __fastcall get_Multiline(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IMultilinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMultilinePtr __fastcall get_Multiline(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IMultilinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IMultilinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMultilinesDispT<IMultilines> IMultilinesDisp;

// *********************************************************************//
// SmartIntf: TCOMIMultiline
// Interface: IMultiline
// *********************************************************************//
template <class T /* IMultiline */ >
class TCOMIMultilineT : public TComInterface<IMultiline>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMultilineT() {}
  TCOMIMultilineT(IMultiline *intf, bool addRef = false) : TComInterface<IMultiline>(intf, addRef) {}
  TCOMIMultilineT(const TCOMIMultilineT& src) : TComInterface<IMultiline>(src) {}
  TCOMIMultilineT& operator=(const TCOMIMultilineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall get_BaseContour(Kompasltapi7_tlb::IContourPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IContourPtr __fastcall get_BaseContour(void);
  HRESULT         __fastcall get_TrackingType(long VertexIndex/*[in]*/, 
                                              ksMlVertexTrackingEnum* Val/*[out,retval]*/);
  ksMlVertexTrackingEnum __fastcall get_TrackingType(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_TrackingType(long VertexIndex/*[in]*/, 
                                              ksMlVertexTrackingEnum Val/*[in]*/);
  HRESULT         __fastcall get_VertexLimiter(long VertexIndex/*[in]*/, 
                                               ksMlVertexLimiterEnum* PVal/*[out,retval]*/);
  ksMlVertexLimiterEnum __fastcall get_VertexLimiter(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_VertexLimiter(long VertexIndex/*[in]*/, 
                                               ksMlVertexLimiterEnum PVal/*[in]*/);
  HRESULT         __fastcall get_VertexDirection(long VertexIndex/*[in]*/, 
                                                 TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VertexDirection(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_VertexDirection(long VertexIndex/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall set_VertexRadius(long VertexIndex/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_VertexRadius(long VertexIndex/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_VertexRadius(long VertexIndex/*[in]*/);
  HRESULT         __fastcall get_VertexStyle(long VertexIndex/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_VertexStyle(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_VertexStyle(long VertexIndex/*[in]*/, long Result/*[in]*/);
  HRESULT         __fastcall get_VertexCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_VertexCount(void);
  HRESULT         __fastcall get_EndLimiter(TOLEBOOL First/*[in]*/, 
                                            ksMlEndLimiterEnum* PVal/*[out,retval]*/);
  ksMlEndLimiterEnum __fastcall get_EndLimiter(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall set_EndLimiter(TOLEBOOL First/*[in]*/, 
                                            ksMlEndLimiterEnum PVal/*[in]*/);
  HRESULT         __fastcall set_EndParameter(TOLEBOOL First/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_EndParameter(TOLEBOOL First/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_EndParameter(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall get_EndStyle(TOLEBOOL First/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_EndStyle(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall set_EndStyle(TOLEBOOL First/*[in]*/, long Result/*[in]*/);
  HRESULT         __fastcall AddLine(double Offset/*[in]*/, long Style/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddLine(double Offset/*[in]*/, long Style/*[in]*/);
  HRESULT         __fastcall DeleteLine(long LineIndex/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteLine(long LineIndex/*[in]*/);
  HRESULT         __fastcall get_LineCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_LineCount(void);
  HRESULT         __fastcall set_LineOffset(long LineIndex/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_LineOffset(long LineIndex/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_LineOffset(long LineIndex/*[in]*/);
  HRESULT         __fastcall get_LineStyle(long LineIndex/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_LineStyle(long LineIndex/*[in]*/);
  HRESULT         __fastcall set_LineStyle(long LineIndex/*[in]*/, long Result/*[in]*/);
  HRESULT         __fastcall FindLine(double Offset/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall FindLine(double Offset/*[in]*/);
  HRESULT         __fastcall get_LineOffsets(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_LineOffsets(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   Kompasltapi7_tlb::IContourPtr BaseContour = {read = get_BaseContour};
  __property   long            VertexCount = {read = get_VertexCount};
  __property   long            LineCount = {read = get_LineCount};
};
typedef TCOMIMultilineT<IMultiline> TCOMIMultiline;

// *********************************************************************//
// DispIntf:  IMultiline
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6CCB098-5710-44E3-8198-8FAFD56C7A6F}
// *********************************************************************//
template<class T>
class IMultilineDispT : public TAutoDriver<IMultiline>
{
public:
  IMultilineDispT(){}

  IMultilineDispT(IMultiline *pintf)
  {
    TAutoDriver<IMultiline>::Bind(pintf, false);
  }

  IMultilineDispT(IMultilinePtr pintf)
  {
    TAutoDriver<IMultiline>::Bind(pintf, true);
  }

  IMultilineDispT& operator=(IMultiline *pintf)
  {
    TAutoDriver<IMultiline>::Bind(pintf, false);
    return *this;
  }

  IMultilineDispT& operator=(IMultilinePtr pintf)
  {
    TAutoDriver<IMultiline>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Multiline));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Multiline);
  }

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall get_BaseContour(Kompasltapi7_tlb::IContourPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IContourPtr __fastcall get_BaseContour(void);
  HRESULT         __fastcall get_TrackingType(long VertexIndex/*[in]*/, 
                                              ksMlVertexTrackingEnum* Val/*[out,retval]*/);
  ksMlVertexTrackingEnum __fastcall get_TrackingType(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_TrackingType(long VertexIndex/*[in]*/, 
                                              ksMlVertexTrackingEnum Val/*[in]*/);
  HRESULT         __fastcall get_VertexLimiter(long VertexIndex/*[in]*/, 
                                               ksMlVertexLimiterEnum* PVal/*[out,retval]*/);
  ksMlVertexLimiterEnum __fastcall get_VertexLimiter(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_VertexLimiter(long VertexIndex/*[in]*/, 
                                               ksMlVertexLimiterEnum PVal/*[in]*/);
  HRESULT         __fastcall get_VertexDirection(long VertexIndex/*[in]*/, 
                                                 TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VertexDirection(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_VertexDirection(long VertexIndex/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall set_VertexRadius(long VertexIndex/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_VertexRadius(long VertexIndex/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_VertexRadius(long VertexIndex/*[in]*/);
  HRESULT         __fastcall get_VertexStyle(long VertexIndex/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_VertexStyle(long VertexIndex/*[in]*/);
  HRESULT         __fastcall set_VertexStyle(long VertexIndex/*[in]*/, long Result/*[in]*/);
  HRESULT         __fastcall get_VertexCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_VertexCount(void);
  HRESULT         __fastcall get_EndLimiter(TOLEBOOL First/*[in]*/, 
                                            ksMlEndLimiterEnum* PVal/*[out,retval]*/);
  ksMlEndLimiterEnum __fastcall get_EndLimiter(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall set_EndLimiter(TOLEBOOL First/*[in]*/, 
                                            ksMlEndLimiterEnum PVal/*[in]*/);
  HRESULT         __fastcall set_EndParameter(TOLEBOOL First/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_EndParameter(TOLEBOOL First/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_EndParameter(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall get_EndStyle(TOLEBOOL First/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_EndStyle(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall set_EndStyle(TOLEBOOL First/*[in]*/, long Result/*[in]*/);
  HRESULT         __fastcall AddLine(double Offset/*[in]*/, long Style/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddLine(double Offset/*[in]*/, long Style/*[in]*/);
  HRESULT         __fastcall DeleteLine(long LineIndex/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteLine(long LineIndex/*[in]*/);
  HRESULT         __fastcall get_LineCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_LineCount(void);
  HRESULT         __fastcall set_LineOffset(long LineIndex/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_LineOffset(long LineIndex/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_LineOffset(long LineIndex/*[in]*/);
  HRESULT         __fastcall get_LineStyle(long LineIndex/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_LineStyle(long LineIndex/*[in]*/);
  HRESULT         __fastcall set_LineStyle(long LineIndex/*[in]*/, long Result/*[in]*/);
  HRESULT         __fastcall FindLine(double Offset/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall FindLine(double Offset/*[in]*/);
  HRESULT         __fastcall get_LineOffsets(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_LineOffsets(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   Kompasltapi7_tlb::IContourPtr BaseContour = {read = get_BaseContour};
  __property   long            VertexCount = {read = get_VertexCount};
  __property   long            LineCount = {read = get_LineCount};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMultilineDispT<IMultiline> IMultilineDisp;

// *********************************************************************//
// SmartIntf: TCOMIContour
// Interface: IContour
// *********************************************************************//
template <class T /* IContour */ >
class TCOMIContourT : public TComInterface<IContour>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIContourT() {}
  TCOMIContourT(IContour *intf, bool addRef = false) : TComInterface<IContour>(intf, addRef) {}
  TCOMIContourT(const TCOMIContourT& src) : TComInterface<IContour>(src) {}
  TCOMIContourT& operator=(const TCOMIContourT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall AddSegment(ksContourSegmentEnum Type/*[in]*/, 
                                        Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall AddSegment(ksContourSegmentEnum Type/*[in]*/);
  HRESULT         __fastcall get_Segment(long Index/*[in]*/, 
                                         Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Segment(long Index/*[in]*/);
  HRESULT         __fastcall CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                       TOLEBOOL DeleteSource/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                       TOLEBOOL DeleteSource/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_TmpObjects(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_TmpObjects(void);
  HRESULT         __fastcall CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            Count = {read = get_Count};
};
typedef TCOMIContourT<IContour> TCOMIContour;

// *********************************************************************//
// DispIntf:  IContour
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E79F5A53-F456-4996-B620-16B725F134FB}
// *********************************************************************//
template<class T>
class IContourDispT : public TAutoDriver<IContour>
{
public:
  IContourDispT(){}

  IContourDispT(IContour *pintf)
  {
    TAutoDriver<IContour>::Bind(pintf, false);
  }

  IContourDispT(IContourPtr pintf)
  {
    TAutoDriver<IContour>::Bind(pintf, true);
  }

  IContourDispT& operator=(IContour *pintf)
  {
    TAutoDriver<IContour>::Bind(pintf, false);
    return *this;
  }

  IContourDispT& operator=(IContourPtr pintf)
  {
    TAutoDriver<IContour>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Contour));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Contour);
  }

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall AddSegment(ksContourSegmentEnum Type/*[in]*/, 
                                        Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall AddSegment(ksContourSegmentEnum Type/*[in]*/);
  HRESULT         __fastcall get_Segment(long Index/*[in]*/, 
                                         Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Segment(long Index/*[in]*/);
  HRESULT         __fastcall CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                       TOLEBOOL DeleteSource/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                       TOLEBOOL DeleteSource/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_TmpObjects(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_TmpObjects(void);
  HRESULT         __fastcall CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/
                                          , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IContourDispT<IContour> IContourDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingContours
// Interface: IDrawingContours
// *********************************************************************//
template <class T /* IDrawingContours */ >
class TCOMIDrawingContoursT : public TComInterface<IDrawingContours>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingContoursT() {}
  TCOMIDrawingContoursT(IDrawingContours *intf, bool addRef = false) : TComInterface<IDrawingContours>(intf, addRef) {}
  TCOMIDrawingContoursT(const TCOMIDrawingContoursT& src) : TComInterface<IDrawingContours>(src) {}
  TCOMIDrawingContoursT& operator=(const TCOMIDrawingContoursT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DrawingContour(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IDrawingContourPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingContourPtr __fastcall get_DrawingContour(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDrawingContourPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingContourPtr __fastcall Add(void);

};
typedef TCOMIDrawingContoursT<IDrawingContours> TCOMIDrawingContours;

// *********************************************************************//
// DispIntf:  IDrawingContours
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DBA3626C-12BE-4BFF-8D42-B01A78666BC9}
// *********************************************************************//
template<class T>
class IDrawingContoursDispT : public TAutoDriver<IDrawingContours>
{
public:
  IDrawingContoursDispT(){}

  IDrawingContoursDispT(IDrawingContours *pintf)
  {
    TAutoDriver<IDrawingContours>::Bind(pintf, false);
  }

  IDrawingContoursDispT(IDrawingContoursPtr pintf)
  {
    TAutoDriver<IDrawingContours>::Bind(pintf, true);
  }

  IDrawingContoursDispT& operator=(IDrawingContours *pintf)
  {
    TAutoDriver<IDrawingContours>::Bind(pintf, false);
    return *this;
  }

  IDrawingContoursDispT& operator=(IDrawingContoursPtr pintf)
  {
    TAutoDriver<IDrawingContours>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingContours));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingContours);
  }

  HRESULT         __fastcall get_DrawingContour(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IDrawingContourPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingContourPtr __fastcall get_DrawingContour(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDrawingContourPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingContourPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingContoursDispT<IDrawingContours> IDrawingContoursDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingContour
// Interface: IDrawingContour
// *********************************************************************//
template <class T /* IDrawingContour */ >
class TCOMIDrawingContourT : public TComInterface<IDrawingContour>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingContourT() {}
  TCOMIDrawingContourT(IDrawingContour *intf, bool addRef = false) : TComInterface<IDrawingContour>(intf, addRef) {}
  TCOMIDrawingContourT(const TCOMIDrawingContourT& src) : TComInterface<IDrawingContour>(src) {}
  TCOMIDrawingContourT& operator=(const TCOMIDrawingContourT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIDrawingContourT<IDrawingContour> TCOMIDrawingContour;

// *********************************************************************//
// DispIntf:  IDrawingContour
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {25509C3A-7B46-4E3F-B0E8-0E61B7548664}
// *********************************************************************//
template<class T>
class IDrawingContourDispT : public TAutoDriver<IDrawingContour>
{
public:
  IDrawingContourDispT(){}

  IDrawingContourDispT(IDrawingContour *pintf)
  {
    TAutoDriver<IDrawingContour>::Bind(pintf, false);
  }

  IDrawingContourDispT(IDrawingContourPtr pintf)
  {
    TAutoDriver<IDrawingContour>::Bind(pintf, true);
  }

  IDrawingContourDispT& operator=(IDrawingContour *pintf)
  {
    TAutoDriver<IDrawingContour>::Bind(pintf, false);
    return *this;
  }

  IDrawingContourDispT& operator=(IDrawingContourPtr pintf)
  {
    TAutoDriver<IDrawingContour>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingContour));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingContour);
  }

  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingContourDispT<IDrawingContour> IDrawingContourDisp;

// *********************************************************************//
// SmartIntf: TCOMICircles
// Interface: ICircles
// *********************************************************************//
template <class T /* ICircles */ >
class TCOMICirclesT : public TComInterface<ICircles>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICirclesT() {}
  TCOMICirclesT(ICircles *intf, bool addRef = false) : TComInterface<ICircles>(intf, addRef) {}
  TCOMICirclesT(const TCOMICirclesT& src) : TComInterface<ICircles>(src) {}
  TCOMICirclesT& operator=(const TCOMICirclesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Circle(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICirclePtr __fastcall get_Circle(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICirclePtr __fastcall Add(void);

};
typedef TCOMICirclesT<ICircles> TCOMICircles;

// *********************************************************************//
// DispIntf:  ICircles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C8CA9255-E5FE-4396-9C3F-75EE7377C508}
// *********************************************************************//
template<class T>
class ICirclesDispT : public TAutoDriver<ICircles>
{
public:
  ICirclesDispT(){}

  ICirclesDispT(ICircles *pintf)
  {
    TAutoDriver<ICircles>::Bind(pintf, false);
  }

  ICirclesDispT(ICirclesPtr pintf)
  {
    TAutoDriver<ICircles>::Bind(pintf, true);
  }

  ICirclesDispT& operator=(ICircles *pintf)
  {
    TAutoDriver<ICircles>::Bind(pintf, false);
    return *this;
  }

  ICirclesDispT& operator=(ICirclesPtr pintf)
  {
    TAutoDriver<ICircles>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Circles));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Circles);
  }

  HRESULT         __fastcall get_Circle(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICirclePtr __fastcall get_Circle(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICirclePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICirclesDispT<ICircles> ICirclesDisp;

// *********************************************************************//
// SmartIntf: TCOMICircle
// Interface: ICircle
// *********************************************************************//
template <class T /* ICircle */ >
class TCOMICircleT : public TComInterface<ICircle>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICircleT() {}
  TCOMICircleT(ICircle *intf, bool addRef = false) : TComInterface<ICircle>(intf, addRef) {}
  TCOMICircleT(const TCOMICircleT& src) : TComInterface<ICircle>(src) {}
  TCOMICircleT& operator=(const TCOMICircleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMICircleT<ICircle> TCOMICircle;

// *********************************************************************//
// DispIntf:  ICircle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C952F95-DFED-4EEE-B39A-6699EDE08676}
// *********************************************************************//
template<class T>
class ICircleDispT : public TAutoDriver<ICircle>
{
public:
  ICircleDispT(){}

  ICircleDispT(ICircle *pintf)
  {
    TAutoDriver<ICircle>::Bind(pintf, false);
  }

  ICircleDispT(ICirclePtr pintf)
  {
    TAutoDriver<ICircle>::Bind(pintf, true);
  }

  ICircleDispT& operator=(ICircle *pintf)
  {
    TAutoDriver<ICircle>::Bind(pintf, false);
    return *this;
  }

  ICircleDispT& operator=(ICirclePtr pintf)
  {
    TAutoDriver<ICircle>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Circle));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Circle);
  }

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICircleDispT<ICircle> ICircleDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoints
// Interface: IPoints
// *********************************************************************//
template <class T /* IPoints */ >
class TCOMIPointsT : public TComInterface<IPoints>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPointsT() {}
  TCOMIPointsT(IPoints *intf, bool addRef = false) : TComInterface<IPoints>(intf, addRef) {}
  TCOMIPointsT(const TCOMIPointsT& src) : TComInterface<IPoints>(src) {}
  TCOMIPointsT& operator=(const TCOMIPointsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Point(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPointPtr __fastcall get_Point(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPointPtr __fastcall Add(void);

};
typedef TCOMIPointsT<IPoints> TCOMIPoints;

// *********************************************************************//
// DispIntf:  IPoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8C6846A4-EE3B-4C00-A708-5C0FD01E21B7}
// *********************************************************************//
template<class T>
class IPointsDispT : public TAutoDriver<IPoints>
{
public:
  IPointsDispT(){}

  IPointsDispT(IPoints *pintf)
  {
    TAutoDriver<IPoints>::Bind(pintf, false);
  }

  IPointsDispT(IPointsPtr pintf)
  {
    TAutoDriver<IPoints>::Bind(pintf, true);
  }

  IPointsDispT& operator=(IPoints *pintf)
  {
    TAutoDriver<IPoints>::Bind(pintf, false);
    return *this;
  }

  IPointsDispT& operator=(IPointsPtr pintf)
  {
    TAutoDriver<IPoints>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Points));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Points);
  }

  HRESULT         __fastcall get_Point(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPointPtr __fastcall get_Point(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPointPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPointsDispT<IPoints> IPointsDisp;

// *********************************************************************//
// SmartIntf: TCOMIPoint
// Interface: IPoint
// *********************************************************************//
template <class T /* IPoint */ >
class TCOMIPointT : public TComInterface<IPoint>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPointT() {}
  TCOMIPointT(IPoint *intf, bool addRef = false) : TComInterface<IPoint>(intf, addRef) {}
  TCOMIPointT(const TCOMIPointT& src) : TComInterface<IPoint>(src) {}
  TCOMIPointT& operator=(const TCOMIPointT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* PVal/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long PVal/*[in]*/);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIPointT<IPoint> TCOMIPoint;

// *********************************************************************//
// DispIntf:  IPoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D0C19C87-14E7-401D-AEF5-A2E88E899F6E}
// *********************************************************************//
template<class T>
class IPointDispT : public TAutoDriver<IPoint>
{
public:
  IPointDispT(){}

  IPointDispT(IPoint *pintf)
  {
    TAutoDriver<IPoint>::Bind(pintf, false);
  }

  IPointDispT(IPointPtr pintf)
  {
    TAutoDriver<IPoint>::Bind(pintf, true);
  }

  IPointDispT& operator=(IPoint *pintf)
  {
    TAutoDriver<IPoint>::Bind(pintf, false);
    return *this;
  }

  IPointDispT& operator=(IPointPtr pintf)
  {
    TAutoDriver<IPoint>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Point));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Point);
  }

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* PVal/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPointDispT<IPoint> IPointDisp;

// *********************************************************************//
// SmartIntf: TCOMIBeziers
// Interface: IBeziers
// *********************************************************************//
template <class T /* IBeziers */ >
class TCOMIBeziersT : public TComInterface<IBeziers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBeziersT() {}
  TCOMIBeziersT(IBeziers *intf, bool addRef = false) : TComInterface<IBeziers>(intf, addRef) {}
  TCOMIBeziersT(const TCOMIBeziersT& src) : TComInterface<IBeziers>(src) {}
  TCOMIBeziersT& operator=(const TCOMIBeziersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Bezier(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBezierPtr __fastcall get_Bezier(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBezierPtr __fastcall Add(void);

};
typedef TCOMIBeziersT<IBeziers> TCOMIBeziers;

// *********************************************************************//
// DispIntf:  IBeziers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {57944ECC-5491-4551-9DB9-FABC45125A63}
// *********************************************************************//
template<class T>
class IBeziersDispT : public TAutoDriver<IBeziers>
{
public:
  IBeziersDispT(){}

  IBeziersDispT(IBeziers *pintf)
  {
    TAutoDriver<IBeziers>::Bind(pintf, false);
  }

  IBeziersDispT(IBeziersPtr pintf)
  {
    TAutoDriver<IBeziers>::Bind(pintf, true);
  }

  IBeziersDispT& operator=(IBeziers *pintf)
  {
    TAutoDriver<IBeziers>::Bind(pintf, false);
    return *this;
  }

  IBeziersDispT& operator=(IBeziersPtr pintf)
  {
    TAutoDriver<IBeziers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Beziers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Beziers);
  }

  HRESULT         __fastcall get_Bezier(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBezierPtr __fastcall get_Bezier(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBezierPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBeziersDispT<IBeziers> IBeziersDisp;

// *********************************************************************//
// SmartIntf: TCOMIBezier
// Interface: IBezier
// *********************************************************************//
template <class T /* IBezier */ >
class TCOMIBezierT : public TComInterface<IBezier>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBezierT() {}
  TCOMIBezierT(IBezier *intf, bool addRef = false) : TComInterface<IBezier>(intf, addRef) {}
  TCOMIBezierT(const TCOMIBezierT& src) : TComInterface<IBezier>(src) {}
  TCOMIBezierT& operator=(const TCOMIBezierT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall get_PointsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_PointsCount(void);
  HRESULT         __fastcall set_Points(TOLEBOOL AllPoints/*[in]*/, TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall get_Points(TOLEBOOL AllPoints/*[in]*/, TVariant* Points/*[out,retval]*/);
  TVariant        __fastcall get_Points(TOLEBOOL AllPoints/*[in]*/);
  HRESULT         __fastcall AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                                      double* XLeft/*[in]*/, double* YLeft/*[in]*/, 
                                      double* XRight/*[in]*/, double* YRight/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                                      double* XLeft/*[in]*/, double* YLeft/*[in]*/, 
                                      double* XRight/*[in]*/, double* YRight/*[in]*/);
  HRESULT         __fastcall GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, 
                                      double* YBase/*[out]*/, double* XLeft/*[out]*/, 
                                      double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                                      double* YRight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, 
                                      double* YBase/*[out]*/, double* XLeft/*[out]*/, 
                                      double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                                      double* YRight/*[out]*/);
  HRESULT         __fastcall DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeletePoint(long Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIBezierT<IBezier> TCOMIBezier;

// *********************************************************************//
// DispIntf:  IBezier
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6D51EC19-200C-47A2-AE55-0593AD746851}
// *********************************************************************//
template<class T>
class IBezierDispT : public TAutoDriver<IBezier>
{
public:
  IBezierDispT(){}

  IBezierDispT(IBezier *pintf)
  {
    TAutoDriver<IBezier>::Bind(pintf, false);
  }

  IBezierDispT(IBezierPtr pintf)
  {
    TAutoDriver<IBezier>::Bind(pintf, true);
  }

  IBezierDispT& operator=(IBezier *pintf)
  {
    TAutoDriver<IBezier>::Bind(pintf, false);
    return *this;
  }

  IBezierDispT& operator=(IBezierPtr pintf)
  {
    TAutoDriver<IBezier>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Bezier));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Bezier);
  }

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall get_PointsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_PointsCount(void);
  HRESULT         __fastcall set_Points(TOLEBOOL AllPoints/*[in]*/, TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall get_Points(TOLEBOOL AllPoints/*[in]*/, TVariant* Points/*[out,retval]*/);
  TVariant        __fastcall get_Points(TOLEBOOL AllPoints/*[in]*/);
  HRESULT         __fastcall AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/
                                      , double* XLeft/*[in]*/, double* YLeft/*[in]*/, 
                                      double* XRight/*[in]*/, double* YRight/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                                      double* XLeft/*[in]*/, double* YLeft/*[in]*/, 
                                      double* XRight/*[in]*/, double* YRight/*[in]*/);
  HRESULT         __fastcall GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, 
                                      double* YBase/*[out]*/, double* XLeft/*[out]*/, 
                                      double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                                      double* YRight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, 
                                      double* YBase/*[out]*/, double* XLeft/*[out]*/, 
                                      double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                                      double* YRight/*[out]*/);
  HRESULT         __fastcall DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeletePoint(long Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBezierDispT<IBezier> IBezierDisp;

// *********************************************************************//
// SmartIntf: TCOMIMacroObjects
// Interface: IMacroObjects
// *********************************************************************//
template <class T /* IMacroObjects */ >
class TCOMIMacroObjectsT : public TComInterface<IMacroObjects>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMacroObjectsT() {}
  TCOMIMacroObjectsT(IMacroObjects *intf, bool addRef = false) : TComInterface<IMacroObjects>(intf, addRef) {}
  TCOMIMacroObjectsT(const TCOMIMacroObjectsT& src) : TComInterface<IMacroObjects>(src) {}
  TCOMIMacroObjectsT& operator=(const TCOMIMacroObjectsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_MacroObject(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IMacroObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMacroObjectPtr __fastcall get_MacroObject(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(TOLEBOOL MultyLayer/*[in,def,opt]*/, 
                                 Kompasltapi7_tlb::IMacroObjectPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IMacroObjectPtr __fastcall Add(TOLEBOOL MultyLayer/*[in,def,opt]*/);

};
typedef TCOMIMacroObjectsT<IMacroObjects> TCOMIMacroObjects;

// *********************************************************************//
// DispIntf:  IMacroObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5B3F5454-160A-4981-B093-890E9A719AE3}
// *********************************************************************//
template<class T>
class IMacroObjectsDispT : public TAutoDriver<IMacroObjects>
{
public:
  IMacroObjectsDispT(){}

  IMacroObjectsDispT(IMacroObjects *pintf)
  {
    TAutoDriver<IMacroObjects>::Bind(pintf, false);
  }

  IMacroObjectsDispT(IMacroObjectsPtr pintf)
  {
    TAutoDriver<IMacroObjects>::Bind(pintf, true);
  }

  IMacroObjectsDispT& operator=(IMacroObjects *pintf)
  {
    TAutoDriver<IMacroObjects>::Bind(pintf, false);
    return *this;
  }

  IMacroObjectsDispT& operator=(IMacroObjectsPtr pintf)
  {
    TAutoDriver<IMacroObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MacroObjects));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MacroObjects);
  }

  HRESULT         __fastcall get_MacroObject(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IMacroObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMacroObjectPtr __fastcall get_MacroObject(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(TOLEBOOL MultyLayer/*[in,def,opt]*/, 
                                 Kompasltapi7_tlb::IMacroObjectPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IMacroObjectPtr __fastcall Add(TOLEBOOL MultyLayer/*[in,def,opt]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMacroObjectsDispT<IMacroObjects> IMacroObjectsDisp;

// *********************************************************************//
// SmartIntf: TCOMILines
// Interface: ILines
// *********************************************************************//
template <class T /* ILines */ >
class TCOMILinesT : public TComInterface<ILines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILinesT() {}
  TCOMILinesT(ILines *intf, bool addRef = false) : TComInterface<ILines>(intf, addRef) {}
  TCOMILinesT(const TCOMILinesT& src) : TComInterface<ILines>(src) {}
  TCOMILinesT& operator=(const TCOMILinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Line(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILinePtr __fastcall get_Line(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILinePtr __fastcall Add(void);

};
typedef TCOMILinesT<ILines> TCOMILines;

// *********************************************************************//
// DispIntf:  ILines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {889A9B9C-7533-4EC5-8E2C-5ECF8228B06F}
// *********************************************************************//
template<class T>
class ILinesDispT : public TAutoDriver<ILines>
{
public:
  ILinesDispT(){}

  ILinesDispT(ILines *pintf)
  {
    TAutoDriver<ILines>::Bind(pintf, false);
  }

  ILinesDispT(ILinesPtr pintf)
  {
    TAutoDriver<ILines>::Bind(pintf, true);
  }

  ILinesDispT& operator=(ILines *pintf)
  {
    TAutoDriver<ILines>::Bind(pintf, false);
    return *this;
  }

  ILinesDispT& operator=(ILinesPtr pintf)
  {
    TAutoDriver<ILines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Lines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Lines);
  }

  HRESULT         __fastcall get_Line(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILinePtr __fastcall get_Line(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILinesDispT<ILines> ILinesDisp;

// *********************************************************************//
// SmartIntf: TCOMILine
// Interface: ILine
// *********************************************************************//
template <class T /* ILine */ >
class TCOMILineT : public TComInterface<ILine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILineT() {}
  TCOMILineT(ILine *intf, bool addRef = false) : TComInterface<ILine>(intf, addRef) {}
  TCOMILineT(const TCOMILineT& src) : TComInterface<ILine>(src) {}
  TCOMILineT& operator=(const TCOMILineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMILineT<ILine> TCOMILine;

// *********************************************************************//
// DispIntf:  ILine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EA0DA9B-F2C0-40C4-BE36-7103509A9389}
// *********************************************************************//
template<class T>
class ILineDispT : public TAutoDriver<ILine>
{
public:
  ILineDispT(){}

  ILineDispT(ILine *pintf)
  {
    TAutoDriver<ILine>::Bind(pintf, false);
  }

  ILineDispT(ILinePtr pintf)
  {
    TAutoDriver<ILine>::Bind(pintf, true);
  }

  ILineDispT& operator=(ILine *pintf)
  {
    TAutoDriver<ILine>::Bind(pintf, false);
    return *this;
  }

  ILineDispT& operator=(ILinePtr pintf)
  {
    TAutoDriver<ILine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Line));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Line);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILineDispT<ILine> ILineDisp;

// *********************************************************************//
// SmartIntf: TCOMIPolyLines2D
// Interface: IPolyLines2D
// *********************************************************************//
template <class T /* IPolyLines2D */ >
class TCOMIPolyLines2DT : public TComInterface<IPolyLines2D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPolyLines2DT() {}
  TCOMIPolyLines2DT(IPolyLines2D *intf, bool addRef = false) : TComInterface<IPolyLines2D>(intf, addRef) {}
  TCOMIPolyLines2DT(const TCOMIPolyLines2DT& src) : TComInterface<IPolyLines2D>(src) {}
  TCOMIPolyLines2DT& operator=(const TCOMIPolyLines2DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_PolyLine2D(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLine2DPtr __fastcall get_PolyLine2D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLine2DPtr __fastcall Add(void);

};
typedef TCOMIPolyLines2DT<IPolyLines2D> TCOMIPolyLines2D;

// *********************************************************************//
// DispIntf:  IPolyLines2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D1A9CB2D-A259-4CCC-9CD4-FA006494BCA7}
// *********************************************************************//
template<class T>
class IPolyLines2DDispT : public TAutoDriver<IPolyLines2D>
{
public:
  IPolyLines2DDispT(){}

  IPolyLines2DDispT(IPolyLines2D *pintf)
  {
    TAutoDriver<IPolyLines2D>::Bind(pintf, false);
  }

  IPolyLines2DDispT(IPolyLines2DPtr pintf)
  {
    TAutoDriver<IPolyLines2D>::Bind(pintf, true);
  }

  IPolyLines2DDispT& operator=(IPolyLines2D *pintf)
  {
    TAutoDriver<IPolyLines2D>::Bind(pintf, false);
    return *this;
  }

  IPolyLines2DDispT& operator=(IPolyLines2DPtr pintf)
  {
    TAutoDriver<IPolyLines2D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PolyLines2D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PolyLines2D);
  }

  HRESULT         __fastcall get_PolyLine2D(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLine2DPtr __fastcall get_PolyLine2D(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IPolyLine2DPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPolyLines2DDispT<IPolyLines2D> IPolyLines2DDisp;

// *********************************************************************//
// SmartIntf: TCOMIPolyLine2D
// Interface: IPolyLine2D
// *********************************************************************//
template <class T /* IPolyLine2D */ >
class TCOMIPolyLine2DT : public TComInterface<IPolyLine2D>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPolyLine2DT() {}
  TCOMIPolyLine2DT(IPolyLine2D *intf, bool addRef = false) : TComInterface<IPolyLine2D>(intf, addRef) {}
  TCOMIPolyLine2DT(const TCOMIPolyLine2DT& src) : TComInterface<IPolyLine2D>(src) {}
  TCOMIPolyLine2DT& operator=(const TCOMIPolyLine2DT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall get_PointsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_PointsCount(void);
  HRESULT         __fastcall set_Points(TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall get_Points(TVariant* Points/*[out,retval]*/);
  TVariant        __fastcall get_Points(void);
  HRESULT         __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeletePoint(long Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIPolyLine2DT<IPolyLine2D> TCOMIPolyLine2D;

// *********************************************************************//
// DispIntf:  IPolyLine2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D0DA413-9507-4795-896F-E049FA6E44DD}
// *********************************************************************//
template<class T>
class IPolyLine2DDispT : public TAutoDriver<IPolyLine2D>
{
public:
  IPolyLine2DDispT(){}

  IPolyLine2DDispT(IPolyLine2D *pintf)
  {
    TAutoDriver<IPolyLine2D>::Bind(pintf, false);
  }

  IPolyLine2DDispT(IPolyLine2DPtr pintf)
  {
    TAutoDriver<IPolyLine2D>::Bind(pintf, true);
  }

  IPolyLine2DDispT& operator=(IPolyLine2D *pintf)
  {
    TAutoDriver<IPolyLine2D>::Bind(pintf, false);
    return *this;
  }

  IPolyLine2DDispT& operator=(IPolyLine2DPtr pintf)
  {
    TAutoDriver<IPolyLine2D>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PolyLine2D));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PolyLine2D);
  }

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall get_PointsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_PointsCount(void);
  HRESULT         __fastcall set_Points(TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall get_Points(TVariant* Points/*[out,retval]*/);
  TVariant        __fastcall get_Points(void);
  HRESULT         __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/);
  HRESULT         __fastcall DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeletePoint(long Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPolyLine2DDispT<IPolyLine2D> IPolyLine2DDisp;

// *********************************************************************//
// SmartIntf: TCOMINurbses
// Interface: INurbses
// *********************************************************************//
template <class T /* INurbses */ >
class TCOMINurbsesT : public TComInterface<INurbses>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMINurbsesT() {}
  TCOMINurbsesT(INurbses *intf, bool addRef = false) : TComInterface<INurbses>(intf, addRef) {}
  TCOMINurbsesT(const TCOMINurbsesT& src) : TComInterface<INurbses>(src) {}
  TCOMINurbsesT& operator=(const TCOMINurbsesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Nurbs(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsPtr __fastcall get_Nurbs(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsPtr __fastcall Add(void);
  HRESULT         __fastcall Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                     Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsPtr __fastcall Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/);

};
typedef TCOMINurbsesT<INurbses> TCOMINurbses;

// *********************************************************************//
// DispIntf:  INurbses
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88ECED7C-181C-4D9F-84DE-44B2E360F278}
// *********************************************************************//
template<class T>
class INurbsesDispT : public TAutoDriver<INurbses>
{
public:
  INurbsesDispT(){}

  INurbsesDispT(INurbses *pintf)
  {
    TAutoDriver<INurbses>::Bind(pintf, false);
  }

  INurbsesDispT(INurbsesPtr pintf)
  {
    TAutoDriver<INurbses>::Bind(pintf, true);
  }

  INurbsesDispT& operator=(INurbses *pintf)
  {
    TAutoDriver<INurbses>::Bind(pintf, false);
    return *this;
  }

  INurbsesDispT& operator=(INurbsesPtr pintf)
  {
    TAutoDriver<INurbses>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Nurbses));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Nurbses);
  }

  HRESULT         __fastcall get_Nurbs(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsPtr __fastcall get_Nurbs(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsPtr __fastcall Add(void);
  HRESULT         __fastcall Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                                     Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::INurbsPtr __fastcall Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef INurbsesDispT<INurbses> INurbsesDisp;

// *********************************************************************//
// SmartIntf: TCOMINurbs
// Interface: INurbs
// *********************************************************************//
template <class T /* INurbs */ >
class TCOMINurbsT : public TComInterface<INurbs>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMINurbsT() {}
  TCOMINurbsT(INurbs *intf, bool addRef = false) : TComInterface<INurbs>(intf, addRef) {}
  TCOMINurbsT(const TCOMINurbsT& src) : TComInterface<INurbs>(src) {}
  TCOMINurbsT& operator=(const TCOMINurbsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall set_Degree(long Result/*[in]*/);
  HRESULT         __fastcall get_Degree(long* Result/*[out,retval]*/);
  long            __fastcall get_Degree(void);
  HRESULT         __fastcall get_Periodic(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Periodic(void);
  HRESULT         __fastcall get_PointsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_PointsCount(void);
  HRESULT         __fastcall SetNurbsParams(TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weight/*[in]*/, 
                                            TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                                            TOLEBOOL Closed/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetNurbsParams(TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weight/*[in]*/, 
                                            TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                                            TOLEBOOL Closed/*[in]*/);
  HRESULT         __fastcall GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                                            TVariant* Knots/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                                            TVariant* Knots/*[out]*/);
  HRESULT         __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      double Weight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      double Weight/*[in]*/);
  HRESULT         __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      double* Weight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      double* Weight/*[out]*/);
  HRESULT         __fastcall DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeletePoint(long Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            Degree = {read = get_Degree, write = set_Degree};
  __property   TOLEBOOL        Periodic = {read = get_Periodic};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMINurbsT<INurbs> TCOMINurbs;

// *********************************************************************//
// DispIntf:  INurbs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE1AB9F4-B127-4303-A30D-C3509F6D10CD}
// *********************************************************************//
template<class T>
class INurbsDispT : public TAutoDriver<INurbs>
{
public:
  INurbsDispT(){}

  INurbsDispT(INurbs *pintf)
  {
    TAutoDriver<INurbs>::Bind(pintf, false);
  }

  INurbsDispT(INurbsPtr pintf)
  {
    TAutoDriver<INurbs>::Bind(pintf, true);
  }

  INurbsDispT& operator=(INurbs *pintf)
  {
    TAutoDriver<INurbs>::Bind(pintf, false);
    return *this;
  }

  INurbsDispT& operator=(INurbsPtr pintf)
  {
    TAutoDriver<INurbs>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Nurbs));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Nurbs);
  }

  HRESULT         __fastcall set_Closed(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Closed(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Closed(void);
  HRESULT         __fastcall set_Degree(long Result/*[in]*/);
  HRESULT         __fastcall get_Degree(long* Result/*[out,retval]*/);
  long            __fastcall get_Degree(void);
  HRESULT         __fastcall get_Periodic(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Periodic(void);
  HRESULT         __fastcall get_PointsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_PointsCount(void);
  HRESULT         __fastcall SetNurbsParams(TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weight/*[in]*/, 
                                            TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                                            TOLEBOOL Closed/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetNurbsParams(TVariantInParam Points/*[in]*/, 
                                            TVariantInParam Weight/*[in]*/, 
                                            TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                                            TOLEBOOL Closed/*[in]*/);
  HRESULT         __fastcall GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                                            TVariant* Knots/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                                            TVariant* Knots/*[out]*/);
  HRESULT         __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      double Weight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      double Weight/*[in]*/);
  HRESULT         __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      double* Weight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      double* Weight/*[out]*/);
  HRESULT         __fastcall DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeletePoint(long Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        Closed = {read = get_Closed, write = set_Closed};
  __property   long            Degree = {read = get_Degree, write = set_Degree};
  __property   TOLEBOOL        Periodic = {read = get_Periodic};
  __property   long            PointsCount = {read = get_PointsCount};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef INurbsDispT<INurbs> INurbsDisp;

// *********************************************************************//
// SmartIntf: TCOMIRasters
// Interface: IRasters
// *********************************************************************//
template <class T /* IRasters */ >
class TCOMIRastersT : public TComInterface<IRasters>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRastersT() {}
  TCOMIRastersT(IRasters *intf, bool addRef = false) : TComInterface<IRasters>(intf, addRef) {}
  TCOMIRastersT(const TCOMIRastersT& src) : TComInterface<IRasters>(src) {}
  TCOMIRastersT& operator=(const TCOMIRastersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Raster(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRasterPtr __fastcall get_Raster(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRasterPtr __fastcall Add(void);

};
typedef TCOMIRastersT<IRasters> TCOMIRasters;

// *********************************************************************//
// DispIntf:  IRasters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C6E4E32D-E077-4B14-B9DE-041BD628C38C}
// *********************************************************************//
template<class T>
class IRastersDispT : public TAutoDriver<IRasters>
{
public:
  IRastersDispT(){}

  IRastersDispT(IRasters *pintf)
  {
    TAutoDriver<IRasters>::Bind(pintf, false);
  }

  IRastersDispT(IRastersPtr pintf)
  {
    TAutoDriver<IRasters>::Bind(pintf, true);
  }

  IRastersDispT& operator=(IRasters *pintf)
  {
    TAutoDriver<IRasters>::Bind(pintf, false);
    return *this;
  }

  IRastersDispT& operator=(IRastersPtr pintf)
  {
    TAutoDriver<IRasters>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Rasters));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Rasters);
  }

  HRESULT         __fastcall get_Raster(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRasterPtr __fastcall get_Raster(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRasterPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRastersDispT<IRasters> IRastersDisp;

// *********************************************************************//
// SmartIntf: TCOMIRaster
// Interface: IRaster
// *********************************************************************//
template <class T /* IRaster */ >
class TCOMIRasterT : public TComInterface<IRaster>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRasterT() {}
  TCOMIRasterT(IRaster *intf, bool addRef = false) : TComInterface<IRaster>(intf, addRef) {}
  TCOMIRasterT(const TCOMIRasterT& src) : TComInterface<IRaster>(src) {}
  TCOMIRasterT& operator=(const TCOMIRasterT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_InsertionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertionType(void);
  HRESULT         __fastcall set_Resolution(double PVal/*[in]*/);
  HRESULT         __fastcall get_Resolution(double* PVal/*[out,retval]*/);
  double          __fastcall get_Resolution(void);
  HRESULT         __fastcall set_DisplayModePartial(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisplayModePartial(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisplayModePartial(void);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_SourceHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceHeight(void);
  HRESULT         __fastcall get_SourceWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceWidth(void);
  HRESULT         __fastcall get_Palette(long* PVal/*[out,retval]*/);
  long            __fastcall get_Palette(void);
  HRESULT         __fastcall get_IsEnableChangeResolution(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsEnableChangeResolution(void);
  HRESULT         __fastcall get_IsCutBoundarySet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsCutBoundarySet(void);

  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        InsertionType = {read = get_InsertionType, write = set_InsertionType};
  __property   double          Resolution = {read = get_Resolution, write = set_Resolution};
  __property   TOLEBOOL        DisplayModePartial = {read = get_DisplayModePartial, write = set_DisplayModePartial};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          SourceHeight = {read = get_SourceHeight};
  __property   double          SourceWidth = {read = get_SourceWidth};
  __property   long            Palette = {read = get_Palette};
  __property   TOLEBOOL        IsEnableChangeResolution = {read = get_IsEnableChangeResolution};
  __property   TOLEBOOL        IsCutBoundarySet = {read = get_IsCutBoundarySet};
};
typedef TCOMIRasterT<IRaster> TCOMIRaster;

// *********************************************************************//
// DispIntf:  IRaster
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DEED8D7B-404B-4F17-B42A-2F5E64818D0A}
// *********************************************************************//
template<class T>
class IRasterDispT : public TAutoDriver<IRaster>
{
public:
  IRasterDispT(){}

  IRasterDispT(IRaster *pintf)
  {
    TAutoDriver<IRaster>::Bind(pintf, false);
  }

  IRasterDispT(IRasterPtr pintf)
  {
    TAutoDriver<IRaster>::Bind(pintf, true);
  }

  IRasterDispT& operator=(IRaster *pintf)
  {
    TAutoDriver<IRaster>::Bind(pintf, false);
    return *this;
  }

  IRasterDispT& operator=(IRasterPtr pintf)
  {
    TAutoDriver<IRaster>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Raster));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Raster);
  }

  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_InsertionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertionType(void);
  HRESULT         __fastcall set_Resolution(double PVal/*[in]*/);
  HRESULT         __fastcall get_Resolution(double* PVal/*[out,retval]*/);
  double          __fastcall get_Resolution(void);
  HRESULT         __fastcall set_DisplayModePartial(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DisplayModePartial(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DisplayModePartial(void);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_SourceHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceHeight(void);
  HRESULT         __fastcall get_SourceWidth(double* PVal/*[out,retval]*/);
  double          __fastcall get_SourceWidth(void);
  HRESULT         __fastcall get_Palette(long* PVal/*[out,retval]*/);
  long            __fastcall get_Palette(void);
  HRESULT         __fastcall get_IsEnableChangeResolution(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsEnableChangeResolution(void);
  HRESULT         __fastcall get_IsCutBoundarySet(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IsCutBoundarySet(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        InsertionType = {read = get_InsertionType, write = set_InsertionType};
  __property   double          Resolution = {read = get_Resolution, write = set_Resolution};
  __property   TOLEBOOL        DisplayModePartial = {read = get_DisplayModePartial, write = set_DisplayModePartial};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   double          SourceHeight = {read = get_SourceHeight};
  __property   double          SourceWidth = {read = get_SourceWidth};
  __property   long            Palette = {read = get_Palette};
  __property   TOLEBOOL        IsEnableChangeResolution = {read = get_IsEnableChangeResolution};
  __property   TOLEBOOL        IsCutBoundarySet = {read = get_IsCutBoundarySet};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRasterDispT<IRaster> IRasterDisp;

// *********************************************************************//
// SmartIntf: TCOMIOleDrawingObjects
// Interface: IOleDrawingObjects
// *********************************************************************//
template <class T /* IOleDrawingObjects */ >
class TCOMIOleDrawingObjectsT : public TComInterface<IOleDrawingObjects>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIOleDrawingObjectsT() {}
  TCOMIOleDrawingObjectsT(IOleDrawingObjects *intf, bool addRef = false) : TComInterface<IOleDrawingObjects>(intf, addRef) {}
  TCOMIOleDrawingObjectsT(const TCOMIOleDrawingObjectsT& src) : TComInterface<IOleDrawingObjects>(src) {}
  TCOMIOleDrawingObjectsT& operator=(const TCOMIOleDrawingObjectsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_OleDrawingObject(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall get_OleDrawingObject(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall Add(void);

};
typedef TCOMIOleDrawingObjectsT<IOleDrawingObjects> TCOMIOleDrawingObjects;

// *********************************************************************//
// DispIntf:  IOleDrawingObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E7A8DD07-CD6B-45A6-B6AF-155A674BC7E4}
// *********************************************************************//
template<class T>
class IOleDrawingObjectsDispT : public TAutoDriver<IOleDrawingObjects>
{
public:
  IOleDrawingObjectsDispT(){}

  IOleDrawingObjectsDispT(IOleDrawingObjects *pintf)
  {
    TAutoDriver<IOleDrawingObjects>::Bind(pintf, false);
  }

  IOleDrawingObjectsDispT(IOleDrawingObjectsPtr pintf)
  {
    TAutoDriver<IOleDrawingObjects>::Bind(pintf, true);
  }

  IOleDrawingObjectsDispT& operator=(IOleDrawingObjects *pintf)
  {
    TAutoDriver<IOleDrawingObjects>::Bind(pintf, false);
    return *this;
  }

  IOleDrawingObjectsDispT& operator=(IOleDrawingObjectsPtr pintf)
  {
    TAutoDriver<IOleDrawingObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_OleDrawingObjects));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_OleDrawingObjects);
  }

  HRESULT         __fastcall get_OleDrawingObject(TVariantInParam Index/*[in]*/, 
                                                  Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall get_OleDrawingObject(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IOleDrawingObjectsDispT<IOleDrawingObjects> IOleDrawingObjectsDisp;

// *********************************************************************//
// SmartIntf: TCOMIOleDrawingObject
// Interface: IOleDrawingObject
// *********************************************************************//
template <class T /* IOleDrawingObject */ >
class TCOMIOleDrawingObjectT : public TComInterface<IOleDrawingObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIOleDrawingObjectT() {}
  TCOMIOleDrawingObjectT(IOleDrawingObject *intf, bool addRef = false) : TComInterface<IOleDrawingObject>(intf, addRef) {}
  TCOMIOleDrawingObjectT(const TCOMIOleDrawingObjectT& src) : TComInterface<IOleDrawingObject>(src) {}
  TCOMIOleDrawingObjectT& operator=(const TCOMIOleDrawingObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_ClassId(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ClassId(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ClassId(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_Link(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Link(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Link(void);
  HRESULT         __fastcall set_InsertionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertionType(void);
  HRESULT         __fastcall DoVerb(long iVerb/*[in]*/, LPDISPATCH* Result/*[out,retval]*/);
  LPDISPATCH      __fastcall DoVerb(long iVerb/*[in]*/);
  HRESULT         __fastcall Close(TOLEBOOL Save/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(TOLEBOOL Save/*[in]*/);

  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   BSTR            ClassId = {read = get_ClassId, write = set_ClassId};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        Link = {read = get_Link, write = set_Link};
  __property   TOLEBOOL        InsertionType = {read = get_InsertionType, write = set_InsertionType};
};
typedef TCOMIOleDrawingObjectT<IOleDrawingObject> TCOMIOleDrawingObject;

// *********************************************************************//
// DispIntf:  IOleDrawingObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9A0ECE23-7B60-44E0-9728-C56CAAA455A2}
// *********************************************************************//
template<class T>
class IOleDrawingObjectDispT : public TAutoDriver<IOleDrawingObject>
{
public:
  IOleDrawingObjectDispT(){}

  IOleDrawingObjectDispT(IOleDrawingObject *pintf)
  {
    TAutoDriver<IOleDrawingObject>::Bind(pintf, false);
  }

  IOleDrawingObjectDispT(IOleDrawingObjectPtr pintf)
  {
    TAutoDriver<IOleDrawingObject>::Bind(pintf, true);
  }

  IOleDrawingObjectDispT& operator=(IOleDrawingObject *pintf)
  {
    TAutoDriver<IOleDrawingObject>::Bind(pintf, false);
    return *this;
  }

  IOleDrawingObjectDispT& operator=(IOleDrawingObjectPtr pintf)
  {
    TAutoDriver<IOleDrawingObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_OleDrawingObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_OleDrawingObject);
  }

  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_ClassId(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_ClassId(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ClassId(void);
  HRESULT         __fastcall set_FileName(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall set_Link(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Link(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Link(void);
  HRESULT         __fastcall set_InsertionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_InsertionType(void);
  HRESULT         __fastcall DoVerb(long iVerb/*[in]*/, LPDISPATCH* Result/*[out,retval]*/);
  LPDISPATCH      __fastcall DoVerb(long iVerb/*[in]*/);
  HRESULT         __fastcall Close(TOLEBOOL Save/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Close(TOLEBOOL Save/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   BSTR            ClassId = {read = get_ClassId, write = set_ClassId};
  __property   BSTR            FileName = {read = get_FileName, write = set_FileName};
  __property   TOLEBOOL        Link = {read = get_Link, write = set_Link};
  __property   TOLEBOOL        InsertionType = {read = get_InsertionType, write = set_InsertionType};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IOleDrawingObjectDispT<IOleDrawingObject> IOleDrawingObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMIEllipses
// Interface: IEllipses
// *********************************************************************//
template <class T /* IEllipses */ >
class TCOMIEllipsesT : public TComInterface<IEllipses>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEllipsesT() {}
  TCOMIEllipsesT(IEllipses *intf, bool addRef = false) : TComInterface<IEllipses>(intf, addRef) {}
  TCOMIEllipsesT(const TCOMIEllipsesT& src) : TComInterface<IEllipses>(src) {}
  TCOMIEllipsesT& operator=(const TCOMIEllipsesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Ellipse(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipsePtr __fastcall get_Ellipse(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipsePtr __fastcall Add(void);

};
typedef TCOMIEllipsesT<IEllipses> TCOMIEllipses;

// *********************************************************************//
// DispIntf:  IEllipses
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {47633C44-93BB-4F41-A6CA-4F8CCAEA0659}
// *********************************************************************//
template<class T>
class IEllipsesDispT : public TAutoDriver<IEllipses>
{
public:
  IEllipsesDispT(){}

  IEllipsesDispT(IEllipses *pintf)
  {
    TAutoDriver<IEllipses>::Bind(pintf, false);
  }

  IEllipsesDispT(IEllipsesPtr pintf)
  {
    TAutoDriver<IEllipses>::Bind(pintf, true);
  }

  IEllipsesDispT& operator=(IEllipses *pintf)
  {
    TAutoDriver<IEllipses>::Bind(pintf, false);
    return *this;
  }

  IEllipsesDispT& operator=(IEllipsesPtr pintf)
  {
    TAutoDriver<IEllipses>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Ellipses));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Ellipses);
  }

  HRESULT         __fastcall get_Ellipse(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipsePtr __fastcall get_Ellipse(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipsePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEllipsesDispT<IEllipses> IEllipsesDisp;

// *********************************************************************//
// SmartIntf: TCOMIEllipse
// Interface: IEllipse
// *********************************************************************//
template <class T /* IEllipse */ >
class TCOMIEllipseT : public TComInterface<IEllipse>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEllipseT() {}
  TCOMIEllipseT(IEllipse *intf, bool addRef = false) : TComInterface<IEllipse>(intf, addRef) {}
  TCOMIEllipseT(const TCOMIEllipseT& src) : TComInterface<IEllipse>(src) {}
  TCOMIEllipseT& operator=(const TCOMIEllipseT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_SemiAxisA(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisA(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisA(void);
  HRESULT         __fastcall set_SemiAxisB(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisB(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisB(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          SemiAxisA = {read = get_SemiAxisA, write = set_SemiAxisA};
  __property   double          SemiAxisB = {read = get_SemiAxisB, write = set_SemiAxisB};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIEllipseT<IEllipse> TCOMIEllipse;

// *********************************************************************//
// DispIntf:  IEllipse
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F60C9107-D8E2-433C-A0E3-A4E508D09353}
// *********************************************************************//
template<class T>
class IEllipseDispT : public TAutoDriver<IEllipse>
{
public:
  IEllipseDispT(){}

  IEllipseDispT(IEllipse *pintf)
  {
    TAutoDriver<IEllipse>::Bind(pintf, false);
  }

  IEllipseDispT(IEllipsePtr pintf)
  {
    TAutoDriver<IEllipse>::Bind(pintf, true);
  }

  IEllipseDispT& operator=(IEllipse *pintf)
  {
    TAutoDriver<IEllipse>::Bind(pintf, false);
    return *this;
  }

  IEllipseDispT& operator=(IEllipsePtr pintf)
  {
    TAutoDriver<IEllipse>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Ellipse));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Ellipse);
  }

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_SemiAxisA(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisA(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisA(void);
  HRESULT         __fastcall set_SemiAxisB(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisB(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisB(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          SemiAxisA = {read = get_SemiAxisA, write = set_SemiAxisA};
  __property   double          SemiAxisB = {read = get_SemiAxisB, write = set_SemiAxisB};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEllipseDispT<IEllipse> IEllipseDisp;

// *********************************************************************//
// SmartIntf: TCOMIEllipseArcs
// Interface: IEllipseArcs
// *********************************************************************//
template <class T /* IEllipseArcs */ >
class TCOMIEllipseArcsT : public TComInterface<IEllipseArcs>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEllipseArcsT() {}
  TCOMIEllipseArcsT(IEllipseArcs *intf, bool addRef = false) : TComInterface<IEllipseArcs>(intf, addRef) {}
  TCOMIEllipseArcsT(const TCOMIEllipseArcsT& src) : TComInterface<IEllipseArcs>(src) {}
  TCOMIEllipseArcsT& operator=(const TCOMIEllipseArcsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_EllipseArc(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipseArcPtr __fastcall get_EllipseArc(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipseArcPtr __fastcall Add(void);

};
typedef TCOMIEllipseArcsT<IEllipseArcs> TCOMIEllipseArcs;

// *********************************************************************//
// DispIntf:  IEllipseArcs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CC5B7FCB-B887-4A47-AE6B-2522DFA24433}
// *********************************************************************//
template<class T>
class IEllipseArcsDispT : public TAutoDriver<IEllipseArcs>
{
public:
  IEllipseArcsDispT(){}

  IEllipseArcsDispT(IEllipseArcs *pintf)
  {
    TAutoDriver<IEllipseArcs>::Bind(pintf, false);
  }

  IEllipseArcsDispT(IEllipseArcsPtr pintf)
  {
    TAutoDriver<IEllipseArcs>::Bind(pintf, true);
  }

  IEllipseArcsDispT& operator=(IEllipseArcs *pintf)
  {
    TAutoDriver<IEllipseArcs>::Bind(pintf, false);
    return *this;
  }

  IEllipseArcsDispT& operator=(IEllipseArcsPtr pintf)
  {
    TAutoDriver<IEllipseArcs>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_EllipseArcs));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_EllipseArcs);
  }

  HRESULT         __fastcall get_EllipseArc(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipseArcPtr __fastcall get_EllipseArc(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEllipseArcPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEllipseArcsDispT<IEllipseArcs> IEllipseArcsDisp;

// *********************************************************************//
// SmartIntf: TCOMIEllipseArc
// Interface: IEllipseArc
// *********************************************************************//
template <class T /* IEllipseArc */ >
class TCOMIEllipseArcT : public TComInterface<IEllipseArc>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEllipseArcT() {}
  TCOMIEllipseArcT(IEllipseArc *intf, bool addRef = false) : TComInterface<IEllipseArc>(intf, addRef) {}
  TCOMIEllipseArcT(const TCOMIEllipseArcT& src) : TComInterface<IEllipseArc>(src) {}
  TCOMIEllipseArcT& operator=(const TCOMIEllipseArcT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_T1(double PVal/*[in]*/);
  HRESULT         __fastcall get_T1(double* PVal/*[out,retval]*/);
  double          __fastcall get_T1(void);
  HRESULT         __fastcall set_T2(double PVal/*[in]*/);
  HRESULT         __fastcall get_T2(double* PVal/*[out,retval]*/);
  double          __fastcall get_T2(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_SemiAxisA(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisA(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisA(void);
  HRESULT         __fastcall set_SemiAxisB(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisB(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisB(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          T1 = {read = get_T1, write = set_T1};
  __property   double          T2 = {read = get_T2, write = set_T2};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          SemiAxisA = {read = get_SemiAxisA, write = set_SemiAxisA};
  __property   double          SemiAxisB = {read = get_SemiAxisB, write = set_SemiAxisB};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIEllipseArcT<IEllipseArc> TCOMIEllipseArc;

// *********************************************************************//
// DispIntf:  IEllipseArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {320D837F-0B27-45B0-98B4-9D21156E9857}
// *********************************************************************//
template<class T>
class IEllipseArcDispT : public TAutoDriver<IEllipseArc>
{
public:
  IEllipseArcDispT(){}

  IEllipseArcDispT(IEllipseArc *pintf)
  {
    TAutoDriver<IEllipseArc>::Bind(pintf, false);
  }

  IEllipseArcDispT(IEllipseArcPtr pintf)
  {
    TAutoDriver<IEllipseArc>::Bind(pintf, true);
  }

  IEllipseArcDispT& operator=(IEllipseArc *pintf)
  {
    TAutoDriver<IEllipseArc>::Bind(pintf, false);
    return *this;
  }

  IEllipseArcDispT& operator=(IEllipseArcPtr pintf)
  {
    TAutoDriver<IEllipseArc>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__EllipseArc));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__EllipseArc);
  }

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_T1(double PVal/*[in]*/);
  HRESULT         __fastcall get_T1(double* PVal/*[out,retval]*/);
  double          __fastcall get_T1(void);
  HRESULT         __fastcall set_T2(double PVal/*[in]*/);
  HRESULT         __fastcall get_T2(double* PVal/*[out,retval]*/);
  double          __fastcall get_T2(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_SemiAxisA(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisA(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisA(void);
  HRESULT         __fastcall set_SemiAxisB(double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisB(double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisB(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          T1 = {read = get_T1, write = set_T1};
  __property   double          T2 = {read = get_T2, write = set_T2};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          SemiAxisA = {read = get_SemiAxisA, write = set_SemiAxisA};
  __property   double          SemiAxisB = {read = get_SemiAxisB, write = set_SemiAxisB};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEllipseArcDispT<IEllipseArc> IEllipseArcDisp;

// *********************************************************************//
// SmartIntf: TCOMIRectangles
// Interface: IRectangles
// *********************************************************************//
template <class T /* IRectangles */ >
class TCOMIRectanglesT : public TComInterface<IRectangles>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRectanglesT() {}
  TCOMIRectanglesT(IRectangles *intf, bool addRef = false) : TComInterface<IRectangles>(intf, addRef) {}
  TCOMIRectanglesT(const TCOMIRectanglesT& src) : TComInterface<IRectangles>(src) {}
  TCOMIRectanglesT& operator=(const TCOMIRectanglesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Rectangle(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRectanglePtr __fastcall get_Rectangle(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRectanglePtr __fastcall Add(void);

};
typedef TCOMIRectanglesT<IRectangles> TCOMIRectangles;

// *********************************************************************//
// DispIntf:  IRectangles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D6BC2EE9-249F-4961-89A7-88DA854F35FE}
// *********************************************************************//
template<class T>
class IRectanglesDispT : public TAutoDriver<IRectangles>
{
public:
  IRectanglesDispT(){}

  IRectanglesDispT(IRectangles *pintf)
  {
    TAutoDriver<IRectangles>::Bind(pintf, false);
  }

  IRectanglesDispT(IRectanglesPtr pintf)
  {
    TAutoDriver<IRectangles>::Bind(pintf, true);
  }

  IRectanglesDispT& operator=(IRectangles *pintf)
  {
    TAutoDriver<IRectangles>::Bind(pintf, false);
    return *this;
  }

  IRectanglesDispT& operator=(IRectanglesPtr pintf)
  {
    TAutoDriver<IRectangles>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Rectangles));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Rectangles);
  }

  HRESULT         __fastcall get_Rectangle(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRectanglePtr __fastcall get_Rectangle(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRectanglePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRectanglesDispT<IRectangles> IRectanglesDisp;

// *********************************************************************//
// SmartIntf: TCOMIRectangle
// Interface: IRectangle
// *********************************************************************//
template <class T /* IRectangle */ >
class TCOMIRectangleT : public TComInterface<IRectangle>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRectangleT() {}
  TCOMIRectangleT(IRectangle *intf, bool addRef = false) : TComInterface<IRectangle>(intf, addRef) {}
  TCOMIRectangleT(const TCOMIRectangleT& src) : TComInterface<IRectangle>(src) {}
  TCOMIRectangleT& operator=(const TCOMIRectangleT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/);
  HRESULT         __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIRectangleT<IRectangle> TCOMIRectangle;

// *********************************************************************//
// DispIntf:  IRectangle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42F9FC58-FEA0-4E52-A604-1A00985AB772}
// *********************************************************************//
template<class T>
class IRectangleDispT : public TAutoDriver<IRectangle>
{
public:
  IRectangleDispT(){}

  IRectangleDispT(IRectangle *pintf)
  {
    TAutoDriver<IRectangle>::Bind(pintf, false);
  }

  IRectangleDispT(IRectanglePtr pintf)
  {
    TAutoDriver<IRectangle>::Bind(pintf, true);
  }

  IRectangleDispT& operator=(IRectangle *pintf)
  {
    TAutoDriver<IRectangle>::Bind(pintf, false);
    return *this;
  }

  IRectangleDispT& operator=(IRectanglePtr pintf)
  {
    TAutoDriver<IRectangle>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Rectangle));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Rectangle);
  }

  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Height(double PVal/*[in]*/);
  HRESULT         __fastcall get_Height(double* PVal/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Width(double PVal/*[in]*/);
  HRESULT         __fastcall get_Width(double* PVal/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/);
  HRESULT         __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRectangleDispT<IRectangle> IRectangleDisp;

// *********************************************************************//
// SmartIntf: TCOMIRegularPolygons
// Interface: IRegularPolygons
// *********************************************************************//
template <class T /* IRegularPolygons */ >
class TCOMIRegularPolygonsT : public TComInterface<IRegularPolygons>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRegularPolygonsT() {}
  TCOMIRegularPolygonsT(IRegularPolygons *intf, bool addRef = false) : TComInterface<IRegularPolygons>(intf, addRef) {}
  TCOMIRegularPolygonsT(const TCOMIRegularPolygonsT& src) : TComInterface<IRegularPolygons>(src) {}
  TCOMIRegularPolygonsT& operator=(const TCOMIRegularPolygonsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_RegularPolygon(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRegularPolygonPtr __fastcall get_RegularPolygon(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRegularPolygonPtr __fastcall Add(void);

};
typedef TCOMIRegularPolygonsT<IRegularPolygons> TCOMIRegularPolygons;

// *********************************************************************//
// DispIntf:  IRegularPolygons
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {80377CB2-073E-4C38-8532-C42A078BA719}
// *********************************************************************//
template<class T>
class IRegularPolygonsDispT : public TAutoDriver<IRegularPolygons>
{
public:
  IRegularPolygonsDispT(){}

  IRegularPolygonsDispT(IRegularPolygons *pintf)
  {
    TAutoDriver<IRegularPolygons>::Bind(pintf, false);
  }

  IRegularPolygonsDispT(IRegularPolygonsPtr pintf)
  {
    TAutoDriver<IRegularPolygons>::Bind(pintf, true);
  }

  IRegularPolygonsDispT& operator=(IRegularPolygons *pintf)
  {
    TAutoDriver<IRegularPolygons>::Bind(pintf, false);
    return *this;
  }

  IRegularPolygonsDispT& operator=(IRegularPolygonsPtr pintf)
  {
    TAutoDriver<IRegularPolygons>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RegularPolygons));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RegularPolygons);
  }

  HRESULT         __fastcall get_RegularPolygon(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRegularPolygonPtr __fastcall get_RegularPolygon(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRegularPolygonPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRegularPolygonsDispT<IRegularPolygons> IRegularPolygonsDisp;

// *********************************************************************//
// SmartIntf: TCOMIRegularPolygon
// Interface: IRegularPolygon
// *********************************************************************//
template <class T /* IRegularPolygon */ >
class TCOMIRegularPolygonT : public TComInterface<IRegularPolygon>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRegularPolygonT() {}
  TCOMIRegularPolygonT(IRegularPolygon *intf, bool addRef = false) : TComInterface<IRegularPolygon>(intf, addRef) {}
  TCOMIRegularPolygonT(const TCOMIRegularPolygonT& src) : TComInterface<IRegularPolygon>(src) {}
  TCOMIRegularPolygonT& operator=(const TCOMIRegularPolygonT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Count(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Describe(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Describe(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Describe(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/);
  HRESULT         __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/);

  __property   long            Count = {read = get_Count, write = set_Count};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Describe = {read = get_Describe, write = set_Describe};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIRegularPolygonT<IRegularPolygon> TCOMIRegularPolygon;

// *********************************************************************//
// DispIntf:  IRegularPolygon
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {51968648-F264-4904-A07F-653676AE1D35}
// *********************************************************************//
template<class T>
class IRegularPolygonDispT : public TAutoDriver<IRegularPolygon>
{
public:
  IRegularPolygonDispT(){}

  IRegularPolygonDispT(IRegularPolygon *pintf)
  {
    TAutoDriver<IRegularPolygon>::Bind(pintf, false);
  }

  IRegularPolygonDispT(IRegularPolygonPtr pintf)
  {
    TAutoDriver<IRegularPolygon>::Bind(pintf, true);
  }

  IRegularPolygonDispT& operator=(IRegularPolygon *pintf)
  {
    TAutoDriver<IRegularPolygon>::Bind(pintf, false);
    return *this;
  }

  IRegularPolygonDispT& operator=(IRegularPolygonPtr pintf)
  {
    TAutoDriver<IRegularPolygon>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RegularPolygon));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RegularPolygon);
  }

  HRESULT         __fastcall set_Count(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Describe(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Describe(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Describe(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum* Type/*[out]*/, 
                                       double* L1/*[out]*/, double* L2/*[out]*/);
  HRESULT         __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetCorner(long Index/*[in]*/, 
                                       ksCornerTypeEnum Type/*[in]*/, 
                                       double L1/*[in]*/, double L2/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Count = {read = get_Count, write = set_Count};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Describe = {read = get_Describe, write = set_Describe};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRegularPolygonDispT<IRegularPolygon> IRegularPolygonDisp;

// *********************************************************************//
// SmartIntf: TCOMIEquidistants
// Interface: IEquidistants
// *********************************************************************//
template <class T /* IEquidistants */ >
class TCOMIEquidistantsT : public TComInterface<IEquidistants>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEquidistantsT() {}
  TCOMIEquidistantsT(IEquidistants *intf, bool addRef = false) : TComInterface<IEquidistants>(intf, addRef) {}
  TCOMIEquidistantsT(const TCOMIEquidistantsT& src) : TComInterface<IEquidistants>(src) {}
  TCOMIEquidistantsT& operator=(const TCOMIEquidistantsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Equidistant(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistantPtr __fastcall get_Equidistant(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistantPtr __fastcall Add(void);

};
typedef TCOMIEquidistantsT<IEquidistants> TCOMIEquidistants;

// *********************************************************************//
// DispIntf:  IEquidistants
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {86182E5E-8FA3-4283-9DC5-43D1673C80DA}
// *********************************************************************//
template<class T>
class IEquidistantsDispT : public TAutoDriver<IEquidistants>
{
public:
  IEquidistantsDispT(){}

  IEquidistantsDispT(IEquidistants *pintf)
  {
    TAutoDriver<IEquidistants>::Bind(pintf, false);
  }

  IEquidistantsDispT(IEquidistantsPtr pintf)
  {
    TAutoDriver<IEquidistants>::Bind(pintf, true);
  }

  IEquidistantsDispT& operator=(IEquidistants *pintf)
  {
    TAutoDriver<IEquidistants>::Bind(pintf, false);
    return *this;
  }

  IEquidistantsDispT& operator=(IEquidistantsPtr pintf)
  {
    TAutoDriver<IEquidistants>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Equidistants));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Equidistants);
  }

  HRESULT         __fastcall get_Equidistant(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistantPtr __fastcall get_Equidistant(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IEquidistantPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEquidistantsDispT<IEquidistants> IEquidistantsDisp;

// *********************************************************************//
// SmartIntf: TCOMIEquidistant
// Interface: IEquidistant
// *********************************************************************//
template <class T /* IEquidistant */ >
class TCOMIEquidistantT : public TComInterface<IEquidistant>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIEquidistantT() {}
  TCOMIEquidistantT(IEquidistant *intf, bool addRef = false) : TComInterface<IEquidistant>(intf, addRef) {}
  TCOMIEquidistantT(const TCOMIEquidistantT& src) : TComInterface<IEquidistant>(src) {}
  TCOMIEquidistantT& operator=(const TCOMIEquidistantT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);
  HRESULT         __fastcall set_Side(ksEquidistantTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Side(ksEquidistantTypeEnum* PVal/*[out,retval]*/);
  ksEquidistantTypeEnum __fastcall get_Side(void);
  HRESULT         __fastcall set_CutMode(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CutMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CutMode(void);
  HRESULT         __fastcall set_DegenerateSegment(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DegenerateSegment(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DegenerateSegment(void);
  HRESULT         __fastcall set_LeftRadius(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftRadius(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftRadius(void);
  HRESULT         __fastcall set_RightRadius(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightRadius(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightRadius(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   ksEquidistantTypeEnum Side = {read = get_Side, write = set_Side};
  __property   TOLEBOOL        CutMode = {read = get_CutMode, write = set_CutMode};
  __property   TOLEBOOL        DegenerateSegment = {read = get_DegenerateSegment, write = set_DegenerateSegment};
  __property   double          LeftRadius = {read = get_LeftRadius, write = set_LeftRadius};
  __property   double          RightRadius = {read = get_RightRadius, write = set_RightRadius};
  __property   long            Style = {read = get_Style, write = set_Style};
};
typedef TCOMIEquidistantT<IEquidistant> TCOMIEquidistant;

// *********************************************************************//
// DispIntf:  IEquidistant
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE6713F9-AD9A-466D-9FB9-D19235E42C95}
// *********************************************************************//
template<class T>
class IEquidistantDispT : public TAutoDriver<IEquidistant>
{
public:
  IEquidistantDispT(){}

  IEquidistantDispT(IEquidistant *pintf)
  {
    TAutoDriver<IEquidistant>::Bind(pintf, false);
  }

  IEquidistantDispT(IEquidistantPtr pintf)
  {
    TAutoDriver<IEquidistant>::Bind(pintf, true);
  }

  IEquidistantDispT& operator=(IEquidistant *pintf)
  {
    TAutoDriver<IEquidistant>::Bind(pintf, false);
    return *this;
  }

  IEquidistantDispT& operator=(IEquidistantPtr pintf)
  {
    TAutoDriver<IEquidistant>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Equidistant));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Equidistant);
  }

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);
  HRESULT         __fastcall set_Side(ksEquidistantTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Side(ksEquidistantTypeEnum* PVal/*[out,retval]*/);
  ksEquidistantTypeEnum __fastcall get_Side(void);
  HRESULT         __fastcall set_CutMode(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CutMode(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CutMode(void);
  HRESULT         __fastcall set_DegenerateSegment(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DegenerateSegment(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DegenerateSegment(void);
  HRESULT         __fastcall set_LeftRadius(double PVal/*[in]*/);
  HRESULT         __fastcall get_LeftRadius(double* PVal/*[out,retval]*/);
  double          __fastcall get_LeftRadius(void);
  HRESULT         __fastcall set_RightRadius(double PVal/*[in]*/);
  HRESULT         __fastcall get_RightRadius(double* PVal/*[out,retval]*/);
  double          __fastcall get_RightRadius(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   ksEquidistantTypeEnum Side = {read = get_Side, write = set_Side};
  __property   TOLEBOOL        CutMode = {read = get_CutMode, write = set_CutMode};
  __property   TOLEBOOL        DegenerateSegment = {read = get_DegenerateSegment, write = set_DegenerateSegment};
  __property   double          LeftRadius = {read = get_LeftRadius, write = set_LeftRadius};
  __property   double          RightRadius = {read = get_RightRadius, write = set_RightRadius};
  __property   long            Style = {read = get_Style, write = set_Style};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IEquidistantDispT<IEquidistant> IEquidistantDisp;

// *********************************************************************//
// SmartIntf: TCOMIInsertionObjects
// Interface: IInsertionObjects
// *********************************************************************//
template <class T /* IInsertionObjects */ >
class TCOMIInsertionObjectsT : public TComInterface<IInsertionObjects>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertionObjectsT() {}
  TCOMIInsertionObjectsT(IInsertionObjects *intf, bool addRef = false) : TComInterface<IInsertionObjects>(intf, addRef) {}
  TCOMIInsertionObjectsT(const TCOMIInsertionObjectsT& src) : TComInterface<IInsertionObjects>(src) {}
  TCOMIInsertionObjectsT& operator=(const TCOMIInsertionObjectsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_InsertionObject(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionObjectPtr __fastcall get_InsertionObject(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/, 
                                 Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionObjectPtr __fastcall Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/);

};
typedef TCOMIInsertionObjectsT<IInsertionObjects> TCOMIInsertionObjects;

// *********************************************************************//
// DispIntf:  IInsertionObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C485550B-29E3-4F2A-A85C-C2795E0F1F86}
// *********************************************************************//
template<class T>
class IInsertionObjectsDispT : public TAutoDriver<IInsertionObjects>
{
public:
  IInsertionObjectsDispT(){}

  IInsertionObjectsDispT(IInsertionObjects *pintf)
  {
    TAutoDriver<IInsertionObjects>::Bind(pintf, false);
  }

  IInsertionObjectsDispT(IInsertionObjectsPtr pintf)
  {
    TAutoDriver<IInsertionObjects>::Bind(pintf, true);
  }

  IInsertionObjectsDispT& operator=(IInsertionObjects *pintf)
  {
    TAutoDriver<IInsertionObjects>::Bind(pintf, false);
    return *this;
  }

  IInsertionObjectsDispT& operator=(IInsertionObjectsPtr pintf)
  {
    TAutoDriver<IInsertionObjects>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_InsertionObjects));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_InsertionObjects);
  }

  HRESULT         __fastcall get_InsertionObject(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionObjectPtr __fastcall get_InsertionObject(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/, 
                                 Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionObjectPtr __fastcall Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertionObjectsDispT<IInsertionObjects> IInsertionObjectsDisp;

typedef TComInterface<IInsertionObject>  TCOMIInsertionObject;

// *********************************************************************//
// DispIntf:  IInsertionObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9E9CE68-371D-4600-9233-84D89A015C55}
// *********************************************************************//
template<class T>
class IInsertionObjectDispT : public TAutoDriver<IInsertionObject>
{
public:
  IInsertionObjectDispT(){}

  IInsertionObjectDispT(IInsertionObject *pintf)
  {
    TAutoDriver<IInsertionObject>::Bind(pintf, false);
  }

  IInsertionObjectDispT(IInsertionObjectPtr pintf)
  {
    TAutoDriver<IInsertionObject>::Bind(pintf, true);
  }

  IInsertionObjectDispT& operator=(IInsertionObject *pintf)
  {
    TAutoDriver<IInsertionObject>::Bind(pintf, false);
    return *this;
  }

  IInsertionObjectDispT& operator=(IInsertionObjectPtr pintf)
  {
    TAutoDriver<IInsertionObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall get_InsertionType(ksInsertionTypeEnum* PVal/*[out,retval]*/);
  ksInsertionTypeEnum __fastcall get_InsertionType(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(void);
  HRESULT         __fastcall set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            FileName = {read = get_FileName};
  __property   ksInsertionTypeEnum InsertionType = {read = get_InsertionType};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   Kompasltapi7_tlb::IInsertionDefinitionPtr InsertionDefinition = {read = get_InsertionDefinition, write = set_InsertionDefinition};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertionObjectDispT<IInsertionObject> IInsertionObjectDisp;

// *********************************************************************//
// SmartIntf: TCOMIHatches
// Interface: IHatches
// *********************************************************************//
template <class T /* IHatches */ >
class TCOMIHatchesT : public TComInterface<IHatches>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIHatchesT() {}
  TCOMIHatchesT(IHatches *intf, bool addRef = false) : TComInterface<IHatches>(intf, addRef) {}
  TCOMIHatchesT(const TCOMIHatchesT& src) : TComInterface<IHatches>(src) {}
  TCOMIHatchesT& operator=(const TCOMIHatchesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Hatch(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHatchPtr __fastcall get_Hatch(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHatchPtr __fastcall Add(void);

};
typedef TCOMIHatchesT<IHatches> TCOMIHatches;

// *********************************************************************//
// DispIntf:  IHatches
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B7E776B0-9524-4254-9D1F-0CF8E0314A1B}
// *********************************************************************//
template<class T>
class IHatchesDispT : public TAutoDriver<IHatches>
{
public:
  IHatchesDispT(){}

  IHatchesDispT(IHatches *pintf)
  {
    TAutoDriver<IHatches>::Bind(pintf, false);
  }

  IHatchesDispT(IHatchesPtr pintf)
  {
    TAutoDriver<IHatches>::Bind(pintf, true);
  }

  IHatchesDispT& operator=(IHatches *pintf)
  {
    TAutoDriver<IHatches>::Bind(pintf, false);
    return *this;
  }

  IHatchesDispT& operator=(IHatchesPtr pintf)
  {
    TAutoDriver<IHatches>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Hatches));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Hatches);
  }

  HRESULT         __fastcall get_Hatch(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHatchPtr __fastcall get_Hatch(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHatchPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IHatchesDispT<IHatches> IHatchesDisp;

// *********************************************************************//
// SmartIntf: TCOMIHatch
// Interface: IHatch
// *********************************************************************//
template <class T /* IHatch */ >
class TCOMIHatchT : public TComInterface<IHatch>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIHatchT() {}
  TCOMIHatchT(IHatch *intf, bool addRef = false) : TComInterface<IHatch>(intf, addRef) {}
  TCOMIHatchT(const TCOMIHatchT& src) : TComInterface<IHatch>(src) {}
  TCOMIHatchT& operator=(const TCOMIHatchT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_Side(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Side(void);
  HRESULT         __fastcall set_Side(TOLEBOOL Result/*[in]*/);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        Side = {read = get_Side, write = set_Side};
};
typedef TCOMIHatchT<IHatch> TCOMIHatch;

// *********************************************************************//
// DispIntf:  IHatch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {826C0B5B-0146-417A-8128-E581F8430F37}
// *********************************************************************//
template<class T>
class IHatchDispT : public TAutoDriver<IHatch>
{
public:
  IHatchDispT(){}

  IHatchDispT(IHatch *pintf)
  {
    TAutoDriver<IHatch>::Bind(pintf, false);
  }

  IHatchDispT(IHatchPtr pintf)
  {
    TAutoDriver<IHatch>::Bind(pintf, true);
  }

  IHatchDispT& operator=(IHatch *pintf)
  {
    TAutoDriver<IHatch>::Bind(pintf, false);
    return *this;
  }

  IHatchDispT& operator=(IHatchPtr pintf)
  {
    TAutoDriver<IHatch>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Hatch));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Hatch);
  }

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_Side(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Side(void);
  HRESULT         __fastcall set_Side(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        Side = {read = get_Side, write = set_Side};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IHatchDispT<IHatch> IHatchDisp;

// *********************************************************************//
// SmartIntf: TCOMIColourings
// Interface: IColourings
// *********************************************************************//
template <class T /* IColourings */ >
class TCOMIColouringsT : public TComInterface<IColourings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIColouringsT() {}
  TCOMIColouringsT(IColourings *intf, bool addRef = false) : TComInterface<IColourings>(intf, addRef) {}
  TCOMIColouringsT(const TCOMIColouringsT& src) : TComInterface<IColourings>(src) {}
  TCOMIColouringsT& operator=(const TCOMIColouringsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Colouring(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColouringPtr __fastcall get_Colouring(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColouringPtr __fastcall Add(void);

};
typedef TCOMIColouringsT<IColourings> TCOMIColourings;

// *********************************************************************//
// DispIntf:  IColourings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {60437DAD-2688-4146-B765-3FCC55C39D0F}
// *********************************************************************//
template<class T>
class IColouringsDispT : public TAutoDriver<IColourings>
{
public:
  IColouringsDispT(){}

  IColouringsDispT(IColourings *pintf)
  {
    TAutoDriver<IColourings>::Bind(pintf, false);
  }

  IColouringsDispT(IColouringsPtr pintf)
  {
    TAutoDriver<IColourings>::Bind(pintf, true);
  }

  IColouringsDispT& operator=(IColourings *pintf)
  {
    TAutoDriver<IColourings>::Bind(pintf, false);
    return *this;
  }

  IColouringsDispT& operator=(IColouringsPtr pintf)
  {
    TAutoDriver<IColourings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Colourings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Colourings);
  }

  HRESULT         __fastcall get_Colouring(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColouringPtr __fastcall get_Colouring(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IColouringPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IColouringsDispT<IColourings> IColouringsDisp;

// *********************************************************************//
// SmartIntf: TCOMIColouring
// Interface: IColouring
// *********************************************************************//
template <class T /* IColouring */ >
class TCOMIColouringT : public TComInterface<IColouring>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIColouringT() {}
  TCOMIColouringT(IColouring *intf, bool addRef = false) : TComInterface<IColouring>(intf, addRef) {}
  TCOMIColouringT(const TCOMIColouringT& src) : TComInterface<IColouring>(src) {}
  TCOMIColouringT& operator=(const TCOMIColouringT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ColouringType(ksColouringTypeEnum* Result/*[out,retval]*/);
  ksColouringTypeEnum __fastcall get_ColouringType(void);
  HRESULT         __fastcall set_ColouringType(ksColouringTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_Color1(long* Result/*[out,retval]*/);
  long            __fastcall get_Color1(void);
  HRESULT         __fastcall set_Color1(long Result/*[in]*/);
  HRESULT         __fastcall get_Color2(long* Result/*[out,retval]*/);
  long            __fastcall get_Color2(void);
  HRESULT         __fastcall set_Color2(long Result/*[in]*/);
  HRESULT         __fastcall get_Transparency1(long* PVal/*[out,retval]*/);
  long            __fastcall get_Transparency1(void);
  HRESULT         __fastcall set_Transparency1(long PVal/*[in]*/);
  HRESULT         __fastcall get_Transparency2(long* PVal/*[out,retval]*/);
  long            __fastcall get_Transparency2(void);
  HRESULT         __fastcall set_Transparency2(long PVal/*[in]*/);
  HRESULT         __fastcall get_GradientType(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_GradientType(void);
  HRESULT         __fastcall set_GradientType(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_GradientCount(long* Result/*[out,retval]*/);
  long            __fastcall get_GradientCount(void);
  HRESULT         __fastcall set_GradientCount(long Result/*[in]*/);
  HRESULT         __fastcall get_GradientAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_GradientAngle(void);
  HRESULT         __fastcall set_GradientAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_Xc(double* Result/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double Result/*[in]*/);
  HRESULT         __fastcall get_Yc(double* Result/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double Result/*[in]*/);
  HRESULT         __fastcall GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                           TVariant* Transparences/*[out]*/, 
                                           TVariant* Interpolations/*[out]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                           TVariant* Transparences/*[out]*/, 
                                           TVariant* Interpolations/*[out]*/);
  HRESULT         __fastcall SetGradations(TVariantInParam Positions/*[in]*/, 
                                           TVariantInParam Colors/*[in]*/, 
                                           TVariantInParam Transparences/*[in]*/, 
                                           TVariantInParam Interpolations/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetGradations(TVariantInParam Positions/*[in]*/, 
                                           TVariantInParam Colors/*[in]*/, 
                                           TVariantInParam Transparences/*[in]*/, 
                                           TVariantInParam Interpolations/*[in]*/);
  HRESULT         __fastcall AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                          long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/, 
                                          long* Result/*[out,retval]*/);
  long            __fastcall AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                          long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/);
  HRESULT         __fastcall ClearGradations(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ClearGradations(void);
  HRESULT         __fastcall get_GradationsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_GradationsCount(void);
  HRESULT         __fastcall GetGradation(long Index/*[in]*/, long* Position/*[out]*/, 
                                          long* Color/*[out]*/, long* Transparency/*[out]*/, 
                                          TOLEBOOL* Interpolation/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGradation(long Index/*[in]*/, long* Position/*[out]*/, 
                                          long* Color/*[out]*/, long* Transparency/*[out]*/, 
                                          TOLEBOOL* Interpolation/*[out]*/);
  HRESULT         __fastcall SetGradation(long Index/*[in]*/, long Position/*[in]*/, 
                                          long Color/*[in]*/, long Transparency/*[in]*/, 
                                          TOLEBOOL Interpolation/*[in]*/, 
                                          long* Result/*[out,retval]*/);
  long            __fastcall SetGradation(long Index/*[in]*/, long Position/*[in]*/, 
                                          long Color/*[in]*/, long Transparency/*[in]*/, 
                                          TOLEBOOL Interpolation/*[in]*/);
  HRESULT         __fastcall DeleteGradation(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteGradation(long Index/*[in]*/);
  HRESULT         __fastcall FindPosition(long Position/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall FindPosition(long Position/*[in]*/);

  __property   ksColouringTypeEnum ColouringType = {read = get_ColouringType, write = set_ColouringType};
  __property   long            Color1 = {read = get_Color1, write = set_Color1};
  __property   long            Color2 = {read = get_Color2, write = set_Color2};
  __property   long            Transparency1 = {read = get_Transparency1, write = set_Transparency1};
  __property   long            Transparency2 = {read = get_Transparency2, write = set_Transparency2};
  __property   TOLEBOOL        GradientType = {read = get_GradientType, write = set_GradientType};
  __property   long            GradientCount = {read = get_GradientCount, write = set_GradientCount};
  __property   double          GradientAngle = {read = get_GradientAngle, write = set_GradientAngle};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   long            GradationsCount = {read = get_GradationsCount};
};
typedef TCOMIColouringT<IColouring> TCOMIColouring;

// *********************************************************************//
// DispIntf:  IColouring
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1E0EF1B5-08D3-40B6-893E-3EE7E4FAEC98}
// *********************************************************************//
template<class T>
class IColouringDispT : public TAutoDriver<IColouring>
{
public:
  IColouringDispT(){}

  IColouringDispT(IColouring *pintf)
  {
    TAutoDriver<IColouring>::Bind(pintf, false);
  }

  IColouringDispT(IColouringPtr pintf)
  {
    TAutoDriver<IColouring>::Bind(pintf, true);
  }

  IColouringDispT& operator=(IColouring *pintf)
  {
    TAutoDriver<IColouring>::Bind(pintf, false);
    return *this;
  }

  IColouringDispT& operator=(IColouringPtr pintf)
  {
    TAutoDriver<IColouring>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Colouring));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Colouring);
  }

  HRESULT         __fastcall get_ColouringType(ksColouringTypeEnum* Result/*[out,retval]*/);
  ksColouringTypeEnum __fastcall get_ColouringType(void);
  HRESULT         __fastcall set_ColouringType(ksColouringTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_Color1(long* Result/*[out,retval]*/);
  long            __fastcall get_Color1(void);
  HRESULT         __fastcall set_Color1(long Result/*[in]*/);
  HRESULT         __fastcall get_Color2(long* Result/*[out,retval]*/);
  long            __fastcall get_Color2(void);
  HRESULT         __fastcall set_Color2(long Result/*[in]*/);
  HRESULT         __fastcall get_Transparency1(long* PVal/*[out,retval]*/);
  long            __fastcall get_Transparency1(void);
  HRESULT         __fastcall set_Transparency1(long PVal/*[in]*/);
  HRESULT         __fastcall get_Transparency2(long* PVal/*[out,retval]*/);
  long            __fastcall get_Transparency2(void);
  HRESULT         __fastcall set_Transparency2(long PVal/*[in]*/);
  HRESULT         __fastcall get_GradientType(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_GradientType(void);
  HRESULT         __fastcall set_GradientType(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_GradientCount(long* Result/*[out,retval]*/);
  long            __fastcall get_GradientCount(void);
  HRESULT         __fastcall set_GradientCount(long Result/*[in]*/);
  HRESULT         __fastcall get_GradientAngle(double* Result/*[out,retval]*/);
  double          __fastcall get_GradientAngle(void);
  HRESULT         __fastcall set_GradientAngle(double Result/*[in]*/);
  HRESULT         __fastcall get_Xc(double* Result/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double Result/*[in]*/);
  HRESULT         __fastcall get_Yc(double* Result/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double Result/*[in]*/);
  HRESULT         __fastcall GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                           TVariant* Transparences/*[out]*/, 
                                           TVariant* Interpolations/*[out]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                           TVariant* Transparences/*[out]*/, 
                                           TVariant* Interpolations/*[out]*/);
  HRESULT         __fastcall SetGradations(TVariantInParam Positions/*[in]*/, 
                                           TVariantInParam Colors/*[in]*/, 
                                           TVariantInParam Transparences/*[in]*/, 
                                           TVariantInParam Interpolations/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetGradations(TVariantInParam Positions/*[in]*/, 
                                           TVariantInParam Colors/*[in]*/, 
                                           TVariantInParam Transparences/*[in]*/, 
                                           TVariantInParam Interpolations/*[in]*/);
  HRESULT         __fastcall AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                          long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/
                                          , long* Result/*[out,retval]*/);
  long            __fastcall AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                          long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/);
  HRESULT         __fastcall ClearGradations(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall ClearGradations(void);
  HRESULT         __fastcall get_GradationsCount(long* Result/*[out,retval]*/);
  long            __fastcall get_GradationsCount(void);
  HRESULT         __fastcall GetGradation(long Index/*[in]*/, long* Position/*[out]*/, 
                                          long* Color/*[out]*/, long* Transparency/*[out]*/, 
                                          TOLEBOOL* Interpolation/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetGradation(long Index/*[in]*/, long* Position/*[out]*/, 
                                          long* Color/*[out]*/, long* Transparency/*[out]*/, 
                                          TOLEBOOL* Interpolation/*[out]*/);
  HRESULT         __fastcall SetGradation(long Index/*[in]*/, long Position/*[in]*/, 
                                          long Color/*[in]*/, long Transparency/*[in]*/, 
                                          TOLEBOOL Interpolation/*[in]*/, 
                                          long* Result/*[out,retval]*/);
  long            __fastcall SetGradation(long Index/*[in]*/, long Position/*[in]*/, 
                                          long Color/*[in]*/, long Transparency/*[in]*/, 
                                          TOLEBOOL Interpolation/*[in]*/);
  HRESULT         __fastcall DeleteGradation(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteGradation(long Index/*[in]*/);
  HRESULT         __fastcall FindPosition(long Position/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall FindPosition(long Position/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksColouringTypeEnum ColouringType = {read = get_ColouringType, write = set_ColouringType};
  __property   long            Color1 = {read = get_Color1, write = set_Color1};
  __property   long            Color2 = {read = get_Color2, write = set_Color2};
  __property   long            Transparency1 = {read = get_Transparency1, write = set_Transparency1};
  __property   long            Transparency2 = {read = get_Transparency2, write = set_Transparency2};
  __property   TOLEBOOL        GradientType = {read = get_GradientType, write = set_GradientType};
  __property   long            GradientCount = {read = get_GradientCount, write = set_GradientCount};
  __property   double          GradientAngle = {read = get_GradientAngle, write = set_GradientAngle};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   long            GradationsCount = {read = get_GradationsCount};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IColouringDispT<IColouring> IColouringDisp;

typedef TComInterface<IMark>  TCOMIMark;

// *********************************************************************//
// DispIntf:  IMark
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B5D1A0BE-8F3C-4143-B9C5-66F0CF0FE74D}
// *********************************************************************//
template<class T>
class IMarkDispT : public TAutoDriver<IMark>
{
public:
  IMarkDispT(){}

  IMarkDispT(IMark *pintf)
  {
    TAutoDriver<IMark>::Bind(pintf, false);
  }

  IMarkDispT(IMarkPtr pintf)
  {
    TAutoDriver<IMark>::Bind(pintf, true);
  }

  IMarkDispT& operator=(IMark *pintf)
  {
    TAutoDriver<IMark>::Bind(pintf, false);
    return *this;
  }

  IMarkDispT& operator=(IMarkPtr pintf)
  {
    TAutoDriver<IMark>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoNumber(void);
  HRESULT         __fastcall set_AutoNumber(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Number(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnder(void);
  HRESULT         __fastcall get_Comment(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoNumber = {read = get_AutoNumber, write = set_AutoNumber};
  __property   Kompasltapi7_tlb::ITextPtr Name = {read = get_Name};
  __property   Kompasltapi7_tlb::ITextPtr Number = {read = get_Number};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   Kompasltapi7_tlb::ITextPtr TextUnder = {read = get_TextUnder};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMarkDispT<IMark> IMarkDisp;

// *********************************************************************//
// SmartIntf: TCOMIMarks
// Interface: IMarks
// *********************************************************************//
template <class T /* IMarks */ >
class TCOMIMarksT : public TComInterface<IMarks>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMarksT() {}
  TCOMIMarksT(IMarks *intf, bool addRef = false) : TComInterface<IMarks>(intf, addRef) {}
  TCOMIMarksT(const TCOMIMarksT& src) : TComInterface<IMarks>(src) {}
  TCOMIMarksT& operator=(const TCOMIMarksT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Mark(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkPtr __fastcall get_Mark(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum MarkType/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkPtr __fastcall Add(DrawingObjectTypeEnum MarkType/*[in]*/);

};
typedef TCOMIMarksT<IMarks> TCOMIMarks;

// *********************************************************************//
// DispIntf:  IMarks
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {47585370-56BD-4419-82D9-DB7CBFB1A252}
// *********************************************************************//
template<class T>
class IMarksDispT : public TAutoDriver<IMarks>
{
public:
  IMarksDispT(){}

  IMarksDispT(IMarks *pintf)
  {
    TAutoDriver<IMarks>::Bind(pintf, false);
  }

  IMarksDispT(IMarksPtr pintf)
  {
    TAutoDriver<IMarks>::Bind(pintf, true);
  }

  IMarksDispT& operator=(IMarks *pintf)
  {
    TAutoDriver<IMarks>::Bind(pintf, false);
    return *this;
  }

  IMarksDispT& operator=(IMarksPtr pintf)
  {
    TAutoDriver<IMarks>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Marks));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Marks);
  }

  HRESULT         __fastcall get_Mark(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkPtr __fastcall get_Mark(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum MarkType/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkPtr __fastcall Add(DrawingObjectTypeEnum MarkType/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMarksDispT<IMarks> IMarksDisp;

// *********************************************************************//
// SmartIntf: TCOMIMarkInsideForm
// Interface: IMarkInsideForm
// *********************************************************************//
template <class T /* IMarkInsideForm */ >
class TCOMIMarkInsideFormT : public TComInterface<IMarkInsideForm>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMarkInsideFormT() {}
  TCOMIMarkInsideFormT(IMarkInsideForm *intf, bool addRef = false) : TComInterface<IMarkInsideForm>(intf, addRef) {}
  TCOMIMarkInsideFormT(const TCOMIMarkInsideFormT& src) : TComInterface<IMarkInsideForm>(src) {}
  TCOMIMarkInsideFormT& operator=(const TCOMIMarkInsideFormT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Angle(double* Result/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double Result/*[in]*/);
  HRESULT         __fastcall set_Form(ksMarkInsideFormEnum NewVal/*[in]*/);
  HRESULT         __fastcall get_Form(ksMarkInsideFormEnum* NewVal/*[out,retval]*/);
  ksMarkInsideFormEnum __fastcall get_Form(void);
  HRESULT         __fastcall set_FormGabarit(double PVal/*[in]*/);
  HRESULT         __fastcall get_FormGabarit(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormGabarit(void);
  HRESULT         __fastcall set_FormHeight(double PVal/*[in]*/);
  HRESULT         __fastcall get_FormHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormHeight(void);
  HRESULT         __fastcall set_FormStyle(long PVal/*[in]*/);
  HRESULT         __fastcall get_FormStyle(long* PVal/*[out,retval]*/);
  long            __fastcall get_FormStyle(void);

  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksMarkInsideFormEnum Form = {read = get_Form, write = set_Form};
  __property   double          FormGabarit = {read = get_FormGabarit, write = set_FormGabarit};
  __property   double          FormHeight = {read = get_FormHeight, write = set_FormHeight};
  __property   long            FormStyle = {read = get_FormStyle, write = set_FormStyle};
};
typedef TCOMIMarkInsideFormT<IMarkInsideForm> TCOMIMarkInsideForm;

// *********************************************************************//
// DispIntf:  IMarkInsideForm
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E5C5A0FF-6CAB-4179-9BF3-868D96BF6AEA}
// *********************************************************************//
template<class T>
class IMarkInsideFormDispT : public TAutoDriver<IMarkInsideForm>
{
public:
  IMarkInsideFormDispT(){}

  IMarkInsideFormDispT(IMarkInsideForm *pintf)
  {
    TAutoDriver<IMarkInsideForm>::Bind(pintf, false);
  }

  IMarkInsideFormDispT(IMarkInsideFormPtr pintf)
  {
    TAutoDriver<IMarkInsideForm>::Bind(pintf, true);
  }

  IMarkInsideFormDispT& operator=(IMarkInsideForm *pintf)
  {
    TAutoDriver<IMarkInsideForm>::Bind(pintf, false);
    return *this;
  }

  IMarkInsideFormDispT& operator=(IMarkInsideFormPtr pintf)
  {
    TAutoDriver<IMarkInsideForm>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MarkInsideForm));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MarkInsideForm);
  }

  HRESULT         __fastcall get_Angle(double* Result/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double Result/*[in]*/);
  HRESULT         __fastcall set_Form(ksMarkInsideFormEnum NewVal/*[in]*/);
  HRESULT         __fastcall get_Form(ksMarkInsideFormEnum* NewVal/*[out,retval]*/);
  ksMarkInsideFormEnum __fastcall get_Form(void);
  HRESULT         __fastcall set_FormGabarit(double PVal/*[in]*/);
  HRESULT         __fastcall get_FormGabarit(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormGabarit(void);
  HRESULT         __fastcall set_FormHeight(double PVal/*[in]*/);
  HRESULT         __fastcall get_FormHeight(double* PVal/*[out,retval]*/);
  double          __fastcall get_FormHeight(void);
  HRESULT         __fastcall set_FormStyle(long PVal/*[in]*/);
  HRESULT         __fastcall get_FormStyle(long* PVal/*[out,retval]*/);
  long            __fastcall get_FormStyle(void);
  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoNumber(void);
  HRESULT         __fastcall set_AutoNumber(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Number(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnder(void);
  HRESULT         __fastcall get_Comment(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksMarkInsideFormEnum Form = {read = get_Form, write = set_Form};
  __property   double          FormGabarit = {read = get_FormGabarit, write = set_FormGabarit};
  __property   double          FormHeight = {read = get_FormHeight, write = set_FormHeight};
  __property   long            FormStyle = {read = get_FormStyle, write = set_FormStyle};

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoNumber = {read = get_AutoNumber, write = set_AutoNumber};
  __property   Kompasltapi7_tlb::ITextPtr Name = {read = get_Name};
  __property   Kompasltapi7_tlb::ITextPtr Number = {read = get_Number};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   Kompasltapi7_tlb::ITextPtr TextUnder = {read = get_TextUnder};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMarkInsideFormDispT<IMarkInsideForm> IMarkInsideFormDisp;

// *********************************************************************//
// SmartIntf: TCOMIMarkOnLine
// Interface: IMarkOnLine
// *********************************************************************//
template <class T /* IMarkOnLine */ >
class TCOMIMarkOnLineT : public TComInterface<IMarkOnLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMarkOnLineT() {}
  TCOMIMarkOnLineT(IMarkOnLine *intf, bool addRef = false) : TComInterface<IMarkOnLine>(intf, addRef) {}
  TCOMIMarkOnLineT(const TCOMIMarkOnLineT& src) : TComInterface<IMarkOnLine>(src) {}
  TCOMIMarkOnLineT& operator=(const TCOMIMarkOnLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Position(ksMarkOnLinePosTypeEnum* Result/*[out,retval]*/);
  ksMarkOnLinePosTypeEnum __fastcall get_Position(void);
  HRESULT         __fastcall set_Position(ksMarkOnLinePosTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_Line(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Line(void);
  HRESULT         __fastcall set_Line(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);

  __property   ksMarkOnLinePosTypeEnum Position = {read = get_Position, write = set_Position};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr Line = {read = get_Line, write = set_Line};
};
typedef TCOMIMarkOnLineT<IMarkOnLine> TCOMIMarkOnLine;

// *********************************************************************//
// DispIntf:  IMarkOnLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A1540F9-7388-466F-A13C-EB1133423DD9}
// *********************************************************************//
template<class T>
class IMarkOnLineDispT : public TAutoDriver<IMarkOnLine>
{
public:
  IMarkOnLineDispT(){}

  IMarkOnLineDispT(IMarkOnLine *pintf)
  {
    TAutoDriver<IMarkOnLine>::Bind(pintf, false);
  }

  IMarkOnLineDispT(IMarkOnLinePtr pintf)
  {
    TAutoDriver<IMarkOnLine>::Bind(pintf, true);
  }

  IMarkOnLineDispT& operator=(IMarkOnLine *pintf)
  {
    TAutoDriver<IMarkOnLine>::Bind(pintf, false);
    return *this;
  }

  IMarkOnLineDispT& operator=(IMarkOnLinePtr pintf)
  {
    TAutoDriver<IMarkOnLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MarkOnLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MarkOnLine);
  }

  HRESULT         __fastcall get_Position(ksMarkOnLinePosTypeEnum* Result/*[out,retval]*/);
  ksMarkOnLinePosTypeEnum __fastcall get_Position(void);
  HRESULT         __fastcall set_Position(ksMarkOnLinePosTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_Line(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Line(void);
  HRESULT         __fastcall set_Line(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);
  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoNumber(void);
  HRESULT         __fastcall set_AutoNumber(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Number(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnder(void);
  HRESULT         __fastcall get_Comment(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksMarkOnLinePosTypeEnum Position = {read = get_Position, write = set_Position};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr Line = {read = get_Line, write = set_Line};

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoNumber = {read = get_AutoNumber, write = set_AutoNumber};
  __property   Kompasltapi7_tlb::ITextPtr Name = {read = get_Name};
  __property   Kompasltapi7_tlb::ITextPtr Number = {read = get_Number};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   Kompasltapi7_tlb::ITextPtr TextUnder = {read = get_TextUnder};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMarkOnLineDispT<IMarkOnLine> IMarkOnLineDisp;

// *********************************************************************//
// SmartIntf: TCOMIMarkOnLeader
// Interface: IMarkOnLeader
// *********************************************************************//
template <class T /* IMarkOnLeader */ >
class TCOMIMarkOnLeaderT : public TComInterface<IMarkOnLeader>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMarkOnLeaderT() {}
  TCOMIMarkOnLeaderT(IMarkOnLeader *intf, bool addRef = false) : TComInterface<IMarkOnLeader>(intf, addRef) {}
  TCOMIMarkOnLeaderT(const TCOMIMarkOnLeaderT& src) : TComInterface<IMarkOnLeader>(src) {}
  TCOMIMarkOnLeaderT& operator=(const TCOMIMarkOnLeaderT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ArrowType(ksArrowEnum* PVal/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ParallelBranch(void);
  HRESULT         __fastcall set_ParallelBranch(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BranchCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BranchCount(void);
  HRESULT         __fastcall set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BranchPoints(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BranchBegin(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BranchBegin(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchX(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchX(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchY(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchY(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_BranchPointsCount(long Index/*[in]*/);
  HRESULT         __fastcall AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                       TVariantInParam Points/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                       TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBranch(long Index/*[in]*/);

  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        ParallelBranch = {read = get_ParallelBranch, write = set_ParallelBranch};
  __property   long            BranchCount = {read = get_BranchCount};
};
typedef TCOMIMarkOnLeaderT<IMarkOnLeader> TCOMIMarkOnLeader;

// *********************************************************************//
// DispIntf:  IMarkOnLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F3D7E6A6-26EA-4D68-AD58-4DE194C47B4E}
// *********************************************************************//
template<class T>
class IMarkOnLeaderDispT : public TAutoDriver<IMarkOnLeader>
{
public:
  IMarkOnLeaderDispT(){}

  IMarkOnLeaderDispT(IMarkOnLeader *pintf)
  {
    TAutoDriver<IMarkOnLeader>::Bind(pintf, false);
  }

  IMarkOnLeaderDispT(IMarkOnLeaderPtr pintf)
  {
    TAutoDriver<IMarkOnLeader>::Bind(pintf, true);
  }

  IMarkOnLeaderDispT& operator=(IMarkOnLeader *pintf)
  {
    TAutoDriver<IMarkOnLeader>::Bind(pintf, false);
    return *this;
  }

  IMarkOnLeaderDispT& operator=(IMarkOnLeaderPtr pintf)
  {
    TAutoDriver<IMarkOnLeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MarkOnLeader));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MarkOnLeader);
  }

  HRESULT         __fastcall get_ArrowType(ksArrowEnum* PVal/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ParallelBranch(void);
  HRESULT         __fastcall set_ParallelBranch(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BranchCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BranchCount(void);
  HRESULT         __fastcall set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BranchPoints(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BranchBegin(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BranchBegin(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchX(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchX(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchY(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchY(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_BranchPointsCount(long Index/*[in]*/);
  HRESULT         __fastcall AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                       TVariantInParam Points/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                       TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                              double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBranch(long Index/*[in]*/);
  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoNumber(void);
  HRESULT         __fastcall set_AutoNumber(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Name(void);
  HRESULT         __fastcall get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Number(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnder(void);
  HRESULT         __fastcall get_Comment(BSTR* Result/*[out,retval]*/);
  BSTR            __fastcall get_Comment(void);
  HRESULT         __fastcall set_Comment(BSTR Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        ParallelBranch = {read = get_ParallelBranch, write = set_ParallelBranch};
  __property   long            BranchCount = {read = get_BranchCount};

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   TOLEBOOL        AutoNumber = {read = get_AutoNumber, write = set_AutoNumber};
  __property   Kompasltapi7_tlb::ITextPtr Name = {read = get_Name};
  __property   Kompasltapi7_tlb::ITextPtr Number = {read = get_Number};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   Kompasltapi7_tlb::ITextPtr TextUnder = {read = get_TextUnder};
  __property   BSTR            Comment = {read = get_Comment, write = set_Comment};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMarkOnLeaderDispT<IMarkOnLeader> IMarkOnLeaderDisp;

typedef TComInterface<IBuildingAxis>  TCOMIBuildingAxis;

// *********************************************************************//
// DispIntf:  IBuildingAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {123C45BF-14DE-433E-B3B0-2FB642A9A418}
// *********************************************************************//
template<class T>
class IBuildingAxisDispT : public TAutoDriver<IBuildingAxis>
{
public:
  IBuildingAxisDispT(){}

  IBuildingAxisDispT(IBuildingAxis *pintf)
  {
    TAutoDriver<IBuildingAxis>::Bind(pintf, false);
  }

  IBuildingAxisDispT(IBuildingAxisPtr pintf)
  {
    TAutoDriver<IBuildingAxis>::Bind(pintf, true);
  }

  IBuildingAxisDispT& operator=(IBuildingAxis *pintf)
  {
    TAutoDriver<IBuildingAxis>::Bind(pintf, false);
    return *this;
  }

  IBuildingAxisDispT& operator=(IBuildingAxisPtr pintf)
  {
    TAutoDriver<IBuildingAxis>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleMark(void);
  HRESULT         __fastcall set_MarkSize(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkSize(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkSize(void);
  HRESULT         __fastcall set_DottedLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_DottedLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_DottedLength(void);
  HRESULT         __fastcall set_Interval(double PVal/*[in]*/);
  HRESULT         __fastcall get_Interval(double* PVal/*[out,retval]*/);
  double          __fastcall get_Interval(void);
  HRESULT         __fastcall set_Stroke(double PVal/*[in]*/);
  HRESULT         __fastcall get_Stroke(double* PVal/*[out,retval]*/);
  double          __fastcall get_Stroke(void);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall set_AutoStroke(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoStroke(void);
  HRESULT         __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/, 
                                                TOLEBOOL* RetVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/);
  HRESULT         __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/
                                            , Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                           double Limit/*[in]*/);
  HRESULT         __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                            double X/*[in]*/, double Y/*[in]*/, 
                                            Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                                           double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          MarkSize = {read = get_MarkSize, write = set_MarkSize};
  __property   double          DottedLength = {read = get_DottedLength, write = set_DottedLength};
  __property   double          Interval = {read = get_Interval, write = set_Interval};
  __property   double          Stroke = {read = get_Stroke, write = set_Stroke};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   TOLEBOOL        AutoStroke = {read = get_AutoStroke, write = set_AutoStroke};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBuildingAxisDispT<IBuildingAxis> IBuildingAxisDisp;

// *********************************************************************//
// SmartIntf: TCOMIMarkNode
// Interface: IMarkNode
// *********************************************************************//
template <class T /* IMarkNode */ >
class TCOMIMarkNodeT : public TComInterface<IMarkNode>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMarkNodeT() {}
  TCOMIMarkNodeT(IMarkNode *intf, bool addRef = false) : TComInterface<IMarkNode>(intf, addRef) {}
  TCOMIMarkNodeT(const TCOMIMarkNodeT& src) : TComInterface<IMarkNode>(src) {}
  TCOMIMarkNodeT& operator=(const TCOMIMarkNodeT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_MarkType(ksMarkNodeEnum Val/*[in]*/);
  HRESULT         __fastcall get_MarkType(ksMarkNodeEnum* Val/*[out,retval]*/);
  ksMarkNodeEnum __fastcall get_MarkType(void);
  HRESULT         __fastcall set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleMark(void);
  HRESULT         __fastcall set_RefLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_RefLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_RefLength(void);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_MarkNodes(TOLEBOOL Left/*[in]*/, 
                                           Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(TOLEBOOL Left/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TOLEBOOL* RetVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/);

  __property   ksMarkNodeEnum MarkType = {read = get_MarkType, write = set_MarkType};
  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          RefLength = {read = get_RefLength, write = set_RefLength};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
};
typedef TCOMIMarkNodeT<IMarkNode> TCOMIMarkNode;

// *********************************************************************//
// DispIntf:  IMarkNode
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5AC48E97-80B1-459F-9709-1F3F374559BE}
// *********************************************************************//
template<class T>
class IMarkNodeDispT : public TAutoDriver<IMarkNode>
{
public:
  IMarkNodeDispT(){}

  IMarkNodeDispT(IMarkNode *pintf)
  {
    TAutoDriver<IMarkNode>::Bind(pintf, false);
  }

  IMarkNodeDispT(IMarkNodePtr pintf)
  {
    TAutoDriver<IMarkNode>::Bind(pintf, true);
  }

  IMarkNodeDispT& operator=(IMarkNode *pintf)
  {
    TAutoDriver<IMarkNode>::Bind(pintf, false);
    return *this;
  }

  IMarkNodeDispT& operator=(IMarkNodePtr pintf)
  {
    TAutoDriver<IMarkNode>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MarkNode));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MarkNode);
  }

  HRESULT         __fastcall set_MarkType(ksMarkNodeEnum Val/*[in]*/);
  HRESULT         __fastcall get_MarkType(ksMarkNodeEnum* Val/*[out,retval]*/);
  ksMarkNodeEnum __fastcall get_MarkType(void);
  HRESULT         __fastcall set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleMark(void);
  HRESULT         __fastcall set_RefLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_RefLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_RefLength(void);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_MarkNodes(TOLEBOOL Left/*[in]*/, 
                                           Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(TOLEBOOL Left/*[in]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/
                                                , TVariant* Directions/*[out]*/, 
                                                TOLEBOOL* RetVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksMarkNodeEnum MarkType = {read = get_MarkType, write = set_MarkType};
  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          RefLength = {read = get_RefLength, write = set_RefLength};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMarkNodeDispT<IMarkNode> IMarkNodeDisp;

// *********************************************************************//
// SmartIntf: TCOMIMarkNodes
// Interface: IMarkNodes
// *********************************************************************//
template <class T /* IMarkNodes */ >
class TCOMIMarkNodesT : public TComInterface<IMarkNodes>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMarkNodesT() {}
  TCOMIMarkNodesT(IMarkNodes *intf, bool addRef = false) : TComInterface<IMarkNodes>(intf, addRef) {}
  TCOMIMarkNodesT(const TCOMIMarkNodesT& src) : TComInterface<IMarkNodes>(src) {}
  TCOMIMarkNodesT& operator=(const TCOMIMarkNodesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksMarkNodeEnum Type/*[in]*/, 
                                 TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall Add(ksMarkNodeEnum Type/*[in]*/, 
                                                TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);

};
typedef TCOMIMarkNodesT<IMarkNodes> TCOMIMarkNodes;

// *********************************************************************//
// DispIntf:  IMarkNodes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EB8ACD77-8008-4F89-A311-2F4712462F72}
// *********************************************************************//
template<class T>
class IMarkNodesDispT : public TAutoDriver<IMarkNodes>
{
public:
  IMarkNodesDispT(){}

  IMarkNodesDispT(IMarkNodes *pintf)
  {
    TAutoDriver<IMarkNodes>::Bind(pintf, false);
  }

  IMarkNodesDispT(IMarkNodesPtr pintf)
  {
    TAutoDriver<IMarkNodes>::Bind(pintf, true);
  }

  IMarkNodesDispT& operator=(IMarkNodes *pintf)
  {
    TAutoDriver<IMarkNodes>::Bind(pintf, false);
    return *this;
  }

  IMarkNodesDispT& operator=(IMarkNodesPtr pintf)
  {
    TAutoDriver<IMarkNodes>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MarkNodes));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MarkNodes);
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(ksMarkNodeEnum Type/*[in]*/, 
                                 TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall Add(ksMarkNodeEnum Type/*[in]*/, 
                                                TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMarkNodesDispT<IMarkNodes> IMarkNodesDisp;

// *********************************************************************//
// SmartIntf: TCOMIBuildingAxes
// Interface: IBuildingAxes
// *********************************************************************//
template <class T /* IBuildingAxes */ >
class TCOMIBuildingAxesT : public TComInterface<IBuildingAxes>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBuildingAxesT() {}
  TCOMIBuildingAxesT(IBuildingAxes *intf, bool addRef = false) : TComInterface<IBuildingAxes>(intf, addRef) {}
  TCOMIBuildingAxesT(const TCOMIBuildingAxesT& src) : TComInterface<IBuildingAxes>(src) {}
  TCOMIBuildingAxesT& operator=(const TCOMIBuildingAxesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BuildingAxis(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBuildingAxisPtr __fastcall get_BuildingAxis(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum AxisType/*[in]*/, 
                                 Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBuildingAxisPtr __fastcall Add(DrawingObjectTypeEnum AxisType/*[in]*/);

};
typedef TCOMIBuildingAxesT<IBuildingAxes> TCOMIBuildingAxes;

// *********************************************************************//
// DispIntf:  IBuildingAxes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18072E1D-1802-41F5-A434-04BB9D3F157F}
// *********************************************************************//
template<class T>
class IBuildingAxesDispT : public TAutoDriver<IBuildingAxes>
{
public:
  IBuildingAxesDispT(){}

  IBuildingAxesDispT(IBuildingAxes *pintf)
  {
    TAutoDriver<IBuildingAxes>::Bind(pintf, false);
  }

  IBuildingAxesDispT(IBuildingAxesPtr pintf)
  {
    TAutoDriver<IBuildingAxes>::Bind(pintf, true);
  }

  IBuildingAxesDispT& operator=(IBuildingAxes *pintf)
  {
    TAutoDriver<IBuildingAxes>::Bind(pintf, false);
    return *this;
  }

  IBuildingAxesDispT& operator=(IBuildingAxesPtr pintf)
  {
    TAutoDriver<IBuildingAxes>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BuildingAxes));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BuildingAxes);
  }

  HRESULT         __fastcall get_BuildingAxis(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBuildingAxisPtr __fastcall get_BuildingAxis(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum AxisType/*[in]*/, 
                                 Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBuildingAxisPtr __fastcall Add(DrawingObjectTypeEnum AxisType/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBuildingAxesDispT<IBuildingAxes> IBuildingAxesDisp;

// *********************************************************************//
// SmartIntf: TCOMIStraightAxis
// Interface: IStraightAxis
// *********************************************************************//
template <class T /* IStraightAxis */ >
class TCOMIStraightAxisT : public TComInterface<IStraightAxis>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIStraightAxisT() {}
  TCOMIStraightAxisT(IStraightAxis *intf, bool addRef = false) : TComInterface<IStraightAxis>(intf, addRef) {}
  TCOMIStraightAxisT(const TCOMIStraightAxisT& src) : TComInterface<IStraightAxis>(src) {}
  TCOMIStraightAxisT& operator=(const TCOMIStraightAxisT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Jut(TOLEBOOL First/*[in]*/, 
                                     Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisJutPtr __fastcall get_Jut(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   Kompasltapi7_tlb::IMarkNodesPtr MarkNodes = {read = get_MarkNodes};
};
typedef TCOMIStraightAxisT<IStraightAxis> TCOMIStraightAxis;

// *********************************************************************//
// DispIntf:  IStraightAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7B2820E0-2CB7-4412-9B96-F291DD790448}
// *********************************************************************//
template<class T>
class IStraightAxisDispT : public TAutoDriver<IStraightAxis>
{
public:
  IStraightAxisDispT(){}

  IStraightAxisDispT(IStraightAxis *pintf)
  {
    TAutoDriver<IStraightAxis>::Bind(pintf, false);
  }

  IStraightAxisDispT(IStraightAxisPtr pintf)
  {
    TAutoDriver<IStraightAxis>::Bind(pintf, true);
  }

  IStraightAxisDispT& operator=(IStraightAxis *pintf)
  {
    TAutoDriver<IStraightAxis>::Bind(pintf, false);
    return *this;
  }

  IStraightAxisDispT& operator=(IStraightAxisPtr pintf)
  {
    TAutoDriver<IStraightAxis>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_StraightAxis));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_StraightAxis);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Jut(TOLEBOOL First/*[in]*/, 
                                     Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisJutPtr __fastcall get_Jut(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(void);
  HRESULT         __fastcall set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleMark(void);
  HRESULT         __fastcall set_MarkSize(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkSize(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkSize(void);
  HRESULT         __fastcall set_DottedLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_DottedLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_DottedLength(void);
  HRESULT         __fastcall set_Interval(double PVal/*[in]*/);
  HRESULT         __fastcall get_Interval(double* PVal/*[out,retval]*/);
  double          __fastcall get_Interval(void);
  HRESULT         __fastcall set_Stroke(double PVal/*[in]*/);
  HRESULT         __fastcall get_Stroke(double* PVal/*[out,retval]*/);
  double          __fastcall get_Stroke(void);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall set_AutoStroke(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoStroke(void);
  HRESULT         __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/, 
                                                TOLEBOOL* RetVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/);
  HRESULT         __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/
                                            , Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                           double Limit/*[in]*/);
  HRESULT         __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                            double X/*[in]*/, double Y/*[in]*/, 
                                            Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                                           double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   Kompasltapi7_tlb::IMarkNodesPtr MarkNodes = {read = get_MarkNodes};

  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          MarkSize = {read = get_MarkSize, write = set_MarkSize};
  __property   double          DottedLength = {read = get_DottedLength, write = set_DottedLength};
  __property   double          Interval = {read = get_Interval, write = set_Interval};
  __property   double          Stroke = {read = get_Stroke, write = set_Stroke};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   TOLEBOOL        AutoStroke = {read = get_AutoStroke, write = set_AutoStroke};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IStraightAxisDispT<IStraightAxis> IStraightAxisDisp;

// *********************************************************************//
// SmartIntf: TCOMIAxisJut
// Interface: IAxisJut
// *********************************************************************//
template <class T /* IAxisJut */ >
class TCOMIAxisJutT : public TComInterface<IAxisJut>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAxisJutT() {}
  TCOMIAxisJutT(IAxisJut *intf, bool addRef = false) : TComInterface<IAxisJut>(intf, addRef) {}
  TCOMIAxisJutT(const TCOMIAxisJutT& src) : TComInterface<IAxisJut>(src) {}
  TCOMIAxisJutT& operator=(const TCOMIAxisJutT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_MarkOffset(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkOffset(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkOffset(void);
  HRESULT         __fastcall set_BreakOffset(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakOffset(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakOffset(void);
  HRESULT         __fastcall set_BreakDirection(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_BreakDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BreakDirection(void);
  HRESULT         __fastcall set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MarkOn(void);

  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          MarkOffset = {read = get_MarkOffset, write = set_MarkOffset};
  __property   double          BreakOffset = {read = get_BreakOffset, write = set_BreakOffset};
  __property   TOLEBOOL        BreakDirection = {read = get_BreakDirection, write = set_BreakDirection};
  __property   TOLEBOOL        MarkOn = {read = get_MarkOn, write = set_MarkOn};
};
typedef TCOMIAxisJutT<IAxisJut> TCOMIAxisJut;

// *********************************************************************//
// DispIntf:  IAxisJut
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A22E024-F530-45DB-A3F2-CA0587BDA1B5}
// *********************************************************************//
template<class T>
class IAxisJutDispT : public TAutoDriver<IAxisJut>
{
public:
  IAxisJutDispT(){}

  IAxisJutDispT(IAxisJut *pintf)
  {
    TAutoDriver<IAxisJut>::Bind(pintf, false);
  }

  IAxisJutDispT(IAxisJutPtr pintf)
  {
    TAutoDriver<IAxisJut>::Bind(pintf, true);
  }

  IAxisJutDispT& operator=(IAxisJut *pintf)
  {
    TAutoDriver<IAxisJut>::Bind(pintf, false);
    return *this;
  }

  IAxisJutDispT& operator=(IAxisJutPtr pintf)
  {
    TAutoDriver<IAxisJut>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AxisJut));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AxisJut);
  }

  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_MarkOffset(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkOffset(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkOffset(void);
  HRESULT         __fastcall set_BreakOffset(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakOffset(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakOffset(void);
  HRESULT         __fastcall set_BreakDirection(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_BreakDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BreakDirection(void);
  HRESULT         __fastcall set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MarkOn(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          MarkOffset = {read = get_MarkOffset, write = set_MarkOffset};
  __property   double          BreakOffset = {read = get_BreakOffset, write = set_BreakOffset};
  __property   TOLEBOOL        BreakDirection = {read = get_BreakDirection, write = set_BreakDirection};
  __property   TOLEBOOL        MarkOn = {read = get_MarkOn, write = set_MarkOn};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAxisJutDispT<IAxisJut> IAxisJutDisp;

// *********************************************************************//
// SmartIntf: TCOMIArcAxis
// Interface: IArcAxis
// *********************************************************************//
template <class T /* IArcAxis */ >
class TCOMIArcAxisT : public TComInterface<IArcAxis>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIArcAxisT() {}
  TCOMIArcAxisT(IArcAxis *intf, bool addRef = false) : TComInterface<IArcAxis>(intf, addRef) {}
  TCOMIArcAxisT(const TCOMIArcAxisT& src) : TComInterface<IArcAxis>(src) {}
  TCOMIArcAxisT& operator=(const TCOMIArcAxisT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall get_Jut(TOLEBOOL First/*[in]*/, 
                                     Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisJutPtr __fastcall get_Jut(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   Kompasltapi7_tlb::IMarkNodesPtr MarkNodes = {read = get_MarkNodes};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
};
typedef TCOMIArcAxisT<IArcAxis> TCOMIArcAxis;

// *********************************************************************//
// DispIntf:  IArcAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DAA9755A-3971-4713-B281-15995CBF2E56}
// *********************************************************************//
template<class T>
class IArcAxisDispT : public TAutoDriver<IArcAxis>
{
public:
  IArcAxisDispT(){}

  IArcAxisDispT(IArcAxis *pintf)
  {
    TAutoDriver<IArcAxis>::Bind(pintf, false);
  }

  IArcAxisDispT(IArcAxisPtr pintf)
  {
    TAutoDriver<IArcAxis>::Bind(pintf, true);
  }

  IArcAxisDispT& operator=(IArcAxis *pintf)
  {
    TAutoDriver<IArcAxis>::Bind(pintf, false);
    return *this;
  }

  IArcAxisDispT& operator=(IArcAxisPtr pintf)
  {
    TAutoDriver<IArcAxis>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ArcAxis));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ArcAxis);
  }

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall get_Jut(TOLEBOOL First/*[in]*/, 
                                     Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisJutPtr __fastcall get_Jut(TOLEBOOL First/*[in]*/);
  HRESULT         __fastcall get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodesPtr __fastcall get_MarkNodes(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleMark(void);
  HRESULT         __fastcall set_MarkSize(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkSize(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkSize(void);
  HRESULT         __fastcall set_DottedLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_DottedLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_DottedLength(void);
  HRESULT         __fastcall set_Interval(double PVal/*[in]*/);
  HRESULT         __fastcall get_Interval(double* PVal/*[out,retval]*/);
  double          __fastcall get_Interval(void);
  HRESULT         __fastcall set_Stroke(double PVal/*[in]*/);
  HRESULT         __fastcall get_Stroke(double* PVal/*[out,retval]*/);
  double          __fastcall get_Stroke(void);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall set_AutoStroke(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoStroke(void);
  HRESULT         __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/, 
                                                TOLEBOOL* RetVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/);
  HRESULT         __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/
                                            , Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                           double Limit/*[in]*/);
  HRESULT         __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                            double X/*[in]*/, double Y/*[in]*/, 
                                            Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                                           double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   Kompasltapi7_tlb::IMarkNodesPtr MarkNodes = {read = get_MarkNodes};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};

  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          MarkSize = {read = get_MarkSize, write = set_MarkSize};
  __property   double          DottedLength = {read = get_DottedLength, write = set_DottedLength};
  __property   double          Interval = {read = get_Interval, write = set_Interval};
  __property   double          Stroke = {read = get_Stroke, write = set_Stroke};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   TOLEBOOL        AutoStroke = {read = get_AutoStroke, write = set_AutoStroke};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IArcAxisDispT<IArcAxis> IArcAxisDisp;

// *********************************************************************//
// SmartIntf: TCOMICircleAxis
// Interface: ICircleAxis
// *********************************************************************//
template <class T /* ICircleAxis */ >
class TCOMICircleAxisT : public TComInterface<ICircleAxis>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICircleAxisT() {}
  TCOMICircleAxisT(ICircleAxis *intf, bool addRef = false) : TComInterface<ICircleAxis>(intf, addRef) {}
  TCOMICircleAxisT(const TCOMICircleAxisT& src) : TComInterface<ICircleAxis>(src) {}
  TCOMICircleAxisT& operator=(const TCOMICircleAxisT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_MarkAngle(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkAngle(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkAngle(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MarkOn(void);
  HRESULT         __fastcall get_BaseMarkNode(Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall get_BaseMarkNode(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          MarkAngle = {read = get_MarkAngle, write = set_MarkAngle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        MarkOn = {read = get_MarkOn, write = set_MarkOn};
  __property   Kompasltapi7_tlb::IMarkNodePtr BaseMarkNode = {read = get_BaseMarkNode};
};
typedef TCOMICircleAxisT<ICircleAxis> TCOMICircleAxis;

// *********************************************************************//
// DispIntf:  ICircleAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D84358FB-674C-4A5D-93BA-EE5D3342097B}
// *********************************************************************//
template<class T>
class ICircleAxisDispT : public TAutoDriver<ICircleAxis>
{
public:
  ICircleAxisDispT(){}

  ICircleAxisDispT(ICircleAxis *pintf)
  {
    TAutoDriver<ICircleAxis>::Bind(pintf, false);
  }

  ICircleAxisDispT(ICircleAxisPtr pintf)
  {
    TAutoDriver<ICircleAxis>::Bind(pintf, true);
  }

  ICircleAxisDispT& operator=(ICircleAxis *pintf)
  {
    TAutoDriver<ICircleAxis>::Bind(pintf, false);
    return *this;
  }

  ICircleAxisDispT& operator=(ICircleAxisPtr pintf)
  {
    TAutoDriver<ICircleAxis>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CircleAxis));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CircleAxis);
  }

  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_MarkAngle(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkAngle(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkAngle(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MarkOn(void);
  HRESULT         __fastcall get_BaseMarkNode(Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall get_BaseMarkNode(void);
  HRESULT         __fastcall set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DoubleMark(void);
  HRESULT         __fastcall set_MarkSize(double PVal/*[in]*/);
  HRESULT         __fastcall get_MarkSize(double* PVal/*[out,retval]*/);
  double          __fastcall get_MarkSize(void);
  HRESULT         __fastcall set_DottedLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_DottedLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_DottedLength(void);
  HRESULT         __fastcall set_Interval(double PVal/*[in]*/);
  HRESULT         __fastcall get_Interval(double* PVal/*[out,retval]*/);
  double          __fastcall get_Interval(void);
  HRESULT         __fastcall set_Stroke(double PVal/*[in]*/);
  HRESULT         __fastcall get_Stroke(double* PVal/*[out,retval]*/);
  double          __fastcall get_Stroke(void);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextBefore(void);
  HRESULT         __fastcall get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfter(void);
  HRESULT         __fastcall set_AutoStroke(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoStroke(void);
  HRESULT         __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/, 
                                                TOLEBOOL* RetVal/*[out,retval]*/);
  TOLEBOOL        __fastcall GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                                TVariant* Directions/*[out]*/, 
                                                TVariant* Nodes/*[out]*/);
  HRESULT         __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/
                                            , Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, 
                                                           double Limit/*[in]*/);
  HRESULT         __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                            double X/*[in]*/, double Y/*[in]*/, 
                                            Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarkNodePtr __fastcall AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                                           double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          MarkAngle = {read = get_MarkAngle, write = set_MarkAngle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        MarkOn = {read = get_MarkOn, write = set_MarkOn};
  __property   Kompasltapi7_tlb::IMarkNodePtr BaseMarkNode = {read = get_BaseMarkNode};

  __property   TOLEBOOL        DoubleMark = {read = get_DoubleMark, write = set_DoubleMark};
  __property   double          MarkSize = {read = get_MarkSize, write = set_MarkSize};
  __property   double          DottedLength = {read = get_DottedLength, write = set_DottedLength};
  __property   double          Interval = {read = get_Interval, write = set_Interval};
  __property   double          Stroke = {read = get_Stroke, write = set_Stroke};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr TextBefore = {read = get_TextBefore};
  __property   Kompasltapi7_tlb::ITextPtr TextAfter = {read = get_TextAfter};
  __property   TOLEBOOL        AutoStroke = {read = get_AutoStroke, write = set_AutoStroke};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICircleAxisDispT<ICircleAxis> ICircleAxisDisp;

// *********************************************************************//
// SmartIntf: TCOMICutUnitMarking
// Interface: ICutUnitMarking
// *********************************************************************//
template <class T /* ICutUnitMarking */ >
class TCOMICutUnitMarkingT : public TComInterface<ICutUnitMarking>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICutUnitMarkingT() {}
  TCOMICutUnitMarkingT(ICutUnitMarking *intf, bool addRef = false) : TComInterface<ICutUnitMarking>(intf, addRef) {}
  TCOMICutUnitMarkingT(const TCOMICutUnitMarkingT& src) : TComInterface<ICutUnitMarking>(src) {}
  TCOMICutUnitMarkingT& operator=(const TCOMICutUnitMarkingT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_StrokeCount(long* Result/*[out,retval]*/);
  long            __fastcall get_StrokeCount(void);
  HRESULT         __fastcall set_StrokeX(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_StrokeX(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_StrokeX(long Index/*[in]*/);
  HRESULT         __fastcall set_StrokeY(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_StrokeY(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_StrokeY(long Index/*[in]*/);
  HRESULT         __fastcall set_Stroke(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Stroke(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Stroke(long Index/*[in]*/);
  HRESULT         __fastcall get_Angle(double* Result/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void);
  HRESULT         __fastcall get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void);
  HRESULT         __fastcall AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/);
  HRESULT         __fastcall DeleteStroke(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteStroke(long Index/*[in]*/);

  __property   long            StrokeCount = {read = get_StrokeCount};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};
};
typedef TCOMICutUnitMarkingT<ICutUnitMarking> TCOMICutUnitMarking;

// *********************************************************************//
// DispIntf:  ICutUnitMarking
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2EDA58EE-DBDA-44CC-AD10-6895006D498C}
// *********************************************************************//
template<class T>
class ICutUnitMarkingDispT : public TAutoDriver<ICutUnitMarking>
{
public:
  ICutUnitMarkingDispT(){}

  ICutUnitMarkingDispT(ICutUnitMarking *pintf)
  {
    TAutoDriver<ICutUnitMarking>::Bind(pintf, false);
  }

  ICutUnitMarkingDispT(ICutUnitMarkingPtr pintf)
  {
    TAutoDriver<ICutUnitMarking>::Bind(pintf, true);
  }

  ICutUnitMarkingDispT& operator=(ICutUnitMarking *pintf)
  {
    TAutoDriver<ICutUnitMarking>::Bind(pintf, false);
    return *this;
  }

  ICutUnitMarkingDispT& operator=(ICutUnitMarkingPtr pintf)
  {
    TAutoDriver<ICutUnitMarking>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CutUnitMarking));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CutUnitMarking);
  }

  HRESULT         __fastcall get_StrokeCount(long* Result/*[out,retval]*/);
  long            __fastcall get_StrokeCount(void);
  HRESULT         __fastcall set_StrokeX(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_StrokeX(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_StrokeX(long Index/*[in]*/);
  HRESULT         __fastcall set_StrokeY(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_StrokeY(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_StrokeY(long Index/*[in]*/);
  HRESULT         __fastcall set_Stroke(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_Stroke(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_Stroke(long Index/*[in]*/);
  HRESULT         __fastcall get_Angle(double* Result/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void);
  HRESULT         __fastcall get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void);
  HRESULT         __fastcall AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/);
  HRESULT         __fastcall DeleteStroke(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteStroke(long Index/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            StrokeCount = {read = get_StrokeCount};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICutUnitMarkingDispT<ICutUnitMarking> ICutUnitMarkingDisp;

// *********************************************************************//
// SmartIntf: TCOMICutUnitMarkings
// Interface: ICutUnitMarkings
// *********************************************************************//
template <class T /* ICutUnitMarkings */ >
class TCOMICutUnitMarkingsT : public TComInterface<ICutUnitMarkings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICutUnitMarkingsT() {}
  TCOMICutUnitMarkingsT(ICutUnitMarkings *intf, bool addRef = false) : TComInterface<ICutUnitMarkings>(intf, addRef) {}
  TCOMICutUnitMarkingsT(const TCOMICutUnitMarkingsT& src) : TComInterface<ICutUnitMarkings>(src) {}
  TCOMICutUnitMarkingsT& operator=(const TCOMICutUnitMarkingsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_CutUnitMarking(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ICutUnitMarkingPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall get_CutUnitMarking(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICutUnitMarkingPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall Add(void);

};
typedef TCOMICutUnitMarkingsT<ICutUnitMarkings> TCOMICutUnitMarkings;

// *********************************************************************//
// DispIntf:  ICutUnitMarkings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {23B00F94-98D3-4AD7-8827-F4088F4A9E5C}
// *********************************************************************//
template<class T>
class ICutUnitMarkingsDispT : public TAutoDriver<ICutUnitMarkings>
{
public:
  ICutUnitMarkingsDispT(){}

  ICutUnitMarkingsDispT(ICutUnitMarkings *pintf)
  {
    TAutoDriver<ICutUnitMarkings>::Bind(pintf, false);
  }

  ICutUnitMarkingsDispT(ICutUnitMarkingsPtr pintf)
  {
    TAutoDriver<ICutUnitMarkings>::Bind(pintf, true);
  }

  ICutUnitMarkingsDispT& operator=(ICutUnitMarkings *pintf)
  {
    TAutoDriver<ICutUnitMarkings>::Bind(pintf, false);
    return *this;
  }

  ICutUnitMarkingsDispT& operator=(ICutUnitMarkingsPtr pintf)
  {
    TAutoDriver<ICutUnitMarkings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CutUnitMarkings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CutUnitMarkings);
  }

  HRESULT         __fastcall get_CutUnitMarking(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::ICutUnitMarkingPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall get_CutUnitMarking(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICutUnitMarkingPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICutUnitMarkingsDispT<ICutUnitMarkings> ICutUnitMarkingsDisp;

// *********************************************************************//
// SmartIntf: TCOMIUnitMarking
// Interface: IUnitMarking
// *********************************************************************//
template <class T /* IUnitMarking */ >
class TCOMIUnitMarkingT : public TComInterface<IUnitMarking>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIUnitMarkingT() {}
  TCOMIUnitMarkingT(IUnitMarking *intf, bool addRef = false) : TComInterface<IUnitMarking>(intf, addRef) {}
  TCOMIUnitMarkingT(const TCOMIUnitMarkingT& src) : TComInterface<IUnitMarking>(src) {}
  TCOMIUnitMarkingT& operator=(const TCOMIUnitMarkingT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Xc(double* Result/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double Result/*[in]*/);
  HRESULT         __fastcall get_Yc(double* Result/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double Result/*[in]*/);
  HRESULT         __fastcall get_Radius(double* Result/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double Result/*[in]*/);
  HRESULT         __fastcall get_Height(double* Result/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double Result/*[in]*/);
  HRESULT         __fastcall get_Width(double* Result/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_Form(ksContourFormEnum* Result/*[out,retval]*/);
  ksContourFormEnum __fastcall get_Form(void);
  HRESULT         __fastcall set_Form(ksContourFormEnum Result/*[in]*/);
  HRESULT         __fastcall get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void);
  HRESULT         __fastcall get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void);
  HRESULT         __fastcall get_FilletRadius(double* Result/*[out,retval]*/);
  double          __fastcall get_FilletRadius(void);
  HRESULT         __fastcall set_FilletRadius(double Result/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksContourFormEnum Form = {read = get_Form, write = set_Form};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};
  __property   double          FilletRadius = {read = get_FilletRadius, write = set_FilletRadius};
};
typedef TCOMIUnitMarkingT<IUnitMarking> TCOMIUnitMarking;

// *********************************************************************//
// DispIntf:  IUnitMarking
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {86F46084-16A8-4B5C-99E9-F848216788F0}
// *********************************************************************//
template<class T>
class IUnitMarkingDispT : public TAutoDriver<IUnitMarking>
{
public:
  IUnitMarkingDispT(){}

  IUnitMarkingDispT(IUnitMarking *pintf)
  {
    TAutoDriver<IUnitMarking>::Bind(pintf, false);
  }

  IUnitMarkingDispT(IUnitMarkingPtr pintf)
  {
    TAutoDriver<IUnitMarking>::Bind(pintf, true);
  }

  IUnitMarkingDispT& operator=(IUnitMarking *pintf)
  {
    TAutoDriver<IUnitMarking>::Bind(pintf, false);
    return *this;
  }

  IUnitMarkingDispT& operator=(IUnitMarkingPtr pintf)
  {
    TAutoDriver<IUnitMarking>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_UnitMarking));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_UnitMarking);
  }

  HRESULT         __fastcall get_Xc(double* Result/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double Result/*[in]*/);
  HRESULT         __fastcall get_Yc(double* Result/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double Result/*[in]*/);
  HRESULT         __fastcall get_Radius(double* Result/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double Result/*[in]*/);
  HRESULT         __fastcall get_Height(double* Result/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double Result/*[in]*/);
  HRESULT         __fastcall get_Width(double* Result/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_Form(ksContourFormEnum* Result/*[out,retval]*/);
  ksContourFormEnum __fastcall get_Form(void);
  HRESULT         __fastcall set_Form(ksContourFormEnum Result/*[in]*/);
  HRESULT         __fastcall get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void);
  HRESULT         __fastcall get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void);
  HRESULT         __fastcall get_FilletRadius(double* Result/*[out,retval]*/);
  double          __fastcall get_FilletRadius(void);
  HRESULT         __fastcall set_FilletRadius(double Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksContourFormEnum Form = {read = get_Form, write = set_Form};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};
  __property   double          FilletRadius = {read = get_FilletRadius, write = set_FilletRadius};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IUnitMarkingDispT<IUnitMarking> IUnitMarkingDisp;

// *********************************************************************//
// SmartIntf: TCOMIUnitMarkings
// Interface: IUnitMarkings
// *********************************************************************//
template <class T /* IUnitMarkings */ >
class TCOMIUnitMarkingsT : public TComInterface<IUnitMarkings>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIUnitMarkingsT() {}
  TCOMIUnitMarkingsT(IUnitMarkings *intf, bool addRef = false) : TComInterface<IUnitMarkings>(intf, addRef) {}
  TCOMIUnitMarkingsT(const TCOMIUnitMarkingsT& src) : TComInterface<IUnitMarkings>(src) {}
  TCOMIUnitMarkingsT& operator=(const TCOMIUnitMarkingsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_UnitMarking(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IUnitMarkingPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitMarkingPtr __fastcall get_UnitMarking(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IUnitMarkingPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitMarkingPtr __fastcall Add(void);

};
typedef TCOMIUnitMarkingsT<IUnitMarkings> TCOMIUnitMarkings;

// *********************************************************************//
// DispIntf:  IUnitMarkings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {969AD901-FC09-47F5-94F5-1ABEB1A9C85C}
// *********************************************************************//
template<class T>
class IUnitMarkingsDispT : public TAutoDriver<IUnitMarkings>
{
public:
  IUnitMarkingsDispT(){}

  IUnitMarkingsDispT(IUnitMarkings *pintf)
  {
    TAutoDriver<IUnitMarkings>::Bind(pintf, false);
  }

  IUnitMarkingsDispT(IUnitMarkingsPtr pintf)
  {
    TAutoDriver<IUnitMarkings>::Bind(pintf, true);
  }

  IUnitMarkingsDispT& operator=(IUnitMarkings *pintf)
  {
    TAutoDriver<IUnitMarkings>::Bind(pintf, false);
    return *this;
  }

  IUnitMarkingsDispT& operator=(IUnitMarkingsPtr pintf)
  {
    TAutoDriver<IUnitMarkings>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_UnitMarkings));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_UnitMarkings);
  }

  HRESULT         __fastcall get_UnitMarking(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IUnitMarkingPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitMarkingPtr __fastcall get_UnitMarking(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IUnitMarkingPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitMarkingPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IUnitMarkingsDispT<IUnitMarkings> IUnitMarkingsDisp;

typedef TComInterface<IBuildingContainer>  TCOMIBuildingContainer;

// *********************************************************************//
// DispIntf:  IBuildingContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FD1FD236-F5BA-4FB0-A872-21FC13E6895F}
// *********************************************************************//
template<class T>
class IBuildingContainerDispT : public TAutoDriver<IBuildingContainer>
{
public:
  IBuildingContainerDispT(){}

  IBuildingContainerDispT(IBuildingContainer *pintf)
  {
    TAutoDriver<IBuildingContainer>::Bind(pintf, false);
  }

  IBuildingContainerDispT(IBuildingContainerPtr pintf)
  {
    TAutoDriver<IBuildingContainer>::Bind(pintf, true);
  }

  IBuildingContainerDispT& operator=(IBuildingContainer *pintf)
  {
    TAutoDriver<IBuildingContainer>::Bind(pintf, false);
    return *this;
  }

  IBuildingContainerDispT& operator=(IBuildingContainerPtr pintf)
  {
    TAutoDriver<IBuildingContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_BuildingAxes(Kompasltapi7_tlb::IBuildingAxesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBuildingAxesPtr __fastcall get_BuildingAxes(void);
  HRESULT         __fastcall get_Marks(Kompasltapi7_tlb::IMarksPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMarksPtr __fastcall get_Marks(void);
  HRESULT         __fastcall get_CutUnitMarkings(Kompasltapi7_tlb::ICutUnitMarkingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ICutUnitMarkingsPtr __fastcall get_CutUnitMarkings(void);
  HRESULT         __fastcall get_UnitMarkings(Kompasltapi7_tlb::IUnitMarkingsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitMarkingsPtr __fastcall get_UnitMarkings(void);
  HRESULT         __fastcall get_MultiTextLeaders(Kompasltapi7_tlb::IMultiTextLeadersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IMultiTextLeadersPtr __fastcall get_MultiTextLeaders(void);
  HRESULT         __fastcall get_UnitNumbers(Kompasltapi7_tlb::IUnitNumbersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitNumbersPtr __fastcall get_UnitNumbers(void);
  HRESULT         __fastcall get_Braces(Kompasltapi7_tlb::IBracesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBracesPtr __fastcall get_Braces(void);
  HRESULT         __fastcall get_BuildingCutLines(Kompasltapi7_tlb::ICutLinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ICutLinesPtr __fastcall get_BuildingCutLines(void);

  __property   Kompasltapi7_tlb::IBuildingAxesPtr BuildingAxes = {read = get_BuildingAxes};
  __property   Kompasltapi7_tlb::IMarksPtr Marks = {read = get_Marks};
  __property   Kompasltapi7_tlb::ICutUnitMarkingsPtr CutUnitMarkings = {read = get_CutUnitMarkings};
  __property   Kompasltapi7_tlb::IUnitMarkingsPtr UnitMarkings = {read = get_UnitMarkings};
  __property   Kompasltapi7_tlb::IMultiTextLeadersPtr MultiTextLeaders = {read = get_MultiTextLeaders};
  __property   Kompasltapi7_tlb::IUnitNumbersPtr UnitNumbers = {read = get_UnitNumbers};
  __property   Kompasltapi7_tlb::IBracesPtr Braces = {read = get_Braces};
  __property   Kompasltapi7_tlb::ICutLinesPtr BuildingCutLines = {read = get_BuildingCutLines};
};
typedef IBuildingContainerDispT<IBuildingContainer> IBuildingContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMIMultiTextLeaders
// Interface: IMultiTextLeaders
// *********************************************************************//
template <class T /* IMultiTextLeaders */ >
class TCOMIMultiTextLeadersT : public TComInterface<IMultiTextLeaders>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMultiTextLeadersT() {}
  TCOMIMultiTextLeadersT(IMultiTextLeaders *intf, bool addRef = false) : TComInterface<IMultiTextLeaders>(intf, addRef) {}
  TCOMIMultiTextLeadersT(const TCOMIMultiTextLeadersT& src) : TComInterface<IMultiTextLeaders>(src) {}
  TCOMIMultiTextLeadersT& operator=(const TCOMIMultiTextLeadersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_MultiTextLeader(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IMultiTextLeaderPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall get_MultiTextLeader(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IMultiTextLeaderPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall Add(void);

};
typedef TCOMIMultiTextLeadersT<IMultiTextLeaders> TCOMIMultiTextLeaders;

// *********************************************************************//
// DispIntf:  IMultiTextLeaders
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {233B2298-7A45-4CE1-AEF2-30B063FDB63C}
// *********************************************************************//
template<class T>
class IMultiTextLeadersDispT : public TAutoDriver<IMultiTextLeaders>
{
public:
  IMultiTextLeadersDispT(){}

  IMultiTextLeadersDispT(IMultiTextLeaders *pintf)
  {
    TAutoDriver<IMultiTextLeaders>::Bind(pintf, false);
  }

  IMultiTextLeadersDispT(IMultiTextLeadersPtr pintf)
  {
    TAutoDriver<IMultiTextLeaders>::Bind(pintf, true);
  }

  IMultiTextLeadersDispT& operator=(IMultiTextLeaders *pintf)
  {
    TAutoDriver<IMultiTextLeaders>::Bind(pintf, false);
    return *this;
  }

  IMultiTextLeadersDispT& operator=(IMultiTextLeadersPtr pintf)
  {
    TAutoDriver<IMultiTextLeaders>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MultiTextLeaders));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MultiTextLeaders);
  }

  HRESULT         __fastcall get_MultiTextLeader(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IMultiTextLeaderPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall get_MultiTextLeader(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IMultiTextLeaderPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMultiTextLeadersDispT<IMultiTextLeaders> IMultiTextLeadersDisp;

// *********************************************************************//
// SmartIntf: TCOMIMultiTextLeader
// Interface: IMultiTextLeader
// *********************************************************************//
template <class T /* IMultiTextLeader */ >
class TCOMIMultiTextLeaderT : public TComInterface<IMultiTextLeader>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMultiTextLeaderT() {}
  TCOMIMultiTextLeaderT(IMultiTextLeader *intf, bool addRef = false) : TComInterface<IMultiTextLeader>(intf, addRef) {}
  TCOMIMultiTextLeaderT(const TCOMIMultiTextLeaderT& src) : TComInterface<IMultiTextLeader>(src) {}
  TCOMIMultiTextLeaderT& operator=(const TCOMIMultiTextLeaderT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ArrowType(ksArrowEnum* Result/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum Result/*[in]*/);
  HRESULT         __fastcall get_BranchCount(long* Result/*[out,retval]*/);
  long            __fastcall get_BranchCount(void);
  HRESULT         __fastcall set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BranchPoints(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_BranchPointsCount(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchX(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchX(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchY(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchY(long Index/*[in]*/);
  HRESULT         __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBranch(long Index/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_TextDirection(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextDirection(void);
  HRESULT         __fastcall set_TextDirection(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Form(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Form(void);
  HRESULT         __fastcall set_Form(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Align(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);

  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   long            BranchCount = {read = get_BranchCount};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        TextDirection = {read = get_TextDirection, write = set_TextDirection};
  __property   TOLEBOOL        Form = {read = get_Form, write = set_Form};
  __property   TOLEBOOL        Align = {read = get_Align, write = set_Align};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
};
typedef TCOMIMultiTextLeaderT<IMultiTextLeader> TCOMIMultiTextLeader;

// *********************************************************************//
// DispIntf:  IMultiTextLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1BFC5D3F-1483-4569-B4B5-7A12163A4655}
// *********************************************************************//
template<class T>
class IMultiTextLeaderDispT : public TAutoDriver<IMultiTextLeader>
{
public:
  IMultiTextLeaderDispT(){}

  IMultiTextLeaderDispT(IMultiTextLeader *pintf)
  {
    TAutoDriver<IMultiTextLeader>::Bind(pintf, false);
  }

  IMultiTextLeaderDispT(IMultiTextLeaderPtr pintf)
  {
    TAutoDriver<IMultiTextLeader>::Bind(pintf, true);
  }

  IMultiTextLeaderDispT& operator=(IMultiTextLeader *pintf)
  {
    TAutoDriver<IMultiTextLeader>::Bind(pintf, false);
    return *this;
  }

  IMultiTextLeaderDispT& operator=(IMultiTextLeaderPtr pintf)
  {
    TAutoDriver<IMultiTextLeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MultiTextLeader));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MultiTextLeader);
  }

  HRESULT         __fastcall get_ArrowType(ksArrowEnum* Result/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum Result/*[in]*/);
  HRESULT         __fastcall get_BranchCount(long* Result/*[out,retval]*/);
  long            __fastcall get_BranchCount(void);
  HRESULT         __fastcall set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BranchPoints(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_BranchPointsCount(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchX(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchX(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchY(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchY(long Index/*[in]*/);
  HRESULT         __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/
                                              , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBranch(long Index/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_TextDirection(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextDirection(void);
  HRESULT         __fastcall set_TextDirection(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Form(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Form(void);
  HRESULT         __fastcall set_Form(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Align(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Align(void);
  HRESULT         __fastcall set_Align(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
  __property   long            BranchCount = {read = get_BranchCount};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        TextDirection = {read = get_TextDirection, write = set_TextDirection};
  __property   TOLEBOOL        Form = {read = get_Form, write = set_Form};
  __property   TOLEBOOL        Align = {read = get_Align, write = set_Align};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMultiTextLeaderDispT<IMultiTextLeader> IMultiTextLeaderDisp;

// *********************************************************************//
// SmartIntf: TCOMIUnitNumbers
// Interface: IUnitNumbers
// *********************************************************************//
template <class T /* IUnitNumbers */ >
class TCOMIUnitNumbersT : public TComInterface<IUnitNumbers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIUnitNumbersT() {}
  TCOMIUnitNumbersT(IUnitNumbers *intf, bool addRef = false) : TComInterface<IUnitNumbers>(intf, addRef) {}
  TCOMIUnitNumbersT(const TCOMIUnitNumbersT& src) : TComInterface<IUnitNumbers>(src) {}
  TCOMIUnitNumbersT& operator=(const TCOMIUnitNumbersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_UnitNumber(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IUnitNumberPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitNumberPtr __fastcall get_UnitNumber(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IUnitNumberPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitNumberPtr __fastcall Add(void);

};
typedef TCOMIUnitNumbersT<IUnitNumbers> TCOMIUnitNumbers;

// *********************************************************************//
// DispIntf:  IUnitNumbers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {598E649B-970C-454B-9162-1BB6C9FBFCBF}
// *********************************************************************//
template<class T>
class IUnitNumbersDispT : public TAutoDriver<IUnitNumbers>
{
public:
  IUnitNumbersDispT(){}

  IUnitNumbersDispT(IUnitNumbers *pintf)
  {
    TAutoDriver<IUnitNumbers>::Bind(pintf, false);
  }

  IUnitNumbersDispT(IUnitNumbersPtr pintf)
  {
    TAutoDriver<IUnitNumbers>::Bind(pintf, true);
  }

  IUnitNumbersDispT& operator=(IUnitNumbers *pintf)
  {
    TAutoDriver<IUnitNumbers>::Bind(pintf, false);
    return *this;
  }

  IUnitNumbersDispT& operator=(IUnitNumbersPtr pintf)
  {
    TAutoDriver<IUnitNumbers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_UnitNumbers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_UnitNumbers);
  }

  HRESULT         __fastcall get_UnitNumber(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IUnitNumberPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitNumberPtr __fastcall get_UnitNumber(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IUnitNumberPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IUnitNumberPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IUnitNumbersDispT<IUnitNumbers> IUnitNumbersDisp;

// *********************************************************************//
// SmartIntf: TCOMIUnitNumber
// Interface: IUnitNumber
// *********************************************************************//
template <class T /* IUnitNumber */ >
class TCOMIUnitNumberT : public TComInterface<IUnitNumber>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIUnitNumberT() {}
  TCOMIUnitNumberT(IUnitNumber *intf, bool addRef = false) : TComInterface<IUnitNumber>(intf, addRef) {}
  TCOMIUnitNumberT(const TCOMIUnitNumberT& src) : TComInterface<IUnitNumber>(src) {}
  TCOMIUnitNumberT& operator=(const TCOMIUnitNumberT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void);
  HRESULT         __fastcall get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};
};
typedef TCOMIUnitNumberT<IUnitNumber> TCOMIUnitNumber;

// *********************************************************************//
// DispIntf:  IUnitNumber
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FABAF607-CB92-47C4-9409-B7678162051D}
// *********************************************************************//
template<class T>
class IUnitNumberDispT : public TAutoDriver<IUnitNumber>
{
public:
  IUnitNumberDispT(){}

  IUnitNumberDispT(IUnitNumber *pintf)
  {
    TAutoDriver<IUnitNumber>::Bind(pintf, false);
  }

  IUnitNumberDispT(IUnitNumberPtr pintf)
  {
    TAutoDriver<IUnitNumber>::Bind(pintf, true);
  }

  IUnitNumberDispT& operator=(IUnitNumber *pintf)
  {
    TAutoDriver<IUnitNumber>::Bind(pintf, false);
    return *this;
  }

  IUnitNumberDispT& operator=(IUnitNumberPtr pintf)
  {
    TAutoDriver<IUnitNumber>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_UnitNumber));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_UnitNumber);
  }

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void);
  HRESULT         __fastcall get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IUnitNumberDispT<IUnitNumber> IUnitNumberDisp;

// *********************************************************************//
// SmartIntf: TCOMIBraces
// Interface: IBraces
// *********************************************************************//
template <class T /* IBraces */ >
class TCOMIBracesT : public TComInterface<IBraces>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBracesT() {}
  TCOMIBracesT(IBraces *intf, bool addRef = false) : TComInterface<IBraces>(intf, addRef) {}
  TCOMIBracesT(const TCOMIBracesT& src) : TComInterface<IBraces>(src) {}
  TCOMIBracesT& operator=(const TCOMIBracesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Brace(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IBracePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBracePtr __fastcall get_Brace(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBracePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBracePtr __fastcall Add(void);

};
typedef TCOMIBracesT<IBraces> TCOMIBraces;

// *********************************************************************//
// DispIntf:  IBraces
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {99F27BD6-6294-45D9-AF78-A9D52E9DD799}
// *********************************************************************//
template<class T>
class IBracesDispT : public TAutoDriver<IBraces>
{
public:
  IBracesDispT(){}

  IBracesDispT(IBraces *pintf)
  {
    TAutoDriver<IBraces>::Bind(pintf, false);
  }

  IBracesDispT(IBracesPtr pintf)
  {
    TAutoDriver<IBraces>::Bind(pintf, true);
  }

  IBracesDispT& operator=(IBraces *pintf)
  {
    TAutoDriver<IBraces>::Bind(pintf, false);
    return *this;
  }

  IBracesDispT& operator=(IBracesPtr pintf)
  {
    TAutoDriver<IBraces>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Braces));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Braces);
  }

  HRESULT         __fastcall get_Brace(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IBracePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBracePtr __fastcall get_Brace(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBracePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBracePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBracesDispT<IBraces> IBracesDisp;

// *********************************************************************//
// SmartIntf: TCOMIBrace
// Interface: IBrace
// *********************************************************************//
template <class T /* IBrace */ >
class TCOMIBraceT : public TComInterface<IBrace>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBraceT() {}
  TCOMIBraceT(IBrace *intf, bool addRef = false) : TComInterface<IBrace>(intf, addRef) {}
  TCOMIBraceT(const TCOMIBraceT& src) : TComInterface<IBrace>(src) {}
  TCOMIBraceT& operator=(const TCOMIBraceT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Radius(double* Result/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Alignment(ksAlignmentTypeEnum* Result/*[out,retval]*/);
  ksAlignmentTypeEnum __fastcall get_Alignment(void);
  HRESULT         __fastcall set_Alignment(ksAlignmentTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall set_ShelfPoints(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfPoints(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_ShelfPoints(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   ksAlignmentTypeEnum Alignment = {read = get_Alignment, write = set_Alignment};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
};
typedef TCOMIBraceT<IBrace> TCOMIBrace;

// *********************************************************************//
// DispIntf:  IBrace
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7F328D28-76E9-4E04-A35C-AD60339998E4}
// *********************************************************************//
template<class T>
class IBraceDispT : public TAutoDriver<IBrace>
{
public:
  IBraceDispT(){}

  IBraceDispT(IBrace *pintf)
  {
    TAutoDriver<IBrace>::Bind(pintf, false);
  }

  IBraceDispT(IBracePtr pintf)
  {
    TAutoDriver<IBrace>::Bind(pintf, true);
  }

  IBraceDispT& operator=(IBrace *pintf)
  {
    TAutoDriver<IBrace>::Bind(pintf, false);
    return *this;
  }

  IBraceDispT& operator=(IBracePtr pintf)
  {
    TAutoDriver<IBrace>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Brace));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Brace);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Radius(double* Result/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Alignment(ksAlignmentTypeEnum* Result/*[out,retval]*/);
  ksAlignmentTypeEnum __fastcall get_Alignment(void);
  HRESULT         __fastcall set_Alignment(ksAlignmentTypeEnum Result/*[in]*/);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall set_ShelfPoints(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfPoints(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_ShelfPoints(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   ksAlignmentTypeEnum Alignment = {read = get_Alignment, write = set_Alignment};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBraceDispT<IBrace> IBraceDisp;

// *********************************************************************//
// SmartIntf: TCOMICutLines
// Interface: ICutLines
// *********************************************************************//
template <class T /* ICutLines */ >
class TCOMICutLinesT : public TComInterface<ICutLines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICutLinesT() {}
  TCOMICutLinesT(ICutLines *intf, bool addRef = false) : TComInterface<ICutLines>(intf, addRef) {}
  TCOMICutLinesT(const TCOMICutLinesT& src) : TComInterface<ICutLines>(src) {}
  TCOMICutLinesT& operator=(const TCOMICutLinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_CutLine(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ICutLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICutLinePtr __fastcall get_CutLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICutLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ICutLinePtr __fastcall Add(void);

};
typedef TCOMICutLinesT<ICutLines> TCOMICutLines;

// *********************************************************************//
// DispIntf:  ICutLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {666DA5B4-324C-493C-9A91-37D9E078EB4E}
// *********************************************************************//
template<class T>
class ICutLinesDispT : public TAutoDriver<ICutLines>
{
public:
  ICutLinesDispT(){}

  ICutLinesDispT(ICutLines *pintf)
  {
    TAutoDriver<ICutLines>::Bind(pintf, false);
  }

  ICutLinesDispT(ICutLinesPtr pintf)
  {
    TAutoDriver<ICutLines>::Bind(pintf, true);
  }

  ICutLinesDispT& operator=(ICutLines *pintf)
  {
    TAutoDriver<ICutLines>::Bind(pintf, false);
    return *this;
  }

  ICutLinesDispT& operator=(ICutLinesPtr pintf)
  {
    TAutoDriver<ICutLines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CutLines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CutLines);
  }

  HRESULT         __fastcall get_CutLine(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ICutLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICutLinePtr __fastcall get_CutLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICutLinePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ICutLinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICutLinesDispT<ICutLines> ICutLinesDisp;

// *********************************************************************//
// SmartIntf: TCOMICutLine
// Interface: ICutLine
// *********************************************************************//
template <class T /* ICutLine */ >
class TCOMICutLineT : public TComInterface<ICutLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICutLineT() {}
  TCOMICutLineT(ICutLine *intf, bool addRef = false) : TComInterface<ICutLine>(intf, addRef) {}
  TCOMICutLineT(const TCOMICutLineT& src) : TComInterface<ICutLine>(src) {}
  TCOMICutLineT& operator=(const TCOMICutLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ArrowPos(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ArrowPos(void);
  HRESULT         __fastcall set_ArrowPos(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_X1(double* Result/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double Result/*[in]*/);
  HRESULT         __fastcall get_Y1(double* Result/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double Result/*[in]*/);
  HRESULT         __fastcall get_X2(double* Result/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double Result/*[in]*/);
  HRESULT         __fastcall get_Y2(double* Result/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double Result/*[in]*/);
  HRESULT         __fastcall set_Points(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Points(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Points(void);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void);
  HRESULT         __fastcall get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSheet(void);
  HRESULT         __fastcall set_AutoSheet(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoZone(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoZone(void);
  HRESULT         __fastcall set_AutoZone(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AdditionalTextPos(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AdditionalTextPos(void);
  HRESULT         __fastcall set_AdditionalTextPos(TOLEBOOL Result/*[in]*/);

  __property   TOLEBOOL        ArrowPos = {read = get_ArrowPos, write = set_ArrowPos};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   TOLEBOOL        AdditionalTextPos = {read = get_AdditionalTextPos, write = set_AdditionalTextPos};
};
typedef TCOMICutLineT<ICutLine> TCOMICutLine;

// *********************************************************************//
// DispIntf:  ICutLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {26E86124-DC1C-41A2-8075-E73F3EAD8474}
// *********************************************************************//
template<class T>
class ICutLineDispT : public TAutoDriver<ICutLine>
{
public:
  ICutLineDispT(){}

  ICutLineDispT(ICutLine *pintf)
  {
    TAutoDriver<ICutLine>::Bind(pintf, false);
  }

  ICutLineDispT(ICutLinePtr pintf)
  {
    TAutoDriver<ICutLine>::Bind(pintf, true);
  }

  ICutLineDispT& operator=(ICutLine *pintf)
  {
    TAutoDriver<ICutLine>::Bind(pintf, false);
    return *this;
  }

  ICutLineDispT& operator=(ICutLinePtr pintf)
  {
    TAutoDriver<ICutLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CutLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CutLine);
  }

  HRESULT         __fastcall get_ArrowPos(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ArrowPos(void);
  HRESULT         __fastcall set_ArrowPos(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_X1(double* Result/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double Result/*[in]*/);
  HRESULT         __fastcall get_Y1(double* Result/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double Result/*[in]*/);
  HRESULT         __fastcall get_X2(double* Result/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double Result/*[in]*/);
  HRESULT         __fastcall get_Y2(double* Result/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double Result/*[in]*/);
  HRESULT         __fastcall set_Points(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Points(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Points(void);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void);
  HRESULT         __fastcall get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSheet(void);
  HRESULT         __fastcall set_AutoSheet(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoZone(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoZone(void);
  HRESULT         __fastcall set_AutoZone(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AdditionalTextPos(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AdditionalTextPos(void);
  HRESULT         __fastcall set_AdditionalTextPos(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        ArrowPos = {read = get_ArrowPos, write = set_ArrowPos};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   TOLEBOOL        AdditionalTextPos = {read = get_AdditionalTextPos, write = set_AdditionalTextPos};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICutLineDispT<ICutLine> ICutLineDisp;

typedef TComInterface<ISymbols2DContainer>  TCOMISymbols2DContainer;

// *********************************************************************//
// DispIntf:  ISymbols2DContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F46B0086-17F2-4489-A5A7-0AA677610AFD}
// *********************************************************************//
template<class T>
class ISymbols2DContainerDispT : public TAutoDriver<ISymbols2DContainer>
{
public:
  ISymbols2DContainerDispT(){}

  ISymbols2DContainerDispT(ISymbols2DContainer *pintf)
  {
    TAutoDriver<ISymbols2DContainer>::Bind(pintf, false);
  }

  ISymbols2DContainerDispT(ISymbols2DContainerPtr pintf)
  {
    TAutoDriver<ISymbols2DContainer>::Bind(pintf, true);
  }

  ISymbols2DContainerDispT& operator=(ISymbols2DContainer *pintf)
  {
    TAutoDriver<ISymbols2DContainer>::Bind(pintf, false);
    return *this;
  }

  ISymbols2DContainerDispT& operator=(ISymbols2DContainerPtr pintf)
  {
    TAutoDriver<ISymbols2DContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_LineDimensions(Kompasltapi7_tlb::ILineDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILineDimensionsPtr __fastcall get_LineDimensions(void);
  HRESULT         __fastcall get_RadialDimensions(Kompasltapi7_tlb::IRadialDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimensionsPtr __fastcall get_RadialDimensions(void);
  HRESULT         __fastcall get_DiametralDimensions(Kompasltapi7_tlb::IDiametralDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimensionsPtr __fastcall get_DiametralDimensions(void);
  HRESULT         __fastcall get_AngleDimensions(Kompasltapi7_tlb::IAngleDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimensionsPtr __fastcall get_AngleDimensions(void);
  HRESULT         __fastcall get_BreakLineDimensions(Kompasltapi7_tlb::IBreakLineDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakLineDimensionsPtr __fastcall get_BreakLineDimensions(void);
  HRESULT         __fastcall get_HeightDimensions(Kompasltapi7_tlb::IHeightDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IHeightDimensionsPtr __fastcall get_HeightDimensions(void);
  HRESULT         __fastcall get_ArcDimensions(Kompasltapi7_tlb::IArcDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IArcDimensionsPtr __fastcall get_ArcDimensions(void);
  HRESULT         __fastcall get_BreakRadialDimensions(Kompasltapi7_tlb::IBreakRadialDimensionsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakRadialDimensionsPtr __fastcall get_BreakRadialDimensions(void);
  HRESULT         __fastcall get_Roughs(Kompasltapi7_tlb::IRoughsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRoughsPtr __fastcall get_Roughs(void);
  HRESULT         __fastcall get_Leaders(Kompasltapi7_tlb::ILeadersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ILeadersPtr __fastcall get_Leaders(void);
  HRESULT         __fastcall get_Bases(Kompasltapi7_tlb::IBasesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBasesPtr __fastcall get_Bases(void);
  HRESULT         __fastcall get_Tolerances(Kompasltapi7_tlb::ITolerancesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerancesPtr __fastcall get_Tolerances(void);
  HRESULT         __fastcall get_DrawingTables(Kompasltapi7_tlb::IDrawingTablesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTablesPtr __fastcall get_DrawingTables(void);
  HRESULT         __fastcall get_CutLines(Kompasltapi7_tlb::ICutLinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ICutLinesPtr __fastcall get_CutLines(void);
  HRESULT         __fastcall get_ViewPointers(Kompasltapi7_tlb::IViewPointersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPointersPtr __fastcall get_ViewPointers(void);
  HRESULT         __fastcall get_CentreMarkers(Kompasltapi7_tlb::ICentreMarkersPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ICentreMarkersPtr __fastcall get_CentreMarkers(void);
  HRESULT         __fastcall get_RemoteElements(Kompasltapi7_tlb::IRemoteElementsPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IRemoteElementsPtr __fastcall get_RemoteElements(void);
  HRESULT         __fastcall get_AxisLines(Kompasltapi7_tlb::IAxisLinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisLinesPtr __fastcall get_AxisLines(void);
  HRESULT         __fastcall get_WaveLines(Kompasltapi7_tlb::IWaveLinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IWaveLinesPtr __fastcall get_WaveLines(void);
  HRESULT         __fastcall get_BrokenLines(Kompasltapi7_tlb::IBrokenLinesPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IBrokenLinesPtr __fastcall get_BrokenLines(void);

  __property   Kompasltapi7_tlb::ILineDimensionsPtr LineDimensions = {read = get_LineDimensions};
  __property   Kompasltapi7_tlb::IRadialDimensionsPtr RadialDimensions = {read = get_RadialDimensions};
  __property   Kompasltapi7_tlb::IDiametralDimensionsPtr DiametralDimensions = {read = get_DiametralDimensions};
  __property   Kompasltapi7_tlb::IAngleDimensionsPtr AngleDimensions = {read = get_AngleDimensions};
  __property   Kompasltapi7_tlb::IBreakLineDimensionsPtr BreakLineDimensions = {read = get_BreakLineDimensions};
  __property   Kompasltapi7_tlb::IHeightDimensionsPtr HeightDimensions = {read = get_HeightDimensions};
  __property   Kompasltapi7_tlb::IArcDimensionsPtr ArcDimensions = {read = get_ArcDimensions};
  __property   Kompasltapi7_tlb::IBreakRadialDimensionsPtr BreakRadialDimensions = {read = get_BreakRadialDimensions};
  __property   Kompasltapi7_tlb::IRoughsPtr Roughs = {read = get_Roughs};
  __property   Kompasltapi7_tlb::ILeadersPtr Leaders = {read = get_Leaders};
  __property   Kompasltapi7_tlb::IBasesPtr Bases = {read = get_Bases};
  __property   Kompasltapi7_tlb::ITolerancesPtr Tolerances = {read = get_Tolerances};
  __property   Kompasltapi7_tlb::IDrawingTablesPtr DrawingTables = {read = get_DrawingTables};
  __property   Kompasltapi7_tlb::ICutLinesPtr CutLines = {read = get_CutLines};
  __property   Kompasltapi7_tlb::IViewPointersPtr ViewPointers = {read = get_ViewPointers};
  __property   Kompasltapi7_tlb::ICentreMarkersPtr CentreMarkers = {read = get_CentreMarkers};
  __property   Kompasltapi7_tlb::IRemoteElementsPtr RemoteElements = {read = get_RemoteElements};
  __property   Kompasltapi7_tlb::IAxisLinesPtr AxisLines = {read = get_AxisLines};
  __property   Kompasltapi7_tlb::IWaveLinesPtr WaveLines = {read = get_WaveLines};
  __property   Kompasltapi7_tlb::IBrokenLinesPtr BrokenLines = {read = get_BrokenLines};
};
typedef ISymbols2DContainerDispT<ISymbols2DContainer> ISymbols2DContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMILineDimensions
// Interface: ILineDimensions
// *********************************************************************//
template <class T /* ILineDimensions */ >
class TCOMILineDimensionsT : public TComInterface<ILineDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILineDimensionsT() {}
  TCOMILineDimensionsT(ILineDimensions *intf, bool addRef = false) : TComInterface<ILineDimensions>(intf, addRef) {}
  TCOMILineDimensionsT(const TCOMILineDimensionsT& src) : TComInterface<ILineDimensions>(src) {}
  TCOMILineDimensionsT& operator=(const TCOMILineDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_LineDimension(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ILineDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILineDimensionPtr __fastcall get_LineDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILineDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ILineDimensionPtr __fastcall Add(void);

};
typedef TCOMILineDimensionsT<ILineDimensions> TCOMILineDimensions;

// *********************************************************************//
// DispIntf:  ILineDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6F6A18A-78FA-4A77-BB75-90647E0C545C}
// *********************************************************************//
template<class T>
class ILineDimensionsDispT : public TAutoDriver<ILineDimensions>
{
public:
  ILineDimensionsDispT(){}

  ILineDimensionsDispT(ILineDimensions *pintf)
  {
    TAutoDriver<ILineDimensions>::Bind(pintf, false);
  }

  ILineDimensionsDispT(ILineDimensionsPtr pintf)
  {
    TAutoDriver<ILineDimensions>::Bind(pintf, true);
  }

  ILineDimensionsDispT& operator=(ILineDimensions *pintf)
  {
    TAutoDriver<ILineDimensions>::Bind(pintf, false);
    return *this;
  }

  ILineDimensionsDispT& operator=(ILineDimensionsPtr pintf)
  {
    TAutoDriver<ILineDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LineDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LineDimensions);
  }

  HRESULT         __fastcall get_LineDimension(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ILineDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ILineDimensionPtr __fastcall get_LineDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ILineDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ILineDimensionPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILineDimensionsDispT<ILineDimensions> ILineDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMILineDimension
// Interface: ILineDimension
// *********************************************************************//
template <class T /* ILineDimension */ >
class TCOMILineDimensionT : public TComInterface<ILineDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILineDimensionT() {}
  TCOMILineDimensionT(ILineDimension *intf, bool addRef = false) : TComInterface<ILineDimension>(intf, addRef) {}
  TCOMILineDimensionT(const TCOMILineDimensionT& src) : TComInterface<ILineDimension>(src) {}
  TCOMILineDimensionT& operator=(const TCOMILineDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall get_Orientation(ksLineDimensionOrientationEnum* PVal/*[out,retval]*/);
  ksLineDimensionOrientationEnum __fastcall get_Orientation(void);
  HRESULT         __fastcall set_Orientation(ksLineDimensionOrientationEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksLineDimensionOrientationEnum Orientation = {read = get_Orientation, write = set_Orientation};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMILineDimensionT<ILineDimension> TCOMILineDimension;

// *********************************************************************//
// DispIntf:  ILineDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A3767BDA-E605-4FC1-988D-81809DEB36F4}
// *********************************************************************//
template<class T>
class ILineDimensionDispT : public TAutoDriver<ILineDimension>
{
public:
  ILineDimensionDispT(){}

  ILineDimensionDispT(ILineDimension *pintf)
  {
    TAutoDriver<ILineDimension>::Bind(pintf, false);
  }

  ILineDimensionDispT(ILineDimensionPtr pintf)
  {
    TAutoDriver<ILineDimension>::Bind(pintf, true);
  }

  ILineDimensionDispT& operator=(ILineDimension *pintf)
  {
    TAutoDriver<ILineDimension>::Bind(pintf, false);
    return *this;
  }

  ILineDimensionDispT& operator=(ILineDimensionPtr pintf)
  {
    TAutoDriver<ILineDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_LineDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_LineDimension);
  }

  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall get_Orientation(ksLineDimensionOrientationEnum* PVal/*[out,retval]*/);
  ksLineDimensionOrientationEnum __fastcall get_Orientation(void);
  HRESULT         __fastcall set_Orientation(ksLineDimensionOrientationEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksLineDimensionOrientationEnum Orientation = {read = get_Orientation, write = set_Orientation};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILineDimensionDispT<ILineDimension> ILineDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIRadialDimensions
// Interface: IRadialDimensions
// *********************************************************************//
template <class T /* IRadialDimensions */ >
class TCOMIRadialDimensionsT : public TComInterface<IRadialDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRadialDimensionsT() {}
  TCOMIRadialDimensionsT(IRadialDimensions *intf, bool addRef = false) : TComInterface<IRadialDimensions>(intf, addRef) {}
  TCOMIRadialDimensionsT(const TCOMIRadialDimensionsT& src) : TComInterface<IRadialDimensions>(src) {}
  TCOMIRadialDimensionsT& operator=(const TCOMIRadialDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_RadialDimension(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IRadialDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimensionPtr __fastcall get_RadialDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRadialDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimensionPtr __fastcall Add(void);

};
typedef TCOMIRadialDimensionsT<IRadialDimensions> TCOMIRadialDimensions;

// *********************************************************************//
// DispIntf:  IRadialDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {12D26993-449E-42E2-A909-B047AFD6E27D}
// *********************************************************************//
template<class T>
class IRadialDimensionsDispT : public TAutoDriver<IRadialDimensions>
{
public:
  IRadialDimensionsDispT(){}

  IRadialDimensionsDispT(IRadialDimensions *pintf)
  {
    TAutoDriver<IRadialDimensions>::Bind(pintf, false);
  }

  IRadialDimensionsDispT(IRadialDimensionsPtr pintf)
  {
    TAutoDriver<IRadialDimensions>::Bind(pintf, true);
  }

  IRadialDimensionsDispT& operator=(IRadialDimensions *pintf)
  {
    TAutoDriver<IRadialDimensions>::Bind(pintf, false);
    return *this;
  }

  IRadialDimensionsDispT& operator=(IRadialDimensionsPtr pintf)
  {
    TAutoDriver<IRadialDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RadialDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RadialDimensions);
  }

  HRESULT         __fastcall get_RadialDimension(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IRadialDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimensionPtr __fastcall get_RadialDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRadialDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IRadialDimensionPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRadialDimensionsDispT<IRadialDimensions> IRadialDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIRadialDimension
// Interface: IRadialDimension
// *********************************************************************//
template <class T /* IRadialDimension */ >
class TCOMIRadialDimensionT : public TComInterface<IRadialDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRadialDimensionT() {}
  TCOMIRadialDimensionT(IRadialDimension *intf, bool addRef = false) : TComInterface<IRadialDimension>(intf, addRef) {}
  TCOMIRadialDimensionT(const TCOMIRadialDimensionT& src) : TComInterface<IRadialDimension>(src) {}
  TCOMIRadialDimensionT& operator=(const TCOMIRadialDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMIRadialDimensionT<IRadialDimension> TCOMIRadialDimension;

// *********************************************************************//
// DispIntf:  IRadialDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {712A9437-D772-4EAE-AF83-ABC9C22EB281}
// *********************************************************************//
template<class T>
class IRadialDimensionDispT : public TAutoDriver<IRadialDimension>
{
public:
  IRadialDimensionDispT(){}

  IRadialDimensionDispT(IRadialDimension *pintf)
  {
    TAutoDriver<IRadialDimension>::Bind(pintf, false);
  }

  IRadialDimensionDispT(IRadialDimensionPtr pintf)
  {
    TAutoDriver<IRadialDimension>::Bind(pintf, true);
  }

  IRadialDimensionDispT& operator=(IRadialDimension *pintf)
  {
    TAutoDriver<IRadialDimension>::Bind(pintf, false);
    return *this;
  }

  IRadialDimensionDispT& operator=(IRadialDimensionPtr pintf)
  {
    TAutoDriver<IRadialDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RadialDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RadialDimension);
  }

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRadialDimensionDispT<IRadialDimension> IRadialDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimensions
// Interface: IDiametralDimensions
// *********************************************************************//
template <class T /* IDiametralDimensions */ >
class TCOMIDiametralDimensionsT : public TComInterface<IDiametralDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDiametralDimensionsT() {}
  TCOMIDiametralDimensionsT(IDiametralDimensions *intf, bool addRef = false) : TComInterface<IDiametralDimensions>(intf, addRef) {}
  TCOMIDiametralDimensionsT(const TCOMIDiametralDimensionsT& src) : TComInterface<IDiametralDimensions>(src) {}
  TCOMIDiametralDimensionsT& operator=(const TCOMIDiametralDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DiametralDimension(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IDiametralDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall get_DiametralDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDiametralDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall Add(void);

};
typedef TCOMIDiametralDimensionsT<IDiametralDimensions> TCOMIDiametralDimensions;

// *********************************************************************//
// DispIntf:  IDiametralDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8E45FEB9-7BCD-4C9F-9767-320736980662}
// *********************************************************************//
template<class T>
class IDiametralDimensionsDispT : public TAutoDriver<IDiametralDimensions>
{
public:
  IDiametralDimensionsDispT(){}

  IDiametralDimensionsDispT(IDiametralDimensions *pintf)
  {
    TAutoDriver<IDiametralDimensions>::Bind(pintf, false);
  }

  IDiametralDimensionsDispT(IDiametralDimensionsPtr pintf)
  {
    TAutoDriver<IDiametralDimensions>::Bind(pintf, true);
  }

  IDiametralDimensionsDispT& operator=(IDiametralDimensions *pintf)
  {
    TAutoDriver<IDiametralDimensions>::Bind(pintf, false);
    return *this;
  }

  IDiametralDimensionsDispT& operator=(IDiametralDimensionsPtr pintf)
  {
    TAutoDriver<IDiametralDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DiametralDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DiametralDimensions);
  }

  HRESULT         __fastcall get_DiametralDimension(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IDiametralDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall get_DiametralDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IDiametralDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDiametralDimensionsDispT<IDiametralDimensions> IDiametralDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimension
// Interface: IDiametralDimension
// *********************************************************************//
template <class T /* IDiametralDimension */ >
class TCOMIDiametralDimensionT : public TComInterface<IDiametralDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDiametralDimensionT() {}
  TCOMIDiametralDimensionT(IDiametralDimension *intf, bool addRef = false) : TComInterface<IDiametralDimension>(intf, addRef) {}
  TCOMIDiametralDimensionT(const TCOMIDiametralDimensionT& src) : TComInterface<IDiametralDimension>(src) {}
  TCOMIDiametralDimensionT& operator=(const TCOMIDiametralDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMIDiametralDimensionT<IDiametralDimension> TCOMIDiametralDimension;

// *********************************************************************//
// DispIntf:  IDiametralDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2B4CE92F-438D-4D3E-8F8D-4D14E5D0E214}
// *********************************************************************//
template<class T>
class IDiametralDimensionDispT : public TAutoDriver<IDiametralDimension>
{
public:
  IDiametralDimensionDispT(){}

  IDiametralDimensionDispT(IDiametralDimension *pintf)
  {
    TAutoDriver<IDiametralDimension>::Bind(pintf, false);
  }

  IDiametralDimensionDispT(IDiametralDimensionPtr pintf)
  {
    TAutoDriver<IDiametralDimension>::Bind(pintf, true);
  }

  IDiametralDimensionDispT& operator=(IDiametralDimension *pintf)
  {
    TAutoDriver<IDiametralDimension>::Bind(pintf, false);
    return *this;
  }

  IDiametralDimensionDispT& operator=(IDiametralDimensionPtr pintf)
  {
    TAutoDriver<IDiametralDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DiametralDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DiametralDimension);
  }

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDiametralDimensionDispT<IDiametralDimension> IDiametralDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIAngleDimensions
// Interface: IAngleDimensions
// *********************************************************************//
template <class T /* IAngleDimensions */ >
class TCOMIAngleDimensionsT : public TComInterface<IAngleDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAngleDimensionsT() {}
  TCOMIAngleDimensionsT(IAngleDimensions *intf, bool addRef = false) : TComInterface<IAngleDimensions>(intf, addRef) {}
  TCOMIAngleDimensionsT(const TCOMIAngleDimensionsT& src) : TComInterface<IAngleDimensions>(src) {}
  TCOMIAngleDimensionsT& operator=(const TCOMIAngleDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_AngleDimension(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IAngleDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimensionPtr __fastcall get_AngleDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IAngleDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimensionPtr __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/);

};
typedef TCOMIAngleDimensionsT<IAngleDimensions> TCOMIAngleDimensions;

// *********************************************************************//
// DispIntf:  IAngleDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DF9ABB77-BBB6-4B29-A0E0-81DCFD525C2E}
// *********************************************************************//
template<class T>
class IAngleDimensionsDispT : public TAutoDriver<IAngleDimensions>
{
public:
  IAngleDimensionsDispT(){}

  IAngleDimensionsDispT(IAngleDimensions *pintf)
  {
    TAutoDriver<IAngleDimensions>::Bind(pintf, false);
  }

  IAngleDimensionsDispT(IAngleDimensionsPtr pintf)
  {
    TAutoDriver<IAngleDimensions>::Bind(pintf, true);
  }

  IAngleDimensionsDispT& operator=(IAngleDimensions *pintf)
  {
    TAutoDriver<IAngleDimensions>::Bind(pintf, false);
    return *this;
  }

  IAngleDimensionsDispT& operator=(IAngleDimensionsPtr pintf)
  {
    TAutoDriver<IAngleDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AngleDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AngleDimensions);
  }

  HRESULT         __fastcall get_AngleDimension(TVariantInParam Index/*[in]*/, 
                                                Kompasltapi7_tlb::IAngleDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimensionPtr __fastcall get_AngleDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IAngleDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IAngleDimensionPtr __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAngleDimensionsDispT<IAngleDimensions> IAngleDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIAngleDimension
// Interface: IAngleDimension
// *********************************************************************//
template <class T /* IAngleDimension */ >
class TCOMIAngleDimensionT : public TComInterface<IAngleDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAngleDimensionT() {}
  TCOMIAngleDimensionT(IAngleDimension *intf, bool addRef = false) : TComInterface<IAngleDimension>(intf, addRef) {}
  TCOMIAngleDimensionT(const TCOMIAngleDimensionT& src) : TComInterface<IAngleDimension>(src) {}
  TCOMIAngleDimensionT& operator=(const TCOMIAngleDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall get_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject1(void);
  HRESULT         __fastcall set_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject2(void);
  HRESULT         __fastcall set_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/);
  ksAngleDimTypeEnum __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject1 = {read = get_BaseObject1, write = set_BaseObject1};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject2 = {read = get_BaseObject2, write = set_BaseObject2};
  __property   ksAngleDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
};
typedef TCOMIAngleDimensionT<IAngleDimension> TCOMIAngleDimension;

// *********************************************************************//
// DispIntf:  IAngleDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0F2CE9EC-5D2A-4B21-B96A-46201C120ED1}
// *********************************************************************//
template<class T>
class IAngleDimensionDispT : public TAutoDriver<IAngleDimension>
{
public:
  IAngleDimensionDispT(){}

  IAngleDimensionDispT(IAngleDimension *pintf)
  {
    TAutoDriver<IAngleDimension>::Bind(pintf, false);
  }

  IAngleDimensionDispT(IAngleDimensionPtr pintf)
  {
    TAutoDriver<IAngleDimension>::Bind(pintf, true);
  }

  IAngleDimensionDispT& operator=(IAngleDimension *pintf)
  {
    TAutoDriver<IAngleDimension>::Bind(pintf, false);
    return *this;
  }

  IAngleDimensionDispT& operator=(IAngleDimensionPtr pintf)
  {
    TAutoDriver<IAngleDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AngleDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AngleDimension);
  }

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall get_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject1(void);
  HRESULT         __fastcall set_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject2(void);
  HRESULT         __fastcall set_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/);
  ksAngleDimTypeEnum __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject1 = {read = get_BaseObject1, write = set_BaseObject1};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject2 = {read = get_BaseObject2, write = set_BaseObject2};
  __property   ksAngleDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAngleDimensionDispT<IAngleDimension> IAngleDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIBreakLineDimensions
// Interface: IBreakLineDimensions
// *********************************************************************//
template <class T /* IBreakLineDimensions */ >
class TCOMIBreakLineDimensionsT : public TComInterface<IBreakLineDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBreakLineDimensionsT() {}
  TCOMIBreakLineDimensionsT(IBreakLineDimensions *intf, bool addRef = false) : TComInterface<IBreakLineDimensions>(intf, addRef) {}
  TCOMIBreakLineDimensionsT(const TCOMIBreakLineDimensionsT& src) : TComInterface<IBreakLineDimensions>(src) {}
  TCOMIBreakLineDimensionsT& operator=(const TCOMIBreakLineDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BreakLineDimension(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall get_BreakLineDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall Add(void);

};
typedef TCOMIBreakLineDimensionsT<IBreakLineDimensions> TCOMIBreakLineDimensions;

// *********************************************************************//
// DispIntf:  IBreakLineDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4125169F-3EA8-4AC0-9E1B-5582D62600C4}
// *********************************************************************//
template<class T>
class IBreakLineDimensionsDispT : public TAutoDriver<IBreakLineDimensions>
{
public:
  IBreakLineDimensionsDispT(){}

  IBreakLineDimensionsDispT(IBreakLineDimensions *pintf)
  {
    TAutoDriver<IBreakLineDimensions>::Bind(pintf, false);
  }

  IBreakLineDimensionsDispT(IBreakLineDimensionsPtr pintf)
  {
    TAutoDriver<IBreakLineDimensions>::Bind(pintf, true);
  }

  IBreakLineDimensionsDispT& operator=(IBreakLineDimensions *pintf)
  {
    TAutoDriver<IBreakLineDimensions>::Bind(pintf, false);
    return *this;
  }

  IBreakLineDimensionsDispT& operator=(IBreakLineDimensionsPtr pintf)
  {
    TAutoDriver<IBreakLineDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BreakLineDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BreakLineDimensions);
  }

  HRESULT         __fastcall get_BreakLineDimension(TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall get_BreakLineDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBreakLineDimensionsDispT<IBreakLineDimensions> IBreakLineDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIBreakLineDimension
// Interface: IBreakLineDimension
// *********************************************************************//
template <class T /* IBreakLineDimension */ >
class TCOMIBreakLineDimensionT : public TComInterface<IBreakLineDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBreakLineDimensionT() {}
  TCOMIBreakLineDimensionT(IBreakLineDimension *intf, bool addRef = false) : TComInterface<IBreakLineDimension>(intf, addRef) {}
  TCOMIBreakLineDimensionT(const TCOMIBreakLineDimensionT& src) : TComInterface<IBreakLineDimension>(src) {}
  TCOMIBreakLineDimensionT& operator=(const TCOMIBreakLineDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
};
typedef TCOMIBreakLineDimensionT<IBreakLineDimension> TCOMIBreakLineDimension;

// *********************************************************************//
// DispIntf:  IBreakLineDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {61164A26-855C-4220-88ED-C2BDAF49B2DB}
// *********************************************************************//
template<class T>
class IBreakLineDimensionDispT : public TAutoDriver<IBreakLineDimension>
{
public:
  IBreakLineDimensionDispT(){}

  IBreakLineDimensionDispT(IBreakLineDimension *pintf)
  {
    TAutoDriver<IBreakLineDimension>::Bind(pintf, false);
  }

  IBreakLineDimensionDispT(IBreakLineDimensionPtr pintf)
  {
    TAutoDriver<IBreakLineDimension>::Bind(pintf, true);
  }

  IBreakLineDimensionDispT& operator=(IBreakLineDimension *pintf)
  {
    TAutoDriver<IBreakLineDimension>::Bind(pintf, false);
    return *this;
  }

  IBreakLineDimensionDispT& operator=(IBreakLineDimensionPtr pintf)
  {
    TAutoDriver<IBreakLineDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BreakLineDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BreakLineDimension);
  }

  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBreakLineDimensionDispT<IBreakLineDimension> IBreakLineDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIHeightDimensions
// Interface: IHeightDimensions
// *********************************************************************//
template <class T /* IHeightDimensions */ >
class TCOMIHeightDimensionsT : public TComInterface<IHeightDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIHeightDimensionsT() {}
  TCOMIHeightDimensionsT(IHeightDimensions *intf, bool addRef = false) : TComInterface<IHeightDimensions>(intf, addRef) {}
  TCOMIHeightDimensionsT(const TCOMIHeightDimensionsT& src) : TComInterface<IHeightDimensions>(src) {}
  TCOMIHeightDimensionsT& operator=(const TCOMIHeightDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_HeightDimension(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHeightDimensionPtr __fastcall get_HeightDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHeightDimensionPtr __fastcall Add(void);

};
typedef TCOMIHeightDimensionsT<IHeightDimensions> TCOMIHeightDimensions;

// *********************************************************************//
// DispIntf:  IHeightDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3A56D35C-3242-4C49-BA99-CF790EB10356}
// *********************************************************************//
template<class T>
class IHeightDimensionsDispT : public TAutoDriver<IHeightDimensions>
{
public:
  IHeightDimensionsDispT(){}

  IHeightDimensionsDispT(IHeightDimensions *pintf)
  {
    TAutoDriver<IHeightDimensions>::Bind(pintf, false);
  }

  IHeightDimensionsDispT(IHeightDimensionsPtr pintf)
  {
    TAutoDriver<IHeightDimensions>::Bind(pintf, true);
  }

  IHeightDimensionsDispT& operator=(IHeightDimensions *pintf)
  {
    TAutoDriver<IHeightDimensions>::Bind(pintf, false);
    return *this;
  }

  IHeightDimensionsDispT& operator=(IHeightDimensionsPtr pintf)
  {
    TAutoDriver<IHeightDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_HeightDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_HeightDimensions);
  }

  HRESULT         __fastcall get_HeightDimension(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHeightDimensionPtr __fastcall get_HeightDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IHeightDimensionPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IHeightDimensionsDispT<IHeightDimensions> IHeightDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIHeightDimension
// Interface: IHeightDimension
// *********************************************************************//
template <class T /* IHeightDimension */ >
class TCOMIHeightDimensionT : public TComInterface<IHeightDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIHeightDimensionT() {}
  TCOMIHeightDimensionT(IHeightDimension *intf, bool addRef = false) : TComInterface<IHeightDimension>(intf, addRef) {}
  TCOMIHeightDimensionT(const TCOMIHeightDimensionT& src) : TComInterface<IHeightDimension>(src) {}
  TCOMIHeightDimensionT& operator=(const TCOMIHeightDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DimensionType(ksHeightDimTypeEnum* PVal/*[out,retval]*/);
  ksHeightDimTypeEnum __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(ksHeightDimTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);

  __property   ksHeightDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
};
typedef TCOMIHeightDimensionT<IHeightDimension> TCOMIHeightDimension;

// *********************************************************************//
// DispIntf:  IHeightDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {938BE57F-55FF-469F-82A5-B1CD6CCF8340}
// *********************************************************************//
template<class T>
class IHeightDimensionDispT : public TAutoDriver<IHeightDimension>
{
public:
  IHeightDimensionDispT(){}

  IHeightDimensionDispT(IHeightDimension *pintf)
  {
    TAutoDriver<IHeightDimension>::Bind(pintf, false);
  }

  IHeightDimensionDispT(IHeightDimensionPtr pintf)
  {
    TAutoDriver<IHeightDimension>::Bind(pintf, true);
  }

  IHeightDimensionDispT& operator=(IHeightDimension *pintf)
  {
    TAutoDriver<IHeightDimension>::Bind(pintf, false);
    return *this;
  }

  IHeightDimensionDispT& operator=(IHeightDimensionPtr pintf)
  {
    TAutoDriver<IHeightDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_HeightDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_HeightDimension);
  }

  HRESULT         __fastcall get_DimensionType(ksHeightDimTypeEnum* PVal/*[out,retval]*/);
  ksHeightDimTypeEnum __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(ksHeightDimTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksHeightDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IHeightDimensionDispT<IHeightDimension> IHeightDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIArcDimensions
// Interface: IArcDimensions
// *********************************************************************//
template <class T /* IArcDimensions */ >
class TCOMIArcDimensionsT : public TComInterface<IArcDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIArcDimensionsT() {}
  TCOMIArcDimensionsT(IArcDimensions *intf, bool addRef = false) : TComInterface<IArcDimensions>(intf, addRef) {}
  TCOMIArcDimensionsT(const TCOMIArcDimensionsT& src) : TComInterface<IArcDimensions>(src) {}
  TCOMIArcDimensionsT& operator=(const TCOMIArcDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ArcDimension(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IArcDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IArcDimensionPtr __fastcall get_ArcDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IArcDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IArcDimensionPtr __fastcall Add(void);

};
typedef TCOMIArcDimensionsT<IArcDimensions> TCOMIArcDimensions;

// *********************************************************************//
// DispIntf:  IArcDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FE2755D9-48E2-44CC-BC24-86CF86BE08E2}
// *********************************************************************//
template<class T>
class IArcDimensionsDispT : public TAutoDriver<IArcDimensions>
{
public:
  IArcDimensionsDispT(){}

  IArcDimensionsDispT(IArcDimensions *pintf)
  {
    TAutoDriver<IArcDimensions>::Bind(pintf, false);
  }

  IArcDimensionsDispT(IArcDimensionsPtr pintf)
  {
    TAutoDriver<IArcDimensions>::Bind(pintf, true);
  }

  IArcDimensionsDispT& operator=(IArcDimensions *pintf)
  {
    TAutoDriver<IArcDimensions>::Bind(pintf, false);
    return *this;
  }

  IArcDimensionsDispT& operator=(IArcDimensionsPtr pintf)
  {
    TAutoDriver<IArcDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ArcDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ArcDimensions);
  }

  HRESULT         __fastcall get_ArcDimension(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IArcDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IArcDimensionPtr __fastcall get_ArcDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IArcDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IArcDimensionPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IArcDimensionsDispT<IArcDimensions> IArcDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIArcDimension
// Interface: IArcDimension
// *********************************************************************//
template <class T /* IArcDimension */ >
class TCOMIArcDimensionT : public TComInterface<IArcDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIArcDimensionT() {}
  TCOMIArcDimensionT(IArcDimension *intf, bool addRef = false) : TComInterface<IArcDimension>(intf, addRef) {}
  TCOMIArcDimensionT(const TCOMIArcDimensionT& src) : TComInterface<IArcDimension>(src) {}
  TCOMIArcDimensionT& operator=(const TCOMIArcDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_TextPointer(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextPointer(void);
  HRESULT         __fastcall set_TextPointer(TOLEBOOL PVal/*[in]*/);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   TOLEBOOL        TextPointer = {read = get_TextPointer, write = set_TextPointer};
};
typedef TCOMIArcDimensionT<IArcDimension> TCOMIArcDimension;

// *********************************************************************//
// DispIntf:  IArcDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {11487495-B18A-4877-9E85-3DC9016DF8BD}
// *********************************************************************//
template<class T>
class IArcDimensionDispT : public TAutoDriver<IArcDimension>
{
public:
  IArcDimensionDispT(){}

  IArcDimensionDispT(IArcDimension *pintf)
  {
    TAutoDriver<IArcDimension>::Bind(pintf, false);
  }

  IArcDimensionDispT(IArcDimensionPtr pintf)
  {
    TAutoDriver<IArcDimension>::Bind(pintf, true);
  }

  IArcDimensionDispT& operator=(IArcDimension *pintf)
  {
    TAutoDriver<IArcDimension>::Bind(pintf, false);
    return *this;
  }

  IArcDimensionDispT& operator=(IArcDimensionPtr pintf)
  {
    TAutoDriver<IArcDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ArcDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ArcDimension);
  }

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_TextPointer(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextPointer(void);
  HRESULT         __fastcall set_TextPointer(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   TOLEBOOL        DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   TOLEBOOL        TextPointer = {read = get_TextPointer, write = set_TextPointer};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IArcDimensionDispT<IArcDimension> IArcDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIBreakRadialDimensions
// Interface: IBreakRadialDimensions
// *********************************************************************//
template <class T /* IBreakRadialDimensions */ >
class TCOMIBreakRadialDimensionsT : public TComInterface<IBreakRadialDimensions>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBreakRadialDimensionsT() {}
  TCOMIBreakRadialDimensionsT(IBreakRadialDimensions *intf, bool addRef = false) : TComInterface<IBreakRadialDimensions>(intf, addRef) {}
  TCOMIBreakRadialDimensionsT(const TCOMIBreakRadialDimensionsT& src) : TComInterface<IBreakRadialDimensions>(src) {}
  TCOMIBreakRadialDimensionsT& operator=(const TCOMIBreakRadialDimensionsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BreakRadialDimension(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::IBreakRadialDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall get_BreakRadialDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBreakRadialDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall Add(void);

};
typedef TCOMIBreakRadialDimensionsT<IBreakRadialDimensions> TCOMIBreakRadialDimensions;

// *********************************************************************//
// DispIntf:  IBreakRadialDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E2181A3E-5417-4D73-AB65-983DED3438E0}
// *********************************************************************//
template<class T>
class IBreakRadialDimensionsDispT : public TAutoDriver<IBreakRadialDimensions>
{
public:
  IBreakRadialDimensionsDispT(){}

  IBreakRadialDimensionsDispT(IBreakRadialDimensions *pintf)
  {
    TAutoDriver<IBreakRadialDimensions>::Bind(pintf, false);
  }

  IBreakRadialDimensionsDispT(IBreakRadialDimensionsPtr pintf)
  {
    TAutoDriver<IBreakRadialDimensions>::Bind(pintf, true);
  }

  IBreakRadialDimensionsDispT& operator=(IBreakRadialDimensions *pintf)
  {
    TAutoDriver<IBreakRadialDimensions>::Bind(pintf, false);
    return *this;
  }

  IBreakRadialDimensionsDispT& operator=(IBreakRadialDimensionsPtr pintf)
  {
    TAutoDriver<IBreakRadialDimensions>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RadialBreakDimensions));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RadialBreakDimensions);
  }

  HRESULT         __fastcall get_BreakRadialDimension(TVariantInParam Index/*[in]*/, 
                                                      Kompasltapi7_tlb::IBreakRadialDimensionPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall get_BreakRadialDimension(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBreakRadialDimensionPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBreakRadialDimensionsDispT<IBreakRadialDimensions> IBreakRadialDimensionsDisp;

// *********************************************************************//
// SmartIntf: TCOMIBreakRadialDimension
// Interface: IBreakRadialDimension
// *********************************************************************//
template <class T /* IBreakRadialDimension */ >
class TCOMIBreakRadialDimensionT : public TComInterface<IBreakRadialDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBreakRadialDimensionT() {}
  TCOMIBreakRadialDimensionT(IBreakRadialDimension *intf, bool addRef = false) : TComInterface<IBreakRadialDimension>(intf, addRef) {}
  TCOMIBreakRadialDimensionT(const TCOMIBreakRadialDimensionT& src) : TComInterface<IBreakRadialDimension>(src) {}
  TCOMIBreakRadialDimensionT& operator=(const TCOMIBreakRadialDimensionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakLength(void);
  HRESULT         __fastcall set_BreakLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/);
  ksDimensionTextPosEnum __fastcall get_TextOnLine(void);
  HRESULT         __fastcall set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          BreakLength = {read = get_BreakLength, write = set_BreakLength};
  __property   ksDimensionTextPosEnum TextOnLine = {read = get_TextOnLine, write = set_TextOnLine};
};
typedef TCOMIBreakRadialDimensionT<IBreakRadialDimension> TCOMIBreakRadialDimension;

// *********************************************************************//
// DispIntf:  IBreakRadialDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88491537-9E93-42F3-861C-761A75BB89D6}
// *********************************************************************//
template<class T>
class IBreakRadialDimensionDispT : public TAutoDriver<IBreakRadialDimension>
{
public:
  IBreakRadialDimensionDispT(){}

  IBreakRadialDimensionDispT(IBreakRadialDimension *pintf)
  {
    TAutoDriver<IBreakRadialDimension>::Bind(pintf, false);
  }

  IBreakRadialDimensionDispT(IBreakRadialDimensionPtr pintf)
  {
    TAutoDriver<IBreakRadialDimension>::Bind(pintf, true);
  }

  IBreakRadialDimensionDispT& operator=(IBreakRadialDimension *pintf)
  {
    TAutoDriver<IBreakRadialDimension>::Bind(pintf, false);
    return *this;
  }

  IBreakRadialDimensionDispT& operator=(IBreakRadialDimensionPtr pintf)
  {
    TAutoDriver<IBreakRadialDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BreakRadialDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BreakRadialDimension);
  }

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakLength(void);
  HRESULT         __fastcall set_BreakLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/);
  ksDimensionTextPosEnum __fastcall get_TextOnLine(void);
  HRESULT         __fastcall set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          BreakLength = {read = get_BreakLength, write = set_BreakLength};
  __property   ksDimensionTextPosEnum TextOnLine = {read = get_TextOnLine, write = set_TextOnLine};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBreakRadialDimensionDispT<IBreakRadialDimension> IBreakRadialDimensionDisp;

// *********************************************************************//
// SmartIntf: TCOMIRoughs
// Interface: IRoughs
// *********************************************************************//
template <class T /* IRoughs */ >
class TCOMIRoughsT : public TComInterface<IRoughs>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRoughsT() {}
  TCOMIRoughsT(IRoughs *intf, bool addRef = false) : TComInterface<IRoughs>(intf, addRef) {}
  TCOMIRoughsT(const TCOMIRoughsT& src) : TComInterface<IRoughs>(src) {}
  TCOMIRoughsT& operator=(const TCOMIRoughsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Rough(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IRoughPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRoughPtr __fastcall get_Rough(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRoughPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IRoughPtr __fastcall Add(void);

};
typedef TCOMIRoughsT<IRoughs> TCOMIRoughs;

// *********************************************************************//
// DispIntf:  IRoughs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {ACC42B32-27F3-4F74-B4A5-C97D4C7B289D}
// *********************************************************************//
template<class T>
class IRoughsDispT : public TAutoDriver<IRoughs>
{
public:
  IRoughsDispT(){}

  IRoughsDispT(IRoughs *pintf)
  {
    TAutoDriver<IRoughs>::Bind(pintf, false);
  }

  IRoughsDispT(IRoughsPtr pintf)
  {
    TAutoDriver<IRoughs>::Bind(pintf, true);
  }

  IRoughsDispT& operator=(IRoughs *pintf)
  {
    TAutoDriver<IRoughs>::Bind(pintf, false);
    return *this;
  }

  IRoughsDispT& operator=(IRoughsPtr pintf)
  {
    TAutoDriver<IRoughs>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Roughs));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Roughs);
  }

  HRESULT         __fastcall get_Rough(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IRoughPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRoughPtr __fastcall get_Rough(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRoughPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IRoughPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRoughsDispT<IRoughs> IRoughsDisp;

// *********************************************************************//
// SmartIntf: TCOMIRough
// Interface: IRough
// *********************************************************************//
template <class T /* IRough */ >
class TCOMIRoughT : public TComInterface<IRough>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRoughT() {}
  TCOMIRoughT(IRough *intf, bool addRef = false) : TComInterface<IRough>(intf, addRef) {}
  TCOMIRoughT(const TCOMIRoughT& src) : TComInterface<IRough>(src) {}
  TCOMIRoughT& operator=(const TCOMIRoughT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* NewObject/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr NewObject/*[in]*/);
  HRESULT         __fastcall get_X0(double* Result/*[out,retval]*/);
  double          __fastcall get_X0(void);
  HRESULT         __fastcall set_X0(double Result/*[in]*/);
  HRESULT         __fastcall get_Y0(double* Result/*[out,retval]*/);
  double          __fastcall get_Y0(void);
  HRESULT         __fastcall set_Y0(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
};
typedef TCOMIRoughT<IRough> TCOMIRough;

// *********************************************************************//
// DispIntf:  IRough
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0A192AC5-D8BC-43E9-8FC7-ACF32578DDB4}
// *********************************************************************//
template<class T>
class IRoughDispT : public TAutoDriver<IRough>
{
public:
  IRoughDispT(){}

  IRoughDispT(IRough *pintf)
  {
    TAutoDriver<IRough>::Bind(pintf, false);
  }

  IRoughDispT(IRoughPtr pintf)
  {
    TAutoDriver<IRough>::Bind(pintf, true);
  }

  IRoughDispT& operator=(IRough *pintf)
  {
    TAutoDriver<IRough>::Bind(pintf, false);
    return *this;
  }

  IRoughDispT& operator=(IRoughPtr pintf)
  {
    TAutoDriver<IRough>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Rough));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Rough);
  }

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* NewObject/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr NewObject/*[in]*/);
  HRESULT         __fastcall get_X0(double* Result/*[out,retval]*/);
  double          __fastcall get_X0(void);
  HRESULT         __fastcall set_X0(double Result/*[in]*/);
  HRESULT         __fastcall get_Y0(double* Result/*[out,retval]*/);
  double          __fastcall get_Y0(void);
  HRESULT         __fastcall set_Y0(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRoughDispT<IRough> IRoughDisp;

// *********************************************************************//
// SmartIntf: TCOMILeaders
// Interface: ILeaders
// *********************************************************************//
template <class T /* ILeaders */ >
class TCOMILeadersT : public TComInterface<ILeaders>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMILeadersT() {}
  TCOMILeadersT(ILeaders *intf, bool addRef = false) : TComInterface<ILeaders>(intf, addRef) {}
  TCOMILeadersT(const TCOMILeadersT& src) : TComInterface<ILeaders>(src) {}
  TCOMILeadersT& operator=(const TCOMILeadersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Leader(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBaseLeaderPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeaderPtr __fastcall get_Leader(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLeaderPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeaderPtr __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/);

};
typedef TCOMILeadersT<ILeaders> TCOMILeaders;

// *********************************************************************//
// DispIntf:  ILeaders
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BA2D820C-0DB9-47C6-A32D-34C7D8BA1B2F}
// *********************************************************************//
template<class T>
class ILeadersDispT : public TAutoDriver<ILeaders>
{
public:
  ILeadersDispT(){}

  ILeadersDispT(ILeaders *pintf)
  {
    TAutoDriver<ILeaders>::Bind(pintf, false);
  }

  ILeadersDispT(ILeadersPtr pintf)
  {
    TAutoDriver<ILeaders>::Bind(pintf, true);
  }

  ILeadersDispT& operator=(ILeaders *pintf)
  {
    TAutoDriver<ILeaders>::Bind(pintf, false);
    return *this;
  }

  ILeadersDispT& operator=(ILeadersPtr pintf)
  {
    TAutoDriver<ILeaders>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Leaders));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Leaders);
  }

  HRESULT         __fastcall get_Leader(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBaseLeaderPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeaderPtr __fastcall get_Leader(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLeaderPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBaseLeaderPtr __fastcall Add(DrawingObjectTypeEnum DimType/*[in]*/);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ILeadersDispT<ILeaders> ILeadersDisp;

// *********************************************************************//
// SmartIntf: TCOMIBaseLeader
// Interface: IBaseLeader
// *********************************************************************//
template <class T /* IBaseLeader */ >
class TCOMIBaseLeaderT : public TComInterface<IBaseLeader>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBaseLeaderT() {}
  TCOMIBaseLeaderT(IBaseLeader *intf, bool addRef = false) : TComInterface<IBaseLeader>(intf, addRef) {}
  TCOMIBaseLeaderT(const TCOMIBaseLeaderT& src) : TComInterface<IBaseLeader>(src) {}
  TCOMIBaseLeaderT& operator=(const TCOMIBaseLeaderT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ArrowType(ksArrowEnum* Result/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum Result/*[in]*/);

  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};
};
typedef TCOMIBaseLeaderT<IBaseLeader> TCOMIBaseLeader;

// *********************************************************************//
// DispIntf:  IBaseLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1AF590A9-C339-477A-9F22-799C04D20BB4}
// *********************************************************************//
template<class T>
class IBaseLeaderDispT : public TAutoDriver<IBaseLeader>
{
public:
  IBaseLeaderDispT(){}

  IBaseLeaderDispT(IBaseLeader *pintf)
  {
    TAutoDriver<IBaseLeader>::Bind(pintf, false);
  }

  IBaseLeaderDispT(IBaseLeaderPtr pintf)
  {
    TAutoDriver<IBaseLeader>::Bind(pintf, true);
  }

  IBaseLeaderDispT& operator=(IBaseLeader *pintf)
  {
    TAutoDriver<IBaseLeader>::Bind(pintf, false);
    return *this;
  }

  IBaseLeaderDispT& operator=(IBaseLeaderPtr pintf)
  {
    TAutoDriver<IBaseLeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BaseLeader));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BaseLeader);
  }

  HRESULT         __fastcall get_ArrowType(ksArrowEnum* Result/*[out,retval]*/);
  ksArrowEnum __fastcall get_ArrowType(void);
  HRESULT         __fastcall set_ArrowType(ksArrowEnum Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksArrowEnum ArrowType = {read = get_ArrowType, write = set_ArrowType};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBaseLeaderDispT<IBaseLeader> IBaseLeaderDisp;

// *********************************************************************//
// SmartIntf: TCOMIBases
// Interface: IBases
// *********************************************************************//
template <class T /* IBases */ >
class TCOMIBasesT : public TComInterface<IBases>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBasesT() {}
  TCOMIBasesT(IBases *intf, bool addRef = false) : TComInterface<IBases>(intf, addRef) {}
  TCOMIBasesT(const TCOMIBasesT& src) : TComInterface<IBases>(src) {}
  TCOMIBasesT& operator=(const TCOMIBasesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Base(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IBasePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBasePtr __fastcall get_Base(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBasePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBasePtr __fastcall Add(void);

};
typedef TCOMIBasesT<IBases> TCOMIBases;

// *********************************************************************//
// DispIntf:  IBases
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C607727C-6B0A-4FB6-AFCA-ED9D83F5C6B7}
// *********************************************************************//
template<class T>
class IBasesDispT : public TAutoDriver<IBases>
{
public:
  IBasesDispT(){}

  IBasesDispT(IBases *pintf)
  {
    TAutoDriver<IBases>::Bind(pintf, false);
  }

  IBasesDispT(IBasesPtr pintf)
  {
    TAutoDriver<IBases>::Bind(pintf, true);
  }

  IBasesDispT& operator=(IBases *pintf)
  {
    TAutoDriver<IBases>::Bind(pintf, false);
    return *this;
  }

  IBasesDispT& operator=(IBasesPtr pintf)
  {
    TAutoDriver<IBases>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Bases));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Bases);
  }

  HRESULT         __fastcall get_Base(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IBasePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBasePtr __fastcall get_Base(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBasePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IBasePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBasesDispT<IBases> IBasesDisp;

// *********************************************************************//
// SmartIntf: TCOMIBase
// Interface: IBase
// *********************************************************************//
template <class T /* IBase */ >
class TCOMIBaseT : public TComInterface<IBase>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBaseT() {}
  TCOMIBaseT(IBase *intf, bool addRef = false) : TComInterface<IBase>(intf, addRef) {}
  TCOMIBaseT(const TCOMIBaseT& src) : TComInterface<IBase>(src) {}
  TCOMIBaseT& operator=(const TCOMIBaseT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_X0(double* Result/*[out,retval]*/);
  double          __fastcall get_X0(void);
  HRESULT         __fastcall set_X0(double Result/*[in]*/);
  HRESULT         __fastcall get_Y0(double* Result/*[out,retval]*/);
  double          __fastcall get_Y0(void);
  HRESULT         __fastcall set_Y0(double Result/*[in]*/);
  HRESULT         __fastcall get_BranchX(double* Result/*[out,retval]*/);
  double          __fastcall get_BranchX(void);
  HRESULT         __fastcall set_BranchX(double Result/*[in]*/);
  HRESULT         __fastcall get_BranchY(double* Result/*[out,retval]*/);
  double          __fastcall get_BranchY(void);
  HRESULT         __fastcall set_BranchY(double Result/*[in]*/);
  HRESULT         __fastcall get_DrawType(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawType(void);
  HRESULT         __fastcall set_DrawType(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   double          BranchX = {read = get_BranchX, write = set_BranchX};
  __property   double          BranchY = {read = get_BranchY, write = set_BranchY};
  __property   TOLEBOOL        DrawType = {read = get_DrawType, write = set_DrawType};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
};
typedef TCOMIBaseT<IBase> TCOMIBase;

// *********************************************************************//
// DispIntf:  IBase
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {01CDFD67-69EA-4289-8F42-5B01BB9BF70B}
// *********************************************************************//
template<class T>
class IBaseDispT : public TAutoDriver<IBase>
{
public:
  IBaseDispT(){}

  IBaseDispT(IBase *pintf)
  {
    TAutoDriver<IBase>::Bind(pintf, false);
  }

  IBaseDispT(IBasePtr pintf)
  {
    TAutoDriver<IBase>::Bind(pintf, true);
  }

  IBaseDispT& operator=(IBase *pintf)
  {
    TAutoDriver<IBase>::Bind(pintf, false);
    return *this;
  }

  IBaseDispT& operator=(IBasePtr pintf)
  {
    TAutoDriver<IBase>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Base));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Base);
  }

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_X0(double* Result/*[out,retval]*/);
  double          __fastcall get_X0(void);
  HRESULT         __fastcall set_X0(double Result/*[in]*/);
  HRESULT         __fastcall get_Y0(double* Result/*[out,retval]*/);
  double          __fastcall get_Y0(void);
  HRESULT         __fastcall set_Y0(double Result/*[in]*/);
  HRESULT         __fastcall get_BranchX(double* Result/*[out,retval]*/);
  double          __fastcall get_BranchX(void);
  HRESULT         __fastcall set_BranchX(double Result/*[in]*/);
  HRESULT         __fastcall get_BranchY(double* Result/*[out,retval]*/);
  double          __fastcall get_BranchY(void);
  HRESULT         __fastcall set_BranchY(double Result/*[in]*/);
  HRESULT         __fastcall get_DrawType(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DrawType(void);
  HRESULT         __fastcall set_DrawType(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   double          BranchX = {read = get_BranchX, write = set_BranchX};
  __property   double          BranchY = {read = get_BranchY, write = set_BranchY};
  __property   TOLEBOOL        DrawType = {read = get_DrawType, write = set_DrawType};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBaseDispT<IBase> IBaseDisp;

// *********************************************************************//
// SmartIntf: TCOMITolerances
// Interface: ITolerances
// *********************************************************************//
template <class T /* ITolerances */ >
class TCOMITolerancesT : public TComInterface<ITolerances>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMITolerancesT() {}
  TCOMITolerancesT(ITolerances *intf, bool addRef = false) : TComInterface<ITolerances>(intf, addRef) {}
  TCOMITolerancesT(const TCOMITolerancesT& src) : TComInterface<ITolerances>(src) {}
  TCOMITolerancesT& operator=(const TCOMITolerancesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_Tolerance(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ITolerancePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerancePtr __fastcall get_Tolerance(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITolerancePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerancePtr __fastcall Add(void);

};
typedef TCOMITolerancesT<ITolerances> TCOMITolerances;

// *********************************************************************//
// DispIntf:  ITolerances
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {97CDD55F-3C64-469B-B26E-A927D3300B6C}
// *********************************************************************//
template<class T>
class ITolerancesDispT : public TAutoDriver<ITolerances>
{
public:
  ITolerancesDispT(){}

  ITolerancesDispT(ITolerances *pintf)
  {
    TAutoDriver<ITolerances>::Bind(pintf, false);
  }

  ITolerancesDispT(ITolerancesPtr pintf)
  {
    TAutoDriver<ITolerances>::Bind(pintf, true);
  }

  ITolerancesDispT& operator=(ITolerances *pintf)
  {
    TAutoDriver<ITolerances>::Bind(pintf, false);
    return *this;
  }

  ITolerancesDispT& operator=(ITolerancesPtr pintf)
  {
    TAutoDriver<ITolerances>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_Tolerances));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_Tolerances);
  }

  HRESULT         __fastcall get_Tolerance(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ITolerancePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerancePtr __fastcall get_Tolerance(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ITolerancePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::ITolerancePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ITolerancesDispT<ITolerances> ITolerancesDisp;

// *********************************************************************//
// SmartIntf: TCOMITolerance
// Interface: ITolerance
// *********************************************************************//
template <class T /* ITolerance */ >
class TCOMIToleranceT : public TComInterface<ITolerance>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIToleranceT() {}
  TCOMIToleranceT(ITolerance *intf, bool addRef = false) : TComInterface<ITolerance>(intf, addRef) {}
  TCOMIToleranceT(const TCOMIToleranceT& src) : TComInterface<ITolerance>(src) {}
  TCOMIToleranceT& operator=(const TCOMIToleranceT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ArrowType(long Index/*[in]*/);
  HRESULT         __fastcall set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_BranchPos(long Index/*[in]*/, 
                                           ksTablePointEnum* Result/*[out,retval]*/);
  ksTablePointEnum __fastcall get_BranchPos(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchPos(long Index/*[in]*/, 
                                           ksTablePointEnum Result/*[in]*/);

};
typedef TCOMIToleranceT<ITolerance> TCOMITolerance;

// *********************************************************************//
// DispIntf:  ITolerance
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42DEF911-ADB2-478C-85F1-D5FEFA262EEC}
// *********************************************************************//
template<class T>
class IToleranceDispT : public TAutoDriver<ITolerance>
{
public:
  IToleranceDispT(){}

  IToleranceDispT(ITolerance *pintf)
  {
    TAutoDriver<ITolerance>::Bind(pintf, false);
  }

  IToleranceDispT(ITolerancePtr pintf)
  {
    TAutoDriver<ITolerance>::Bind(pintf, true);
  }

  IToleranceDispT& operator=(ITolerance *pintf)
  {
    TAutoDriver<ITolerance>::Bind(pintf, false);
    return *this;
  }

  IToleranceDispT& operator=(ITolerancePtr pintf)
  {
    TAutoDriver<ITolerance>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID__Tolerance));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID__Tolerance);
  }

  HRESULT         __fastcall get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ArrowType(long Index/*[in]*/);
  HRESULT         __fastcall set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_BranchPos(long Index/*[in]*/, 
                                           ksTablePointEnum* Result/*[out,retval]*/);
  ksTablePointEnum __fastcall get_BranchPos(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchPos(long Index/*[in]*/, 
                                           ksTablePointEnum Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IToleranceDispT<ITolerance> IToleranceDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingTables
// Interface: IDrawingTables
// *********************************************************************//
template <class T /* IDrawingTables */ >
class TCOMIDrawingTablesT : public TComInterface<IDrawingTables>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingTablesT() {}
  TCOMIDrawingTablesT(IDrawingTables *intf, bool addRef = false) : TComInterface<IDrawingTables>(intf, addRef) {}
  TCOMIDrawingTablesT(const TCOMIDrawingTablesT& src) : TComInterface<IDrawingTables>(src) {}
  TCOMIDrawingTablesT& operator=(const TCOMIDrawingTablesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_DrawingTable(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IDrawingTablePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTablePtr __fastcall get_DrawingTable(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long RowsCount/*[in]*/, long ColumnsCount/*[in]*/, 
                                 double RowHeigh/*[in]*/, double ColumnsWidth/*[in]*/, 
                                 ksTableTileLayoutEnum TitlePos/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingTablePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTablePtr __fastcall Add(long RowsCount/*[in]*/, 
                                                    long ColumnsCount/*[in]*/, 
                                                    double RowHeigh/*[in]*/, 
                                                    double ColumnsWidth/*[in]*/, 
                                                    ksTableTileLayoutEnum TitlePos/*[in]*/);
  HRESULT         __fastcall Load(BSTR FileName, 
                                  Kompasltapi7_tlb::IDrawingTablePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTablePtr __fastcall Load(BSTR FileName);

};
typedef TCOMIDrawingTablesT<IDrawingTables> TCOMIDrawingTables;

// *********************************************************************//
// DispIntf:  IDrawingTables
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DF92DACE-BDC6-4341-86DA-3A9C8DCFDEFE}
// *********************************************************************//
template<class T>
class IDrawingTablesDispT : public TAutoDriver<IDrawingTables>
{
public:
  IDrawingTablesDispT(){}

  IDrawingTablesDispT(IDrawingTables *pintf)
  {
    TAutoDriver<IDrawingTables>::Bind(pintf, false);
  }

  IDrawingTablesDispT(IDrawingTablesPtr pintf)
  {
    TAutoDriver<IDrawingTables>::Bind(pintf, true);
  }

  IDrawingTablesDispT& operator=(IDrawingTables *pintf)
  {
    TAutoDriver<IDrawingTables>::Bind(pintf, false);
    return *this;
  }

  IDrawingTablesDispT& operator=(IDrawingTablesPtr pintf)
  {
    TAutoDriver<IDrawingTables>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingTables));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingTables);
  }

  HRESULT         __fastcall get_DrawingTable(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IDrawingTablePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTablePtr __fastcall get_DrawingTable(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(long RowsCount/*[in]*/, long ColumnsCount/*[in]*/, 
                                 double RowHeigh/*[in]*/, double ColumnsWidth/*[in]*/, 
                                 ksTableTileLayoutEnum TitlePos/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingTablePtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTablePtr __fastcall Add(long RowsCount/*[in]*/, 
                                                    long ColumnsCount/*[in]*/, 
                                                    double RowHeigh/*[in]*/, 
                                                    double ColumnsWidth/*[in]*/, 
                                                    ksTableTileLayoutEnum TitlePos/*[in]*/);
  HRESULT         __fastcall Load(BSTR FileName, 
                                  Kompasltapi7_tlb::IDrawingTablePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingTablePtr __fastcall Load(BSTR FileName);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingTablesDispT<IDrawingTables> IDrawingTablesDisp;

// *********************************************************************//
// SmartIntf: TCOMIDrawingTable
// Interface: IDrawingTable
// *********************************************************************//
template <class T /* IDrawingTable */ >
class TCOMIDrawingTableT : public TComInterface<IDrawingTable>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDrawingTableT() {}
  TCOMIDrawingTableT(IDrawingTable *intf, bool addRef = false) : TComInterface<IDrawingTable>(intf, addRef) {}
  TCOMIDrawingTableT(const TCOMIDrawingTableT& src) : TComInterface<IDrawingTable>(src) {}
  TCOMIDrawingTableT& operator=(const TCOMIDrawingTableT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_FixedCellsSize(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FixedCellsSize(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FixedCellsSize(void);
  HRESULT         __fastcall set_FixedRowCount(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FixedRowCount(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FixedRowCount(void);
  HRESULT         __fastcall set_FixedColumnCount(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FixedColumnCount(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FixedColumnCount(void);
  HRESULT         __fastcall Save(BSTR FileName, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Save(BSTR FileName);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        FixedCellsSize = {read = get_FixedCellsSize, write = set_FixedCellsSize};
  __property   TOLEBOOL        FixedRowCount = {read = get_FixedRowCount, write = set_FixedRowCount};
  __property   TOLEBOOL        FixedColumnCount = {read = get_FixedColumnCount, write = set_FixedColumnCount};
};
typedef TCOMIDrawingTableT<IDrawingTable> TCOMIDrawingTable;

// *********************************************************************//
// DispIntf:  IDrawingTable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9B421BDA-0444-4A68-B69C-1C05D05C9D28}
// *********************************************************************//
template<class T>
class IDrawingTableDispT : public TAutoDriver<IDrawingTable>
{
public:
  IDrawingTableDispT(){}

  IDrawingTableDispT(IDrawingTable *pintf)
  {
    TAutoDriver<IDrawingTable>::Bind(pintf, false);
  }

  IDrawingTableDispT(IDrawingTablePtr pintf)
  {
    TAutoDriver<IDrawingTable>::Bind(pintf, true);
  }

  IDrawingTableDispT& operator=(IDrawingTable *pintf)
  {
    TAutoDriver<IDrawingTable>::Bind(pintf, false);
    return *this;
  }

  IDrawingTableDispT& operator=(IDrawingTablePtr pintf)
  {
    TAutoDriver<IDrawingTable>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DrawingTable));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DrawingTable);
  }

  HRESULT         __fastcall get_X(double* Result/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_X(double Result/*[in]*/);
  HRESULT         __fastcall get_Y(double* Result/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Y(double Result/*[in]*/);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_FixedCellsSize(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FixedCellsSize(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FixedCellsSize(void);
  HRESULT         __fastcall set_FixedRowCount(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FixedRowCount(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FixedRowCount(void);
  HRESULT         __fastcall set_FixedColumnCount(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_FixedColumnCount(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FixedColumnCount(void);
  HRESULT         __fastcall Save(BSTR FileName, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall Save(BSTR FileName);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        FixedCellsSize = {read = get_FixedCellsSize, write = set_FixedCellsSize};
  __property   TOLEBOOL        FixedRowCount = {read = get_FixedRowCount, write = set_FixedRowCount};
  __property   TOLEBOOL        FixedColumnCount = {read = get_FixedColumnCount, write = set_FixedColumnCount};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IDrawingTableDispT<IDrawingTable> IDrawingTableDisp;

// *********************************************************************//
// SmartIntf: TCOMIViewPointers
// Interface: IViewPointers
// *********************************************************************//
template <class T /* IViewPointers */ >
class TCOMIViewPointersT : public TComInterface<IViewPointers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIViewPointersT() {}
  TCOMIViewPointersT(IViewPointers *intf, bool addRef = false) : TComInterface<IViewPointers>(intf, addRef) {}
  TCOMIViewPointersT(const TCOMIViewPointersT& src) : TComInterface<IViewPointers>(src) {}
  TCOMIViewPointersT& operator=(const TCOMIViewPointersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ViewPointer(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IViewPointerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPointerPtr __fastcall get_ViewPointer(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IViewPointerPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPointerPtr __fastcall Add(void);

};
typedef TCOMIViewPointersT<IViewPointers> TCOMIViewPointers;

// *********************************************************************//
// DispIntf:  IViewPointers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {08B45C97-6F86-4809-BBC3-78F216BD0430}
// *********************************************************************//
template<class T>
class IViewPointersDispT : public TAutoDriver<IViewPointers>
{
public:
  IViewPointersDispT(){}

  IViewPointersDispT(IViewPointers *pintf)
  {
    TAutoDriver<IViewPointers>::Bind(pintf, false);
  }

  IViewPointersDispT(IViewPointersPtr pintf)
  {
    TAutoDriver<IViewPointers>::Bind(pintf, true);
  }

  IViewPointersDispT& operator=(IViewPointers *pintf)
  {
    TAutoDriver<IViewPointers>::Bind(pintf, false);
    return *this;
  }

  IViewPointersDispT& operator=(IViewPointersPtr pintf)
  {
    TAutoDriver<IViewPointers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ViewPointers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ViewPointers);
  }

  HRESULT         __fastcall get_ViewPointer(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IViewPointerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPointerPtr __fastcall get_ViewPointer(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IViewPointerPtr* Value/*[out,retval]*/);
  Kompasltapi7_tlb::IViewPointerPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IViewPointersDispT<IViewPointers> IViewPointersDisp;

// *********************************************************************//
// SmartIntf: TCOMIViewPointer
// Interface: IViewPointer
// *********************************************************************//
template <class T /* IViewPointer */ >
class TCOMIViewPointerT : public TComInterface<IViewPointer>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIViewPointerT() {}
  TCOMIViewPointerT(IViewPointer *intf, bool addRef = false) : TComInterface<IViewPointer>(intf, addRef) {}
  TCOMIViewPointerT(const TCOMIViewPointerT& src) : TComInterface<IViewPointer>(src) {}
  TCOMIViewPointerT& operator=(const TCOMIViewPointerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_X1(double* Result/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double Result/*[in]*/);
  HRESULT         __fastcall get_Y1(double* Result/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double Result/*[in]*/);
  HRESULT         __fastcall get_X2(double* Result/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double Result/*[in]*/);
  HRESULT         __fastcall get_Y2(double* Result/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double Result/*[in]*/);
  HRESULT         __fastcall get_TextX(double* Result/*[out,retval]*/);
  double          __fastcall get_TextX(void);
  HRESULT         __fastcall set_TextX(double Result/*[in]*/);
  HRESULT         __fastcall get_TextY(double* Result/*[out,retval]*/);
  double          __fastcall get_TextY(void);
  HRESULT         __fastcall set_TextY(double Result/*[in]*/);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSheet(void);
  HRESULT         __fastcall set_AutoSheet(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoZone(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoZone(void);
  HRESULT         __fastcall set_AutoZone(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          TextX = {read = get_TextX, write = set_TextX};
  __property   double          TextY = {read = get_TextY, write = set_TextY};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};
};
typedef TCOMIViewPointerT<IViewPointer> TCOMIViewPointer;

// *********************************************************************//
// DispIntf:  IViewPointer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EE98177-63E8-4C48-89AD-3D5CCCF84D72}
// *********************************************************************//
template<class T>
class IViewPointerDispT : public TAutoDriver<IViewPointer>
{
public:
  IViewPointerDispT(){}

  IViewPointerDispT(IViewPointer *pintf)
  {
    TAutoDriver<IViewPointer>::Bind(pintf, false);
  }

  IViewPointerDispT(IViewPointerPtr pintf)
  {
    TAutoDriver<IViewPointer>::Bind(pintf, true);
  }

  IViewPointerDispT& operator=(IViewPointer *pintf)
  {
    TAutoDriver<IViewPointer>::Bind(pintf, false);
    return *this;
  }

  IViewPointerDispT& operator=(IViewPointerPtr pintf)
  {
    TAutoDriver<IViewPointer>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ViewPointer));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ViewPointer);
  }

  HRESULT         __fastcall get_X1(double* Result/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_X1(double Result/*[in]*/);
  HRESULT         __fastcall get_Y1(double* Result/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_Y1(double Result/*[in]*/);
  HRESULT         __fastcall get_X2(double* Result/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_X2(double Result/*[in]*/);
  HRESULT         __fastcall get_Y2(double* Result/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Y2(double Result/*[in]*/);
  HRESULT         __fastcall get_TextX(double* Result/*[out,retval]*/);
  double          __fastcall get_TextX(void);
  HRESULT         __fastcall set_TextX(double Result/*[in]*/);
  HRESULT         __fastcall get_TextY(double* Result/*[out,retval]*/);
  double          __fastcall get_TextY(void);
  HRESULT         __fastcall set_TextY(double Result/*[in]*/);
  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSheet(void);
  HRESULT         __fastcall set_AutoSheet(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoZone(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoZone(void);
  HRESULT         __fastcall set_AutoZone(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Text(void);
  HRESULT         __fastcall get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          TextX = {read = get_TextX, write = set_TextX};
  __property   double          TextY = {read = get_TextY, write = set_TextY};
  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   Kompasltapi7_tlb::ITextPtr Text = {read = get_Text};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IViewPointerDispT<IViewPointer> IViewPointerDisp;

// *********************************************************************//
// SmartIntf: TCOMICentreMarkers
// Interface: ICentreMarkers
// *********************************************************************//
template <class T /* ICentreMarkers */ >
class TCOMICentreMarkersT : public TComInterface<ICentreMarkers>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICentreMarkersT() {}
  TCOMICentreMarkersT(ICentreMarkers *intf, bool addRef = false) : TComInterface<ICentreMarkers>(intf, addRef) {}
  TCOMICentreMarkersT(const TCOMICentreMarkersT& src) : TComInterface<ICentreMarkers>(src) {}
  TCOMICentreMarkersT& operator=(const TCOMICentreMarkersT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_CentreMarker(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICentreMarkerPtr __fastcall get_CentreMarker(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICentreMarkerPtr __fastcall Add(void);

};
typedef TCOMICentreMarkersT<ICentreMarkers> TCOMICentreMarkers;

// *********************************************************************//
// DispIntf:  ICentreMarkers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A0533211-CF52-4AB5-A172-3DC7D94276D1}
// *********************************************************************//
template<class T>
class ICentreMarkersDispT : public TAutoDriver<ICentreMarkers>
{
public:
  ICentreMarkersDispT(){}

  ICentreMarkersDispT(ICentreMarkers *pintf)
  {
    TAutoDriver<ICentreMarkers>::Bind(pintf, false);
  }

  ICentreMarkersDispT(ICentreMarkersPtr pintf)
  {
    TAutoDriver<ICentreMarkers>::Bind(pintf, true);
  }

  ICentreMarkersDispT& operator=(ICentreMarkers *pintf)
  {
    TAutoDriver<ICentreMarkers>::Bind(pintf, false);
    return *this;
  }

  ICentreMarkersDispT& operator=(ICentreMarkersPtr pintf)
  {
    TAutoDriver<ICentreMarkers>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CentreMarkers));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CentreMarkers);
  }

  HRESULT         __fastcall get_CentreMarker(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICentreMarkerPtr __fastcall get_CentreMarker(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICentreMarkerPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICentreMarkersDispT<ICentreMarkers> ICentreMarkersDisp;

// *********************************************************************//
// SmartIntf: TCOMICentreMarker
// Interface: ICentreMarker
// *********************************************************************//
template <class T /* ICentreMarker */ >
class TCOMICentreMarkerT : public TComInterface<ICentreMarker>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICentreMarkerT() {}
  TCOMICentreMarkerT(ICentreMarker *intf, bool addRef = false) : TComInterface<ICentreMarker>(intf, addRef) {}
  TCOMICentreMarkerT(const TCOMICentreMarkerT& src) : TComInterface<ICentreMarker>(src) {}
  TCOMICentreMarkerT& operator=(const TCOMICentreMarkerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_SignType(ksCentreMarkerEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SignType(ksCentreMarkerEnum* PVal/*[out,retval]*/);
  ksCentreMarkerEnum __fastcall get_SignType(void);
  HRESULT         __fastcall set_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                    TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                    TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/);
  HRESULT         __fastcall set_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                                double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/);
  HRESULT         __fastcall set_CrosshairSize(double PVal/*[in]*/);
  HRESULT         __fastcall get_CrosshairSize(double* PVal/*[out,retval]*/);
  double          __fastcall get_CrosshairSize(void);
  HRESULT         __fastcall set_CrosshairSizeModify(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CrosshairSizeModify(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CrosshairSizeModify(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksCentreMarkerEnum SignType = {read = get_SignType, write = set_SignType};
  __property   double          CrosshairSize = {read = get_CrosshairSize, write = set_CrosshairSize};
  __property   TOLEBOOL        CrosshairSizeModify = {read = get_CrosshairSizeModify, write = set_CrosshairSizeModify};
};
typedef TCOMICentreMarkerT<ICentreMarker> TCOMICentreMarker;

// *********************************************************************//
// DispIntf:  ICentreMarker
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8FE1CADA-DE72-4A55-B303-EAF1F4748CF6}
// *********************************************************************//
template<class T>
class ICentreMarkerDispT : public TAutoDriver<ICentreMarker>
{
public:
  ICentreMarkerDispT(){}

  ICentreMarkerDispT(ICentreMarker *pintf)
  {
    TAutoDriver<ICentreMarker>::Bind(pintf, false);
  }

  ICentreMarkerDispT(ICentreMarkerPtr pintf)
  {
    TAutoDriver<ICentreMarker>::Bind(pintf, true);
  }

  ICentreMarkerDispT& operator=(ICentreMarker *pintf)
  {
    TAutoDriver<ICentreMarker>::Bind(pintf, false);
    return *this;
  }

  ICentreMarkerDispT& operator=(ICentreMarkerPtr pintf)
  {
    TAutoDriver<ICentreMarker>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CentreMarker));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CentreMarker);
  }

  HRESULT         __fastcall get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject(void);
  HRESULT         __fastcall set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/);
  HRESULT         __fastcall set_X(double PVal/*[in]*/);
  HRESULT         __fastcall get_X(double* PVal/*[out,retval]*/);
  double          __fastcall get_X(void);
  HRESULT         __fastcall set_Y(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_SignType(ksCentreMarkerEnum PVal/*[in]*/);
  HRESULT         __fastcall get_SignType(ksCentreMarkerEnum* PVal/*[out,retval]*/);
  ksCentreMarkerEnum __fastcall get_SignType(void);
  HRESULT         __fastcall set_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                                    , TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                                    , TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/);
  HRESULT         __fastcall set_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                                , double PVal/*[in]*/);
  HRESULT         __fastcall get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                                , double* PVal/*[out,retval]*/);
  double          __fastcall get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/);
  HRESULT         __fastcall set_CrosshairSize(double PVal/*[in]*/);
  HRESULT         __fastcall get_CrosshairSize(double* PVal/*[out,retval]*/);
  double          __fastcall get_CrosshairSize(void);
  HRESULT         __fastcall set_CrosshairSizeModify(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_CrosshairSizeModify(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_CrosshairSizeModify(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject = {read = get_BaseObject, write = set_BaseObject};
  __property   double          X = {read = get_X, write = set_X};
  __property   double          Y = {read = get_Y, write = set_Y};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   ksCentreMarkerEnum SignType = {read = get_SignType, write = set_SignType};
  __property   double          CrosshairSize = {read = get_CrosshairSize, write = set_CrosshairSize};
  __property   TOLEBOOL        CrosshairSizeModify = {read = get_CrosshairSizeModify, write = set_CrosshairSizeModify};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICentreMarkerDispT<ICentreMarker> ICentreMarkerDisp;

// *********************************************************************//
// SmartIntf: TCOMIRemoteElements
// Interface: IRemoteElements
// *********************************************************************//
template <class T /* IRemoteElements */ >
class TCOMIRemoteElementsT : public TComInterface<IRemoteElements>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRemoteElementsT() {}
  TCOMIRemoteElementsT(IRemoteElements *intf, bool addRef = false) : TComInterface<IRemoteElements>(intf, addRef) {}
  TCOMIRemoteElementsT(const TCOMIRemoteElementsT& src) : TComInterface<IRemoteElements>(src) {}
  TCOMIRemoteElementsT& operator=(const TCOMIRemoteElementsT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_RemoteElement(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRemoteElementPtr __fastcall get_RemoteElement(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRemoteElementPtr __fastcall Add(void);

};
typedef TCOMIRemoteElementsT<IRemoteElements> TCOMIRemoteElements;

// *********************************************************************//
// DispIntf:  IRemoteElements
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88427A6B-00AF-46E2-9B95-BC8348C2162A}
// *********************************************************************//
template<class T>
class IRemoteElementsDispT : public TAutoDriver<IRemoteElements>
{
public:
  IRemoteElementsDispT(){}

  IRemoteElementsDispT(IRemoteElements *pintf)
  {
    TAutoDriver<IRemoteElements>::Bind(pintf, false);
  }

  IRemoteElementsDispT(IRemoteElementsPtr pintf)
  {
    TAutoDriver<IRemoteElements>::Bind(pintf, true);
  }

  IRemoteElementsDispT& operator=(IRemoteElements *pintf)
  {
    TAutoDriver<IRemoteElements>::Bind(pintf, false);
    return *this;
  }

  IRemoteElementsDispT& operator=(IRemoteElementsPtr pintf)
  {
    TAutoDriver<IRemoteElements>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RemoteElements));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RemoteElements);
  }

  HRESULT         __fastcall get_RemoteElement(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRemoteElementPtr __fastcall get_RemoteElement(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IRemoteElementPtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRemoteElementsDispT<IRemoteElements> IRemoteElementsDisp;

// *********************************************************************//
// SmartIntf: TCOMIRemoteElement
// Interface: IRemoteElement
// *********************************************************************//
template <class T /* IRemoteElement */ >
class TCOMIRemoteElementT : public TComInterface<IRemoteElement>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIRemoteElementT() {}
  TCOMIRemoteElementT(IRemoteElement *intf, bool addRef = false) : TComInterface<IRemoteElement>(intf, addRef) {}
  TCOMIRemoteElementT(const TCOMIRemoteElementT& src) : TComInterface<IRemoteElement>(src) {}
  TCOMIRemoteElementT& operator=(const TCOMIRemoteElementT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSheet(void);
  HRESULT         __fastcall set_AutoSheet(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoZone(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoZone(void);
  HRESULT         __fastcall set_AutoZone(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void);

  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};
};
typedef TCOMIRemoteElementT<IRemoteElement> TCOMIRemoteElement;

// *********************************************************************//
// DispIntf:  IRemoteElement
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A9D96CE2-9FE4-494E-87B2-20122EAC2AE4}
// *********************************************************************//
template<class T>
class IRemoteElementDispT : public TAutoDriver<IRemoteElement>
{
public:
  IRemoteElementDispT(){}

  IRemoteElementDispT(IRemoteElement *pintf)
  {
    TAutoDriver<IRemoteElement>::Bind(pintf, false);
  }

  IRemoteElementDispT(IRemoteElementPtr pintf)
  {
    TAutoDriver<IRemoteElement>::Bind(pintf, true);
  }

  IRemoteElementDispT& operator=(IRemoteElement *pintf)
  {
    TAutoDriver<IRemoteElement>::Bind(pintf, false);
    return *this;
  }

  IRemoteElementDispT& operator=(IRemoteElementPtr pintf)
  {
    TAutoDriver<IRemoteElement>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_RemoteElement));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_RemoteElement);
  }

  HRESULT         __fastcall get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSorted(void);
  HRESULT         __fastcall set_AutoSorted(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoSheet(void);
  HRESULT         __fastcall set_AutoSheet(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AutoZone(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoZone(void);
  HRESULT         __fastcall set_AutoZone(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_AdditionalText(void);
  HRESULT         __fastcall get_Xc(double* Result/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double Result/*[in]*/);
  HRESULT         __fastcall get_Yc(double* Result/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double Result/*[in]*/);
  HRESULT         __fastcall get_Radius(double* Result/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Radius(double Result/*[in]*/);
  HRESULT         __fastcall get_Height(double* Result/*[out,retval]*/);
  double          __fastcall get_Height(void);
  HRESULT         __fastcall set_Height(double Result/*[in]*/);
  HRESULT         __fastcall get_Width(double* Result/*[out,retval]*/);
  double          __fastcall get_Width(void);
  HRESULT         __fastcall set_Width(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double Result/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* Result/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double Result/*[in]*/);
  HRESULT         __fastcall get_Form(ksContourFormEnum* Result/*[out,retval]*/);
  ksContourFormEnum __fastcall get_Form(void);
  HRESULT         __fastcall set_Form(ksContourFormEnum Result/*[in]*/);
  HRESULT         __fastcall get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUp(void);
  HRESULT         __fastcall get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextDown(void);
  HRESULT         __fastcall get_FilletRadius(double* Result/*[out,retval]*/);
  double          __fastcall get_FilletRadius(void);
  HRESULT         __fastcall set_FilletRadius(double Result/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   TOLEBOOL        AutoSorted = {read = get_AutoSorted, write = set_AutoSorted};
  __property   TOLEBOOL        AutoSheet = {read = get_AutoSheet, write = set_AutoSheet};
  __property   TOLEBOOL        AutoZone = {read = get_AutoZone, write = set_AutoZone};
  __property   Kompasltapi7_tlb::ITextPtr AdditionalText = {read = get_AdditionalText};

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Height = {read = get_Height, write = set_Height};
  __property   double          Width = {read = get_Width, write = set_Width};
  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   ksContourFormEnum Form = {read = get_Form, write = set_Form};
  __property   Kompasltapi7_tlb::ITextPtr TextUp = {read = get_TextUp};
  __property   Kompasltapi7_tlb::ITextPtr TextDown = {read = get_TextDown};
  __property   double          FilletRadius = {read = get_FilletRadius, write = set_FilletRadius};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IRemoteElementDispT<IRemoteElement> IRemoteElementDisp;

// *********************************************************************//
// SmartIntf: TCOMIAxisLines
// Interface: IAxisLines
// *********************************************************************//
template <class T /* IAxisLines */ >
class TCOMIAxisLinesT : public TComInterface<IAxisLines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAxisLinesT() {}
  TCOMIAxisLinesT(IAxisLines *intf, bool addRef = false) : TComInterface<IAxisLines>(intf, addRef) {}
  TCOMIAxisLinesT(const TCOMIAxisLinesT& src) : TComInterface<IAxisLines>(src) {}
  TCOMIAxisLinesT& operator=(const TCOMIAxisLinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_AxisLine(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisLinePtr __fastcall get_AxisLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisLinePtr __fastcall Add(void);

};
typedef TCOMIAxisLinesT<IAxisLines> TCOMIAxisLines;

// *********************************************************************//
// DispIntf:  IAxisLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C567E700-E163-4C8F-B329-931BB93D0223}
// *********************************************************************//
template<class T>
class IAxisLinesDispT : public TAutoDriver<IAxisLines>
{
public:
  IAxisLinesDispT(){}

  IAxisLinesDispT(IAxisLines *pintf)
  {
    TAutoDriver<IAxisLines>::Bind(pintf, false);
  }

  IAxisLinesDispT(IAxisLinesPtr pintf)
  {
    TAutoDriver<IAxisLines>::Bind(pintf, true);
  }

  IAxisLinesDispT& operator=(IAxisLines *pintf)
  {
    TAutoDriver<IAxisLines>::Bind(pintf, false);
    return *this;
  }

  IAxisLinesDispT& operator=(IAxisLinesPtr pintf)
  {
    TAutoDriver<IAxisLines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AxisLines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AxisLines);
  }

  HRESULT         __fastcall get_AxisLine(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisLinePtr __fastcall get_AxisLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAxisLinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAxisLinesDispT<IAxisLines> IAxisLinesDisp;

// *********************************************************************//
// SmartIntf: TCOMIAxisLine
// Interface: IAxisLine
// *********************************************************************//
template <class T /* IAxisLine */ >
class TCOMIAxisLineT : public TComInterface<IAxisLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIAxisLineT() {}
  TCOMIAxisLineT(IAxisLine *intf, bool addRef = false) : TComInterface<IAxisLine>(intf, addRef) {}
  TCOMIAxisLineT(const TCOMIAxisLineT& src) : TComInterface<IAxisLine>(src) {}
  TCOMIAxisLineT& operator=(const TCOMIAxisLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Length = {read = get_Length, write = set_Length};
};
typedef TCOMIAxisLineT<IAxisLine> TCOMIAxisLine;

// *********************************************************************//
// DispIntf:  IAxisLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C5CAEBD-70A9-41DB-9F74-F9760D822D95}
// *********************************************************************//
template<class T>
class IAxisLineDispT : public TAutoDriver<IAxisLine>
{
public:
  IAxisLineDispT(){}

  IAxisLineDispT(IAxisLine *pintf)
  {
    TAutoDriver<IAxisLine>::Bind(pintf, false);
  }

  IAxisLineDispT(IAxisLinePtr pintf)
  {
    TAutoDriver<IAxisLine>::Bind(pintf, true);
  }

  IAxisLineDispT& operator=(IAxisLine *pintf)
  {
    TAutoDriver<IAxisLine>::Bind(pintf, false);
    return *this;
  }

  IAxisLineDispT& operator=(IAxisLinePtr pintf)
  {
    TAutoDriver<IAxisLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_AxisLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_AxisLine);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Length = {read = get_Length, write = set_Length};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IAxisLineDispT<IAxisLine> IAxisLineDisp;

// *********************************************************************//
// SmartIntf: TCOMIWaveLines
// Interface: IWaveLines
// *********************************************************************//
template <class T /* IWaveLines */ >
class TCOMIWaveLinesT : public TComInterface<IWaveLines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIWaveLinesT() {}
  TCOMIWaveLinesT(IWaveLines *intf, bool addRef = false) : TComInterface<IWaveLines>(intf, addRef) {}
  TCOMIWaveLinesT(const TCOMIWaveLinesT& src) : TComInterface<IWaveLines>(src) {}
  TCOMIWaveLinesT& operator=(const TCOMIWaveLinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_WaveLine(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IWaveLinePtr __fastcall get_WaveLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IWaveLinePtr __fastcall Add(void);

};
typedef TCOMIWaveLinesT<IWaveLines> TCOMIWaveLines;

// *********************************************************************//
// DispIntf:  IWaveLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C1F0A911-8B4A-48B5-9611-5250D3FC2ACA}
// *********************************************************************//
template<class T>
class IWaveLinesDispT : public TAutoDriver<IWaveLines>
{
public:
  IWaveLinesDispT(){}

  IWaveLinesDispT(IWaveLines *pintf)
  {
    TAutoDriver<IWaveLines>::Bind(pintf, false);
  }

  IWaveLinesDispT(IWaveLinesPtr pintf)
  {
    TAutoDriver<IWaveLines>::Bind(pintf, true);
  }

  IWaveLinesDispT& operator=(IWaveLines *pintf)
  {
    TAutoDriver<IWaveLines>::Bind(pintf, false);
    return *this;
  }

  IWaveLinesDispT& operator=(IWaveLinesPtr pintf)
  {
    TAutoDriver<IWaveLines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_WaveLines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_WaveLines);
  }

  HRESULT         __fastcall get_WaveLine(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IWaveLinePtr __fastcall get_WaveLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IWaveLinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IWaveLinesDispT<IWaveLines> IWaveLinesDisp;

// *********************************************************************//
// SmartIntf: TCOMIWaveLine
// Interface: IWaveLine
// *********************************************************************//
template <class T /* IWaveLine */ >
class TCOMIWaveLineT : public TComInterface<IWaveLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIWaveLineT() {}
  TCOMIWaveLineT(IWaveLine *intf, bool addRef = false) : TComInterface<IWaveLine>(intf, addRef) {}
  TCOMIWaveLineT(const TCOMIWaveLineT& src) : TComInterface<IWaveLine>(src) {}
  TCOMIWaveLineT& operator=(const TCOMIWaveLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_HalfWavesCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_HalfWavesCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_HalfWavesCount(void);
  HRESULT         __fastcall set_WaveLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_WaveLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_WaveLength(void);
  HRESULT         __fastcall SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, 
                                               double NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, 
                                               double NewVal/*[in]*/);
  HRESULT         __fastcall get_WavesAmplitude(double* PVal/*[out,retval]*/);
  double          __fastcall get_WavesAmplitude(void);
  HRESULT         __fastcall get_WavesAmplitudeRepresentation(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WavesAmplitudeRepresentation(void);
  HRESULT         __fastcall set_AutoWavesAmplitude(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoWavesAmplitude(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoWavesAmplitude(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   long            HalfWavesCount = {read = get_HalfWavesCount, write = set_HalfWavesCount};
  __property   double          WaveLength = {read = get_WaveLength, write = set_WaveLength};
  __property   double          WavesAmplitude = {read = get_WavesAmplitude};
  __property   TOLEBOOL        WavesAmplitudeRepresentation = {read = get_WavesAmplitudeRepresentation};
  __property   TOLEBOOL        AutoWavesAmplitude = {read = get_AutoWavesAmplitude, write = set_AutoWavesAmplitude};
};
typedef TCOMIWaveLineT<IWaveLine> TCOMIWaveLine;

// *********************************************************************//
// DispIntf:  IWaveLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA2012E1-A983-47D3-9D43-B8DC619AC554}
// *********************************************************************//
template<class T>
class IWaveLineDispT : public TAutoDriver<IWaveLine>
{
public:
  IWaveLineDispT(){}

  IWaveLineDispT(IWaveLine *pintf)
  {
    TAutoDriver<IWaveLine>::Bind(pintf, false);
  }

  IWaveLineDispT(IWaveLinePtr pintf)
  {
    TAutoDriver<IWaveLine>::Bind(pintf, true);
  }

  IWaveLineDispT& operator=(IWaveLine *pintf)
  {
    TAutoDriver<IWaveLine>::Bind(pintf, false);
    return *this;
  }

  IWaveLineDispT& operator=(IWaveLinePtr pintf)
  {
    TAutoDriver<IWaveLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_WaveLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_WaveLine);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_HalfWavesCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_HalfWavesCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_HalfWavesCount(void);
  HRESULT         __fastcall set_WaveLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_WaveLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_WaveLength(void);
  HRESULT         __fastcall SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, 
                                               double NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, 
                                               double NewVal/*[in]*/);
  HRESULT         __fastcall get_WavesAmplitude(double* PVal/*[out,retval]*/);
  double          __fastcall get_WavesAmplitude(void);
  HRESULT         __fastcall get_WavesAmplitudeRepresentation(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_WavesAmplitudeRepresentation(void);
  HRESULT         __fastcall set_AutoWavesAmplitude(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoWavesAmplitude(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoWavesAmplitude(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   long            HalfWavesCount = {read = get_HalfWavesCount, write = set_HalfWavesCount};
  __property   double          WaveLength = {read = get_WaveLength, write = set_WaveLength};
  __property   double          WavesAmplitude = {read = get_WavesAmplitude};
  __property   TOLEBOOL        WavesAmplitudeRepresentation = {read = get_WavesAmplitudeRepresentation};
  __property   TOLEBOOL        AutoWavesAmplitude = {read = get_AutoWavesAmplitude, write = set_AutoWavesAmplitude};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IWaveLineDispT<IWaveLine> IWaveLineDisp;

// *********************************************************************//
// SmartIntf: TCOMIBrokenLines
// Interface: IBrokenLines
// *********************************************************************//
template <class T /* IBrokenLines */ >
class TCOMIBrokenLinesT : public TComInterface<IBrokenLines>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBrokenLinesT() {}
  TCOMIBrokenLinesT(IBrokenLines *intf, bool addRef = false) : TComInterface<IBrokenLines>(intf, addRef) {}
  TCOMIBrokenLinesT(const TCOMIBrokenLinesT& src) : TComInterface<IBrokenLines>(src) {}
  TCOMIBrokenLinesT& operator=(const TCOMIBrokenLinesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_BrokenLine(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBrokenLinePtr __fastcall get_BrokenLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBrokenLinePtr __fastcall Add(void);

};
typedef TCOMIBrokenLinesT<IBrokenLines> TCOMIBrokenLines;

// *********************************************************************//
// DispIntf:  IBrokenLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2A7EADC0-5E79-4DDB-85D5-E3EDB743480D}
// *********************************************************************//
template<class T>
class IBrokenLinesDispT : public TAutoDriver<IBrokenLines>
{
public:
  IBrokenLinesDispT(){}

  IBrokenLinesDispT(IBrokenLines *pintf)
  {
    TAutoDriver<IBrokenLines>::Bind(pintf, false);
  }

  IBrokenLinesDispT(IBrokenLinesPtr pintf)
  {
    TAutoDriver<IBrokenLines>::Bind(pintf, true);
  }

  IBrokenLinesDispT& operator=(IBrokenLines *pintf)
  {
    TAutoDriver<IBrokenLines>::Bind(pintf, false);
    return *this;
  }

  IBrokenLinesDispT& operator=(IBrokenLinesPtr pintf)
  {
    TAutoDriver<IBrokenLines>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BrokenLines));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BrokenLines);
  }

  HRESULT         __fastcall get_BrokenLine(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBrokenLinePtr __fastcall get_BrokenLine(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall Add(Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IBrokenLinePtr __fastcall Add(void);
  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__NewEnum(void);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);



  __property   LPUNKNOWN       _NewEnum = {read = get__NewEnum};
  __property   long            Count = {read = get_Count};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBrokenLinesDispT<IBrokenLines> IBrokenLinesDisp;

// *********************************************************************//
// SmartIntf: TCOMIBrokenLine
// Interface: IBrokenLine
// *********************************************************************//
template <class T /* IBrokenLine */ >
class TCOMIBrokenLineT : public TComInterface<IBrokenLine>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBrokenLineT() {}
  TCOMIBrokenLineT(IBrokenLine *intf, bool addRef = false) : TComInterface<IBrokenLine>(intf, addRef) {}
  TCOMIBrokenLineT(const TCOMIBrokenLineT& src) : TComInterface<IBrokenLine>(src) {}
  TCOMIBrokenLineT& operator=(const TCOMIBrokenLineT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall set_JutValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_JutValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_JutValue(void);
  HRESULT         __fastcall set_AutoJutValue(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoJutValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoJutValue(void);
  HRESULT         __fastcall set_BreaksCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_BreaksCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BreaksCount(void);
  HRESULT         __fastcall set_BreakAmplitude(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakAmplitude(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakAmplitude(void);
  HRESULT         __fastcall set_AutoBreakAmplitude(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoBreakAmplitude(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoBreakAmplitude(void);
  HRESULT         __fastcall set_BreakDisplacement(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakDisplacement(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakDisplacement(void);
  HRESULT         __fastcall set_Type1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Type1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Type1(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   double          JutValue = {read = get_JutValue, write = set_JutValue};
  __property   TOLEBOOL        AutoJutValue = {read = get_AutoJutValue, write = set_AutoJutValue};
  __property   long            BreaksCount = {read = get_BreaksCount, write = set_BreaksCount};
  __property   double          BreakAmplitude = {read = get_BreakAmplitude, write = set_BreakAmplitude};
  __property   TOLEBOOL        AutoBreakAmplitude = {read = get_AutoBreakAmplitude, write = set_AutoBreakAmplitude};
  __property   double          BreakDisplacement = {read = get_BreakDisplacement, write = set_BreakDisplacement};
  __property   TOLEBOOL        Type1 = {read = get_Type1, write = set_Type1};
};
typedef TCOMIBrokenLineT<IBrokenLine> TCOMIBrokenLine;

// *********************************************************************//
// DispIntf:  IBrokenLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2482EB44-5625-4FB9-A46B-781426B02510}
// *********************************************************************//
template<class T>
class IBrokenLineDispT : public TAutoDriver<IBrokenLine>
{
public:
  IBrokenLineDispT(){}

  IBrokenLineDispT(IBrokenLine *pintf)
  {
    TAutoDriver<IBrokenLine>::Bind(pintf, false);
  }

  IBrokenLineDispT(IBrokenLinePtr pintf)
  {
    TAutoDriver<IBrokenLine>::Bind(pintf, true);
  }

  IBrokenLineDispT& operator=(IBrokenLine *pintf)
  {
    TAutoDriver<IBrokenLine>::Bind(pintf, false);
    return *this;
  }

  IBrokenLineDispT& operator=(IBrokenLinePtr pintf)
  {
    TAutoDriver<IBrokenLine>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BrokenLine));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BrokenLine);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_Style(long* Result/*[out,retval]*/);
  long            __fastcall get_Style(void);
  HRESULT         __fastcall set_Style(long Result/*[in]*/);
  HRESULT         __fastcall set_JutValue(double PVal/*[in]*/);
  HRESULT         __fastcall get_JutValue(double* PVal/*[out,retval]*/);
  double          __fastcall get_JutValue(void);
  HRESULT         __fastcall set_AutoJutValue(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoJutValue(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoJutValue(void);
  HRESULT         __fastcall set_BreaksCount(long PVal/*[in]*/);
  HRESULT         __fastcall get_BreaksCount(long* PVal/*[out,retval]*/);
  long            __fastcall get_BreaksCount(void);
  HRESULT         __fastcall set_BreakAmplitude(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakAmplitude(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakAmplitude(void);
  HRESULT         __fastcall set_AutoBreakAmplitude(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoBreakAmplitude(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoBreakAmplitude(void);
  HRESULT         __fastcall set_BreakDisplacement(double PVal/*[in]*/);
  HRESULT         __fastcall get_BreakDisplacement(double* PVal/*[out,retval]*/);
  double          __fastcall get_BreakDisplacement(void);
  HRESULT         __fastcall set_Type1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Type1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Type1(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   long            Style = {read = get_Style, write = set_Style};
  __property   double          JutValue = {read = get_JutValue, write = set_JutValue};
  __property   TOLEBOOL        AutoJutValue = {read = get_AutoJutValue, write = set_AutoJutValue};
  __property   long            BreaksCount = {read = get_BreaksCount, write = set_BreaksCount};
  __property   double          BreakAmplitude = {read = get_BreakAmplitude, write = set_BreakAmplitude};
  __property   TOLEBOOL        AutoBreakAmplitude = {read = get_AutoBreakAmplitude, write = set_AutoBreakAmplitude};
  __property   double          BreakDisplacement = {read = get_BreakDisplacement, write = set_BreakDisplacement};
  __property   TOLEBOOL        Type1 = {read = get_Type1, write = set_Type1};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBrokenLineDispT<IBrokenLine> IBrokenLineDisp;

// *********************************************************************//
// SmartIntf: TCOMIBreakAngleDimension
// Interface: IBreakAngleDimension
// *********************************************************************//
template <class T /* IBreakAngleDimension */ >
class TCOMIBreakAngleDimensionT : public TComInterface<IBreakAngleDimension>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIBreakAngleDimensionT() {}
  TCOMIBreakAngleDimensionT(IBreakAngleDimension *intf, bool addRef = false) : TComInterface<IBreakAngleDimension>(intf, addRef) {}
  TCOMIBreakAngleDimensionT(const TCOMIBreakAngleDimensionT& src) : TComInterface<IBreakAngleDimension>(src) {}
  TCOMIBreakAngleDimensionT& operator=(const TCOMIBreakAngleDimensionT& src) { Bind(src, true); return *this;}


};
typedef TCOMIBreakAngleDimensionT<IBreakAngleDimension> TCOMIBreakAngleDimension;

// *********************************************************************//
// DispIntf:  IBreakAngleDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6ED408A-C2A8-47DD-8EC3-011A7AD60335}
// *********************************************************************//
template<class T>
class IBreakAngleDimensionDispT : public TAutoDriver<IBreakAngleDimension>
{
public:
  IBreakAngleDimensionDispT(){}

  IBreakAngleDimensionDispT(IBreakAngleDimension *pintf)
  {
    TAutoDriver<IBreakAngleDimension>::Bind(pintf, false);
  }

  IBreakAngleDimensionDispT(IBreakAngleDimensionPtr pintf)
  {
    TAutoDriver<IBreakAngleDimension>::Bind(pintf, true);
  }

  IBreakAngleDimensionDispT& operator=(IBreakAngleDimension *pintf)
  {
    TAutoDriver<IBreakAngleDimension>::Bind(pintf, false);
    return *this;
  }

  IBreakAngleDimensionDispT& operator=(IBreakAngleDimensionPtr pintf)
  {
    TAutoDriver<IBreakAngleDimension>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_BreakAngleDimension));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_BreakAngleDimension);
  }

  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall get_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject1(void);
  HRESULT         __fastcall set_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseObject2(void);
  HRESULT         __fastcall set_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/);
  HRESULT         __fastcall get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/);
  ksAngleDimTypeEnum __fastcall get_DimensionType(void);
  HRESULT         __fastcall set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfX(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfX(void);
  HRESULT         __fastcall set_ShelfX(double PVal/*[in]*/);
  HRESULT         __fastcall get_ShelfY(double* PVal/*[out,retval]*/);
  double          __fastcall get_ShelfY(void);
  HRESULT         __fastcall set_ShelfY(double PVal/*[in]*/);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);


  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject1 = {read = get_BaseObject1, write = set_BaseObject1};
  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseObject2 = {read = get_BaseObject2, write = set_BaseObject2};
  __property   ksAngleDimTypeEnum DimensionType = {read = get_DimensionType, write = set_DimensionType};
  __property   double          ShelfX = {read = get_ShelfX, write = set_ShelfX};
  __property   double          ShelfY = {read = get_ShelfY, write = set_ShelfY};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IBreakAngleDimensionDispT<IBreakAngleDimension> IBreakAngleDimensionDisp;

typedef TComInterface<IBranchs>  TCOMIBranchs;

// *********************************************************************//
// DispIntf:  IBranchs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C8A55AB3-D6DD-49B8-95F0-716475855C10}
// *********************************************************************//
template<class T>
class IBranchsDispT : public TAutoDriver<IBranchs>
{
public:
  IBranchsDispT(){}

  IBranchsDispT(IBranchs *pintf)
  {
    TAutoDriver<IBranchs>::Bind(pintf, false);
  }

  IBranchsDispT(IBranchsPtr pintf)
  {
    TAutoDriver<IBranchs>::Bind(pintf, true);
  }

  IBranchsDispT& operator=(IBranchs *pintf)
  {
    TAutoDriver<IBranchs>::Bind(pintf, false);
    return *this;
  }

  IBranchsDispT& operator=(IBranchsPtr pintf)
  {
    TAutoDriver<IBranchs>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_X0(double* Result/*[out,retval]*/);
  double          __fastcall get_X0(void);
  HRESULT         __fastcall set_X0(double Result/*[in]*/);
  HRESULT         __fastcall get_Y0(double* Result/*[out,retval]*/);
  double          __fastcall get_Y0(void);
  HRESULT         __fastcall set_Y0(double Result/*[in]*/);
  HRESULT         __fastcall get_BranchCount(long* Result/*[out,retval]*/);
  long            __fastcall get_BranchCount(void);
  HRESULT         __fastcall set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_BranchPoints(long Index/*[in]*/);
  HRESULT         __fastcall get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/);
  long            __fastcall get_BranchPointsCount(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchX(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchX(long Index/*[in]*/);
  HRESULT         __fastcall set_BranchY(long Index/*[in]*/, double PVal/*[in]*/);
  HRESULT         __fastcall get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/);
  double          __fastcall get_BranchY(long Index/*[in]*/);
  HRESULT         __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/);
  HRESULT         __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/
                                              , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/);
  HRESULT         __fastcall DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteBranch(long Index/*[in]*/);

  __property   double          X0 = {read = get_X0, write = set_X0};
  __property   double          Y0 = {read = get_Y0, write = set_Y0};
  __property   long            BranchCount = {read = get_BranchCount};
};
typedef IBranchsDispT<IBranchs> IBranchsDisp;

typedef TComInterface<ILeader>  TCOMILeader;

// *********************************************************************//
// DispIntf:  ILeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A7419920-06B8-4F34-AC1E-9D48E0ED9DCB}
// *********************************************************************//
template<class T>
class ILeaderDispT : public TAutoDriver<ILeader>
{
public:
  ILeaderDispT(){}

  ILeaderDispT(ILeader *pintf)
  {
    TAutoDriver<ILeader>::Bind(pintf, false);
  }

  ILeaderDispT(ILeaderPtr pintf)
  {
    TAutoDriver<ILeader>::Bind(pintf, true);
  }

  ILeaderDispT& operator=(ILeader *pintf)
  {
    TAutoDriver<ILeader>::Bind(pintf, false);
    return *this;
  }

  ILeaderDispT& operator=(ILeaderPtr pintf)
  {
    TAutoDriver<ILeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_SignType(ksLeaderSignEnum* Result/*[out,retval]*/);
  ksLeaderSignEnum __fastcall get_SignType(void);
  HRESULT         __fastcall set_SignType(ksLeaderSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_Arround(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Arround(void);
  HRESULT         __fastcall set_Arround(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_TextOnShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnShelf(void);
  HRESULT         __fastcall get_TextUnderShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderShelf(void);
  HRESULT         __fastcall get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnBranch(void);
  HRESULT         __fastcall get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderBranch(void);
  HRESULT         __fastcall get_TextAfterShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextAfterShelf(void);
  HRESULT         __fastcall set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_BranchBegin(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_BranchBegin(long Index/*[in]*/);
  HRESULT         __fastcall get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ParallelBranch(void);
  HRESULT         __fastcall set_ParallelBranch(TOLEBOOL PVal/*[in]*/);

  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   ksLeaderSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   TOLEBOOL        Arround = {read = get_Arround, write = set_Arround};
  __property   Kompasltapi7_tlb::ITextPtr TextOnShelf = {read = get_TextOnShelf};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderShelf = {read = get_TextUnderShelf};
  __property   Kompasltapi7_tlb::ITextPtr TextOnBranch = {read = get_TextOnBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderBranch = {read = get_TextUnderBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextAfterShelf = {read = get_TextAfterShelf};
  __property   TOLEBOOL        ParallelBranch = {read = get_ParallelBranch, write = set_ParallelBranch};
};
typedef ILeaderDispT<ILeader> ILeaderDisp;

typedef TComInterface<IMarkLeader>  TCOMIMarkLeader;

// *********************************************************************//
// DispIntf:  IMarkLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8A5D2A56-ECB6-4151-B1AC-F8548CD668CF}
// *********************************************************************//
template<class T>
class IMarkLeaderDispT : public TAutoDriver<IMarkLeader>
{
public:
  IMarkLeaderDispT(){}

  IMarkLeaderDispT(IMarkLeader *pintf)
  {
    TAutoDriver<IMarkLeader>::Bind(pintf, false);
  }

  IMarkLeaderDispT(IMarkLeaderPtr pintf)
  {
    TAutoDriver<IMarkLeader>::Bind(pintf, true);
  }

  IMarkLeaderDispT& operator=(IMarkLeader *pintf)
  {
    TAutoDriver<IMarkLeader>::Bind(pintf, false);
    return *this;
  }

  IMarkLeaderDispT& operator=(IMarkLeaderPtr pintf)
  {
    TAutoDriver<IMarkLeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnBranch(void);
  HRESULT         __fastcall get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderBranch(void);
  HRESULT         __fastcall get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Designation(void);

  __property   Kompasltapi7_tlb::ITextPtr TextOnBranch = {read = get_TextOnBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderBranch = {read = get_TextUnderBranch};
  __property   Kompasltapi7_tlb::ITextPtr Designation = {read = get_Designation};
};
typedef IMarkLeaderDispT<IMarkLeader> IMarkLeaderDisp;

typedef TComInterface<IPositionLeader>  TCOMIPositionLeader;

// *********************************************************************//
// DispIntf:  IPositionLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A8227628-4B9C-42C8-AE58-B3716A7EC1AF}
// *********************************************************************//
template<class T>
class IPositionLeaderDispT : public TAutoDriver<IPositionLeader>
{
public:
  IPositionLeaderDispT(){}

  IPositionLeaderDispT(IPositionLeader *pintf)
  {
    TAutoDriver<IPositionLeader>::Bind(pintf, false);
  }

  IPositionLeaderDispT(IPositionLeaderPtr pintf)
  {
    TAutoDriver<IPositionLeader>::Bind(pintf, true);
  }

  IPositionLeaderDispT& operator=(IPositionLeader *pintf)
  {
    TAutoDriver<IPositionLeader>::Bind(pintf, false);
    return *this;
  }

  IPositionLeaderDispT& operator=(IPositionLeaderPtr pintf)
  {
    TAutoDriver<IPositionLeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/);
  ksShelfDirectionEnum __fastcall get_ShelfDirection(void);
  HRESULT         __fastcall set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/);
  HRESULT         __fastcall get_ShelfVisible(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ShelfVisible(void);
  HRESULT         __fastcall set_ShelfVisible(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_TextDirection(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TextDirection(void);
  HRESULT         __fastcall set_TextDirection(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Form(ksPositionLederFormEnum* Result/*[out,retval]*/);
  ksPositionLederFormEnum __fastcall get_Form(void);
  HRESULT         __fastcall set_Form(ksPositionLederFormEnum Result/*[in]*/);
  HRESULT         __fastcall get_Positions(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Positions(void);
  HRESULT         __fastcall get_UnderPositionText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_UnderPositionText(void);
  HRESULT         __fastcall get_Horizontally(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Horizontally(void);
  HRESULT         __fastcall set_Horizontally(TOLEBOOL Result/*[in]*/);

  __property   ksShelfDirectionEnum ShelfDirection = {read = get_ShelfDirection, write = set_ShelfDirection};
  __property   TOLEBOOL        ShelfVisible = {read = get_ShelfVisible, write = set_ShelfVisible};
  __property   TOLEBOOL        TextDirection = {read = get_TextDirection, write = set_TextDirection};
  __property   ksPositionLederFormEnum Form = {read = get_Form, write = set_Form};
  __property   Kompasltapi7_tlb::ITextPtr Positions = {read = get_Positions};
  __property   Kompasltapi7_tlb::ITextPtr UnderPositionText = {read = get_UnderPositionText};
  __property   TOLEBOOL        Horizontally = {read = get_Horizontally, write = set_Horizontally};
};
typedef IPositionLeaderDispT<IPositionLeader> IPositionLeaderDisp;

typedef TComInterface<IChangeLeader>  TCOMIChangeLeader;

// *********************************************************************//
// DispIntf:  IChangeLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CCFBE87D-1A3C-4C8B-ABE3-1C2319694314}
// *********************************************************************//
template<class T>
class IChangeLeaderDispT : public TAutoDriver<IChangeLeader>
{
public:
  IChangeLeaderDispT(){}

  IChangeLeaderDispT(IChangeLeader *pintf)
  {
    TAutoDriver<IChangeLeader>::Bind(pintf, false);
  }

  IChangeLeaderDispT(IChangeLeaderPtr pintf)
  {
    TAutoDriver<IChangeLeader>::Bind(pintf, true);
  }

  IChangeLeaderDispT& operator=(IChangeLeader *pintf)
  {
    TAutoDriver<IChangeLeader>::Bind(pintf, false);
    return *this;
  }

  IChangeLeaderDispT& operator=(IChangeLeaderPtr pintf)
  {
    TAutoDriver<IChangeLeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_SignType(ksChangeLeaderSignEnum* Result/*[out,retval]*/);
  ksChangeLeaderSignEnum __fastcall get_SignType(void);
  HRESULT         __fastcall set_SignType(ksChangeLeaderSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_SignHeight(double* Result/*[out,retval]*/);
  double          __fastcall get_SignHeight(void);
  HRESULT         __fastcall set_SignHeight(double Result/*[in]*/);
  HRESULT         __fastcall get_LeaderLength(double* Result/*[out,retval]*/);
  double          __fastcall get_LeaderLength(void);
  HRESULT         __fastcall set_LeaderLength(double Result/*[in]*/);
  HRESULT         __fastcall get_FullLeaderLength(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_FullLeaderLength(void);
  HRESULT         __fastcall set_FullLeaderLength(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Designation(void);

  __property   ksChangeLeaderSignEnum SignType = {read = get_SignType, write = set_SignType};
  __property   double          SignHeight = {read = get_SignHeight, write = set_SignHeight};
  __property   double          LeaderLength = {read = get_LeaderLength, write = set_LeaderLength};
  __property   TOLEBOOL        FullLeaderLength = {read = get_FullLeaderLength, write = set_FullLeaderLength};
  __property   Kompasltapi7_tlb::ITextPtr Designation = {read = get_Designation};
};
typedef IChangeLeaderDispT<IChangeLeader> IChangeLeaderDisp;

typedef TComInterface<IBrandLeader>  TCOMIBrandLeader;

// *********************************************************************//
// DispIntf:  IBrandLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EEF8366B-7C8D-448B-9944-BE63E82C1543}
// *********************************************************************//
template<class T>
class IBrandLeaderDispT : public TAutoDriver<IBrandLeader>
{
public:
  IBrandLeaderDispT(){}

  IBrandLeaderDispT(IBrandLeader *pintf)
  {
    TAutoDriver<IBrandLeader>::Bind(pintf, false);
  }

  IBrandLeaderDispT(IBrandLeaderPtr pintf)
  {
    TAutoDriver<IBrandLeader>::Bind(pintf, true);
  }

  IBrandLeaderDispT& operator=(IBrandLeader *pintf)
  {
    TAutoDriver<IBrandLeader>::Bind(pintf, false);
    return *this;
  }

  IBrandLeaderDispT& operator=(IBrandLeaderPtr pintf)
  {
    TAutoDriver<IBrandLeader>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextOnBranch(void);
  HRESULT         __fastcall get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_TextUnderBranch(void);
  HRESULT         __fastcall get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextPtr __fastcall get_Designation(void);
  HRESULT         __fastcall get_Direction(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL Result/*[in]*/);

  __property   Kompasltapi7_tlb::ITextPtr TextOnBranch = {read = get_TextOnBranch};
  __property   Kompasltapi7_tlb::ITextPtr TextUnderBranch = {read = get_TextUnderBranch};
  __property   Kompasltapi7_tlb::ITextPtr Designation = {read = get_Designation};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
};
typedef IBrandLeaderDispT<IBrandLeader> IBrandLeaderDisp;

typedef TComInterface<IToleranceParam>  TCOMIToleranceParam;

// *********************************************************************//
// DispIntf:  IToleranceParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {46E2F216-6BCE-4863-9DDC-CC08DC0016F7}
// *********************************************************************//
template<class T>
class IToleranceParamDispT : public TAutoDriver<IToleranceParam>
{
public:
  IToleranceParamDispT(){}

  IToleranceParamDispT(IToleranceParam *pintf)
  {
    TAutoDriver<IToleranceParam>::Bind(pintf, false);
  }

  IToleranceParamDispT(IToleranceParamPtr pintf)
  {
    TAutoDriver<IToleranceParam>::Bind(pintf, true);
  }

  IToleranceParamDispT& operator=(IToleranceParam *pintf)
  {
    TAutoDriver<IToleranceParam>::Bind(pintf, false);
    return *this;
  }

  IToleranceParamDispT& operator=(IToleranceParamPtr pintf)
  {
    TAutoDriver<IToleranceParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_BasePointPos(ksTablePointEnum* Result/*[out,retval]*/);
  ksTablePointEnum __fastcall get_BasePointPos(void);
  HRESULT         __fastcall set_BasePointPos(ksTablePointEnum Result/*[in]*/);
  HRESULT         __fastcall get_Vertical(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Vertical(void);
  HRESULT         __fastcall set_Vertical(TOLEBOOL Result/*[in]*/);
  HRESULT         __fastcall get_Table(Kompasltapi7_tlb::ITablePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITablePtr __fastcall get_Table(void);
  HRESULT         __fastcall get_Sign(long* Result/*[out,retval]*/);
  long            __fastcall get_Sign(void);
  HRESULT         __fastcall set_Sign(long Result/*[in]*/);
  HRESULT         __fastcall get_PrefixSign(ksTolerancePrefixSignEnum* Result/*[out,retval]*/);
  ksTolerancePrefixSignEnum __fastcall get_PrefixSign(void);
  HRESULT         __fastcall set_PrefixSign(ksTolerancePrefixSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_Value(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Value(void);
  HRESULT         __fastcall set_Value(BSTR PVal/*[in]*/);
  HRESULT         __fastcall get_SuffixSign(ksToleranceSuffixSignEnum* Result/*[out,retval]*/);
  ksToleranceSuffixSignEnum __fastcall get_SuffixSign(void);
  HRESULT         __fastcall set_SuffixSign(ksToleranceSuffixSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_BaseValue1(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_BaseValue1(void);
  HRESULT         __fastcall get_BaseSign1(ksToleranceSuffixSignEnum* Result/*[out,retval]*/);
  ksToleranceSuffixSignEnum __fastcall get_BaseSign1(void);
  HRESULT         __fastcall set_BaseSign1(ksToleranceSuffixSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_BaseValue2(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::ITextLinePtr __fastcall get_BaseValue2(void);
  HRESULT         __fastcall get_BaseSign2(ksToleranceSuffixSignEnum* Result/*[out,retval]*/);
  ksToleranceSuffixSignEnum __fastcall get_BaseSign2(void);
  HRESULT         __fastcall set_BaseSign2(ksToleranceSuffixSignEnum Result/*[in]*/);

  __property   ksTablePointEnum BasePointPos = {read = get_BasePointPos, write = set_BasePointPos};
  __property   TOLEBOOL        Vertical = {read = get_Vertical, write = set_Vertical};
  __property   Kompasltapi7_tlb::ITablePtr Table = {read = get_Table};
  __property   long            Sign = {read = get_Sign, write = set_Sign};
  __property   ksTolerancePrefixSignEnum PrefixSign = {read = get_PrefixSign, write = set_PrefixSign};
  __property   BSTR            Value = {read = get_Value, write = set_Value};
  __property   ksToleranceSuffixSignEnum SuffixSign = {read = get_SuffixSign, write = set_SuffixSign};
  __property   Kompasltapi7_tlb::ITextLinePtr BaseValue1 = {read = get_BaseValue1};
  __property   ksToleranceSuffixSignEnum BaseSign1 = {read = get_BaseSign1, write = set_BaseSign1};
  __property   Kompasltapi7_tlb::ITextLinePtr BaseValue2 = {read = get_BaseValue2};
  __property   ksToleranceSuffixSignEnum BaseSign2 = {read = get_BaseSign2, write = set_BaseSign2};
};
typedef IToleranceParamDispT<IToleranceParam> IToleranceParamDisp;

// *********************************************************************//
// SmartIntf: TCOMIContourSegment
// Interface: IContourSegment
// *********************************************************************//
template <class T /* IContourSegment */ >
class TCOMIContourSegmentT : public TComInterface<IContourSegment>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIContourSegmentT() {}
  TCOMIContourSegmentT(IContourSegment *intf, bool addRef = false) : TComInterface<IContourSegment>(intf, addRef) {}
  TCOMIContourSegmentT(const TCOMIContourSegmentT& src) : TComInterface<IContourSegment>(src) {}
  TCOMIContourSegmentT& operator=(const TCOMIContourSegmentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/);
  ksContourSegmentEnum __fastcall get_SegmentType(void);
  HRESULT         __fastcall get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall get_Curve2D(void);

  __property   ksContourSegmentEnum SegmentType = {read = get_SegmentType};
  __property   Kompasltapi7_tlb::ICurve2DPtr Curve2D = {read = get_Curve2D};
};
typedef TCOMIContourSegmentT<IContourSegment> TCOMIContourSegment;

// *********************************************************************//
// DispIntf:  IContourSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AA485B32-FF45-4035-BFC4-AEE54E638344}
// *********************************************************************//
template<class T>
class IContourSegmentDispT : public TAutoDriver<IContourSegment>
{
public:
  IContourSegmentDispT(){}

  IContourSegmentDispT(IContourSegment *pintf)
  {
    TAutoDriver<IContourSegment>::Bind(pintf, false);
  }

  IContourSegmentDispT(IContourSegmentPtr pintf)
  {
    TAutoDriver<IContourSegment>::Bind(pintf, true);
  }

  IContourSegmentDispT& operator=(IContourSegment *pintf)
  {
    TAutoDriver<IContourSegment>::Bind(pintf, false);
    return *this;
  }

  IContourSegmentDispT& operator=(IContourSegmentPtr pintf)
  {
    TAutoDriver<IContourSegment>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ContourSegment));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ContourSegment);
  }

  HRESULT         __fastcall get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/);
  ksContourSegmentEnum __fastcall get_SegmentType(void);
  HRESULT         __fastcall get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall get_Curve2D(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   ksContourSegmentEnum SegmentType = {read = get_SegmentType};
  __property   Kompasltapi7_tlb::ICurve2DPtr Curve2D = {read = get_Curve2D};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IContourSegmentDispT<IContourSegment> IContourSegmentDisp;

// *********************************************************************//
// SmartIntf: TCOMIContourLineSegment
// Interface: IContourLineSegment
// *********************************************************************//
template <class T /* IContourLineSegment */ >
class TCOMIContourLineSegmentT : public TComInterface<IContourLineSegment>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIContourLineSegmentT() {}
  TCOMIContourLineSegmentT(IContourLineSegment *intf, bool addRef = false) : TComInterface<IContourLineSegment>(intf, addRef) {}
  TCOMIContourLineSegmentT(const TCOMIContourLineSegmentT& src) : TComInterface<IContourLineSegment>(src) {}
  TCOMIContourLineSegmentT& operator=(const TCOMIContourLineSegmentT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
};
typedef TCOMIContourLineSegmentT<IContourLineSegment> TCOMIContourLineSegment;

// *********************************************************************//
// DispIntf:  IContourLineSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FB2432F1-8AE7-4D43-AFF2-A3A3BE226CFA}
// *********************************************************************//
template<class T>
class IContourLineSegmentDispT : public TAutoDriver<IContourLineSegment>
{
public:
  IContourLineSegmentDispT(){}

  IContourLineSegmentDispT(IContourLineSegment *pintf)
  {
    TAutoDriver<IContourLineSegment>::Bind(pintf, false);
  }

  IContourLineSegmentDispT(IContourLineSegmentPtr pintf)
  {
    TAutoDriver<IContourLineSegment>::Bind(pintf, true);
  }

  IContourLineSegmentDispT& operator=(IContourLineSegment *pintf)
  {
    TAutoDriver<IContourLineSegment>::Bind(pintf, false);
    return *this;
  }

  IContourLineSegmentDispT& operator=(IContourLineSegmentPtr pintf)
  {
    TAutoDriver<IContourLineSegment>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ContourLineSegment));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ContourLineSegment);
  }

  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_Length(double PVal/*[in]*/);
  HRESULT         __fastcall get_Length(double* PVal/*[out,retval]*/);
  double          __fastcall get_Length(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/);
  ksContourSegmentEnum __fastcall get_SegmentType(void);
  HRESULT         __fastcall get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall get_Curve2D(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          Length = {read = get_Length, write = set_Length};
  __property   double          Angle = {read = get_Angle, write = set_Angle};

  __property   ksContourSegmentEnum SegmentType = {read = get_SegmentType};
  __property   Kompasltapi7_tlb::ICurve2DPtr Curve2D = {read = get_Curve2D};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IContourLineSegmentDispT<IContourLineSegment> IContourLineSegmentDisp;

// *********************************************************************//
// SmartIntf: TCOMIContourArc
// Interface: IContourArc
// *********************************************************************//
template <class T /* IContourArc */ >
class TCOMIContourArcT : public TComInterface<IContourArc>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIContourArcT() {}
  TCOMIContourArcT(IContourArc *intf, bool addRef = false) : TComInterface<IContourArc>(intf, addRef) {}
  TCOMIContourArcT(const TCOMIContourArcT& src) : TComInterface<IContourArc>(src) {}
  TCOMIContourArcT& operator=(const TCOMIContourArcT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);

  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
};
typedef TCOMIContourArcT<IContourArc> TCOMIContourArc;

// *********************************************************************//
// DispIntf:  IContourArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {ED4A6D97-4543-4842-B2C3-973FB0E90E87}
// *********************************************************************//
template<class T>
class IContourArcDispT : public TAutoDriver<IContourArc>
{
public:
  IContourArcDispT(){}

  IContourArcDispT(IContourArc *pintf)
  {
    TAutoDriver<IContourArc>::Bind(pintf, false);
  }

  IContourArcDispT(IContourArcPtr pintf)
  {
    TAutoDriver<IContourArc>::Bind(pintf, true);
  }

  IContourArcDispT& operator=(IContourArc *pintf)
  {
    TAutoDriver<IContourArc>::Bind(pintf, false);
    return *this;
  }

  IContourArcDispT& operator=(IContourArcPtr pintf)
  {
    TAutoDriver<IContourArc>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ContourArc));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ContourArc);
  }

  HRESULT         __fastcall set_Radius(double PVal/*[in]*/);
  HRESULT         __fastcall get_Radius(double* PVal/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Direction(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_Direction(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Direction(void);
  HRESULT         __fastcall set_Xc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Xc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double PVal/*[in]*/);
  HRESULT         __fastcall get_Yc(double* PVal/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_X1(double PVal/*[in]*/);
  HRESULT         __fastcall get_X1(double* PVal/*[out,retval]*/);
  double          __fastcall get_X1(void);
  HRESULT         __fastcall set_Y1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y1(void);
  HRESULT         __fastcall set_X2(double PVal/*[in]*/);
  HRESULT         __fastcall get_X2(double* PVal/*[out,retval]*/);
  double          __fastcall get_X2(void);
  HRESULT         __fastcall set_Y2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y2(void);
  HRESULT         __fastcall set_X3(double PVal/*[in]*/);
  HRESULT         __fastcall get_X3(double* PVal/*[out,retval]*/);
  double          __fastcall get_X3(void);
  HRESULT         __fastcall set_Y3(double PVal/*[in]*/);
  HRESULT         __fastcall get_Y3(double* PVal/*[out,retval]*/);
  double          __fastcall get_Y3(void);
  HRESULT         __fastcall set_Angle1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/);
  ksContourSegmentEnum __fastcall get_SegmentType(void);
  HRESULT         __fastcall get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::ICurve2DPtr __fastcall get_Curve2D(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   TOLEBOOL        Direction = {read = get_Direction, write = set_Direction};
  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          X1 = {read = get_X1, write = set_X1};
  __property   double          Y1 = {read = get_Y1, write = set_Y1};
  __property   double          X2 = {read = get_X2, write = set_X2};
  __property   double          Y2 = {read = get_Y2, write = set_Y2};
  __property   double          X3 = {read = get_X3, write = set_X3};
  __property   double          Y3 = {read = get_Y3, write = set_Y3};
  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};

  __property   ksContourSegmentEnum SegmentType = {read = get_SegmentType};
  __property   Kompasltapi7_tlb::ICurve2DPtr Curve2D = {read = get_Curve2D};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IContourArcDispT<IContourArc> IContourArcDisp;

typedef TComInterface<IInsertionFragment>  TCOMIInsertionFragment;

// *********************************************************************//
// DispIntf:  IInsertionFragment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3D99B82C-CD88-406D-A946-2D8C8E94EE73}
// *********************************************************************//
template<class T>
class IInsertionFragmentDispT : public TAutoDriver<IInsertionFragment>
{
public:
  IInsertionFragmentDispT(){}

  IInsertionFragmentDispT(IInsertionFragment *pintf)
  {
    TAutoDriver<IInsertionFragment>::Bind(pintf, false);
  }

  IInsertionFragmentDispT(IInsertionFragmentPtr pintf)
  {
    TAutoDriver<IInsertionFragment>::Bind(pintf, true);
  }

  IInsertionFragmentDispT& operator=(IInsertionFragment *pintf)
  {
    TAutoDriver<IInsertionFragment>::Bind(pintf, false);
    return *this;
  }

  IInsertionFragmentDispT& operator=(IInsertionFragmentPtr pintf)
  {
    TAutoDriver<IInsertionFragment>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_MultiLayer(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_MultiLayer(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_MultiLayer(void);
  HRESULT         __fastcall get_Variables(TVariant* Result/*[out,retval]*/);
  TVariant        __fastcall get_Variables(void);
  HRESULT         __fastcall get_Variable(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariable7Ptr __fastcall get_Variable(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_VariablesCount(long* Result/*[out,retval]*/);
  long            __fastcall get_VariablesCount(void);
  HRESULT         __fastcall get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IVariableTablePtr __fastcall get_VariableTable(void);
  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall get_InsertionType(ksInsertionTypeEnum* PVal/*[out,retval]*/);
  ksInsertionTypeEnum __fastcall get_InsertionType(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(void);
  HRESULT         __fastcall set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   TOLEBOOL        MultiLayer = {read = get_MultiLayer, write = set_MultiLayer};
  __property   long            VariablesCount = {read = get_VariablesCount};
  __property   Kompasltapi7_tlb::IVariableTablePtr VariableTable = {read = get_VariableTable};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            FileName = {read = get_FileName};
  __property   ksInsertionTypeEnum InsertionType = {read = get_InsertionType};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   Kompasltapi7_tlb::IInsertionDefinitionPtr InsertionDefinition = {read = get_InsertionDefinition, write = set_InsertionDefinition};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertionFragmentDispT<IInsertionFragment> IInsertionFragmentDisp;

// *********************************************************************//
// SmartIntf: TCOMIInsertionView
// Interface: IInsertionView
// *********************************************************************//
template <class T /* IInsertionView */ >
class TCOMIInsertionViewT : public TComInterface<IInsertionView>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIInsertionViewT() {}
  TCOMIInsertionViewT(IInsertionView *intf, bool addRef = false) : TComInterface<IInsertionView>(intf, addRef) {}
  TCOMIInsertionViewT(const TCOMIInsertionViewT& src) : TComInterface<IInsertionView>(src) {}
  TCOMIInsertionViewT& operator=(const TCOMIInsertionViewT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_ViewNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_ViewNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_ViewNumber(void);
  HRESULT         __fastcall get_ViewName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ViewName(void);
  HRESULT         __fastcall set_ThinLines(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ThinLines(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ThinLines(void);
  HRESULT         __fastcall set_OwnerDocumentParams(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_OwnerDocumentParams(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_OwnerDocumentParams(void);

  __property   long            ViewNumber = {read = get_ViewNumber, write = set_ViewNumber};
  __property   BSTR            ViewName = {read = get_ViewName};
  __property   TOLEBOOL        ThinLines = {read = get_ThinLines, write = set_ThinLines};
  __property   TOLEBOOL        OwnerDocumentParams = {read = get_OwnerDocumentParams, write = set_OwnerDocumentParams};
};
typedef TCOMIInsertionViewT<IInsertionView> TCOMIInsertionView;

// *********************************************************************//
// DispIntf:  IInsertionView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0C8FC5A9-57A8-4971-8E6C-68933269D42E}
// *********************************************************************//
template<class T>
class IInsertionViewDispT : public TAutoDriver<IInsertionView>
{
public:
  IInsertionViewDispT(){}

  IInsertionViewDispT(IInsertionView *pintf)
  {
    TAutoDriver<IInsertionView>::Bind(pintf, false);
  }

  IInsertionViewDispT(IInsertionViewPtr pintf)
  {
    TAutoDriver<IInsertionView>::Bind(pintf, true);
  }

  IInsertionViewDispT& operator=(IInsertionView *pintf)
  {
    TAutoDriver<IInsertionView>::Bind(pintf, false);
    return *this;
  }

  IInsertionViewDispT& operator=(IInsertionViewPtr pintf)
  {
    TAutoDriver<IInsertionView>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_InsertionView));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_InsertionView);
  }

  HRESULT         __fastcall set_ViewNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_ViewNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_ViewNumber(void);
  HRESULT         __fastcall get_ViewName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_ViewName(void);
  HRESULT         __fastcall set_ThinLines(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ThinLines(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ThinLines(void);
  HRESULT         __fastcall set_OwnerDocumentParams(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_OwnerDocumentParams(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_OwnerDocumentParams(void);
  HRESULT         __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                          double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/);
  HRESULT         __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                          TOLEBOOL MirrorSymmetry/*[in]*/);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_FileName(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_FileName(void);
  HRESULT         __fastcall get_InsertionType(ksInsertionTypeEnum* PVal/*[out,retval]*/);
  ksInsertionTypeEnum __fastcall get_InsertionType(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(void);
  HRESULT         __fastcall set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/);
  HRESULT         __fastcall get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/);
  DrawingObjectTypeEnum __fastcall get_DrawingObjectType(void);
  HRESULT         __fastcall get_LayerNumber(long* PVal/*[out,retval]*/);
  long            __fastcall get_LayerNumber(void);
  HRESULT         __fastcall set_LayerNumber(long PVal/*[in]*/);
  HRESULT         __fastcall get_Temp(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Temp(void);
  HRESULT         __fastcall get_Valid(TOLEBOOL* Type/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Valid(void);
  HRESULT         __fastcall _Update(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall _Update(void);
  HRESULT         __fastcall Delete(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/);
  ksDrawingObjectParamTypeEnum __fastcall get_DrawingObjectParamType(void);
  HRESULT         __fastcall set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            ViewNumber = {read = get_ViewNumber, write = set_ViewNumber};
  __property   BSTR            ViewName = {read = get_ViewName};
  __property   TOLEBOOL        ThinLines = {read = get_ThinLines, write = set_ThinLines};
  __property   TOLEBOOL        OwnerDocumentParams = {read = get_OwnerDocumentParams, write = set_OwnerDocumentParams};

  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   BSTR            FileName = {read = get_FileName};
  __property   ksInsertionTypeEnum InsertionType = {read = get_InsertionType};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   Kompasltapi7_tlb::IInsertionDefinitionPtr InsertionDefinition = {read = get_InsertionDefinition, write = set_InsertionDefinition};

  __property   DrawingObjectTypeEnum DrawingObjectType = {read = get_DrawingObjectType};
  __property   long            LayerNumber = {read = get_LayerNumber, write = set_LayerNumber};
  __property   TOLEBOOL        Temp = {read = get_Temp};
  __property   TOLEBOOL        Valid = {read = get_Valid};
  __property   ksDrawingObjectParamTypeEnum DrawingObjectParamType = {read = get_DrawingObjectParamType, write = set_DrawingObjectParamType};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IInsertionViewDispT<IInsertionView> IInsertionViewDisp;

typedef TComInterface<IInsertionsManager>  TCOMIInsertionsManager;

// *********************************************************************//
// DispIntf:  IInsertionsManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B43FA13A-9488-422C-A9F3-D279FDA296BB}
// *********************************************************************//
template<class T>
class IInsertionsManagerDispT : public TAutoDriver<IInsertionsManager>
{
public:
  IInsertionsManagerDispT(){}

  IInsertionsManagerDispT(IInsertionsManager *pintf)
  {
    TAutoDriver<IInsertionsManager>::Bind(pintf, false);
  }

  IInsertionsManagerDispT(IInsertionsManagerPtr pintf)
  {
    TAutoDriver<IInsertionsManager>::Bind(pintf, true);
  }

  IInsertionsManagerDispT& operator=(IInsertionsManager *pintf)
  {
    TAutoDriver<IInsertionsManager>::Bind(pintf, false);
    return *this;
  }

  IInsertionsManagerDispT& operator=(IInsertionsManagerPtr pintf)
  {
    TAutoDriver<IInsertionsManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_InsertionDefinitions(ksInsertionTypeEnum Type/*[in]*/
                                                      , TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_InsertionDefinitions(ksInsertionTypeEnum Type/*[in]*/);
  HRESULT         __fastcall get_InsertionDefinition(ksInsertionTypeEnum Type/*[in]*/
                                                     , TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall get_InsertionDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                                                               TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall AddDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                           BSTR Name/*[in]*/, BSTR FileName/*[in]*/, 
                                           Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall AddDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                                                     BSTR Name/*[in]*/, 
                                                                     BSTR FileName/*[in]*/);
  HRESULT         __fastcall get_DefinitionsCount(ksInsertionTypeEnum Type/*[in]*/
                                                  , long* PVal/*[out,retval]*/);
  long            __fastcall get_DefinitionsCount(ksInsertionTypeEnum Type/*[in]*/);

};
typedef IInsertionsManagerDispT<IInsertionsManager> IInsertionsManagerDisp;

typedef TComInterface<IAxisLineParam>  TCOMIAxisLineParam;

// *********************************************************************//
// DispIntf:  IAxisLineParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {620CC8EB-A5C0-4978-BD98-38344DC6ADC0}
// *********************************************************************//
template<class T>
class IAxisLineParamDispT : public TAutoDriver<IAxisLineParam>
{
public:
  IAxisLineParamDispT(){}

  IAxisLineParamDispT(IAxisLineParam *pintf)
  {
    TAutoDriver<IAxisLineParam>::Bind(pintf, false);
  }

  IAxisLineParamDispT(IAxisLineParamPtr pintf)
  {
    TAutoDriver<IAxisLineParam>::Bind(pintf, true);
  }

  IAxisLineParamDispT& operator=(IAxisLineParam *pintf)
  {
    TAutoDriver<IAxisLineParam>::Bind(pintf, false);
    return *this;
  }

  IAxisLineParamDispT& operator=(IAxisLineParamPtr pintf)
  {
    TAutoDriver<IAxisLineParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_JutLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_JutLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_JutLength(void);
  HRESULT         __fastcall set_DottedLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_DottedLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_DottedLength(void);
  HRESULT         __fastcall set_Interval(double PVal/*[in]*/);
  HRESULT         __fastcall get_Interval(double* PVal/*[out,retval]*/);
  double          __fastcall get_Interval(void);
  HRESULT         __fastcall set_AutoDetectedDash(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoDetectedDash(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoDetectedDash(void);
  HRESULT         __fastcall set_DashMaxLength(double PVal/*[in]*/);
  HRESULT         __fastcall get_DashMaxLength(double* PVal/*[out,retval]*/);
  double          __fastcall get_DashMaxLength(void);
  HRESULT         __fastcall set_JutLengthModify(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_JutLengthModify(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_JutLengthModify(void);
  HRESULT         __fastcall set_DottedLengthModify(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DottedLengthModify(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DottedLengthModify(void);
  HRESULT         __fastcall set_IntervalModify(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_IntervalModify(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_IntervalModify(void);
  HRESULT         __fastcall set_AutoDetectedDashModify(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AutoDetectedDashModify(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AutoDetectedDashModify(void);
  HRESULT         __fastcall set_DashMaxLengthModify(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DashMaxLengthModify(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DashMaxLengthModify(void);

  __property   double          JutLength = {read = get_JutLength, write = set_JutLength};
  __property   double          DottedLength = {read = get_DottedLength, write = set_DottedLength};
  __property   double          Interval = {read = get_Interval, write = set_Interval};
  __property   TOLEBOOL        AutoDetectedDash = {read = get_AutoDetectedDash, write = set_AutoDetectedDash};
  __property   double          DashMaxLength = {read = get_DashMaxLength, write = set_DashMaxLength};
  __property   TOLEBOOL        JutLengthModify = {read = get_JutLengthModify, write = set_JutLengthModify};
  __property   TOLEBOOL        DottedLengthModify = {read = get_DottedLengthModify, write = set_DottedLengthModify};
  __property   TOLEBOOL        IntervalModify = {read = get_IntervalModify, write = set_IntervalModify};
  __property   TOLEBOOL        AutoDetectedDashModify = {read = get_AutoDetectedDashModify, write = set_AutoDetectedDashModify};
  __property   TOLEBOOL        DashMaxLengthModify = {read = get_DashMaxLengthModify, write = set_DashMaxLengthModify};
};
typedef IAxisLineParamDispT<IAxisLineParam> IAxisLineParamDisp;

typedef TComInterface<IBoundariesObject>  TCOMIBoundariesObject;

// *********************************************************************//
// DispIntf:  IBoundariesObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7198C93A-7655-4347-9954-BA9AA28D0608}
// *********************************************************************//
template<class T>
class IBoundariesObjectDispT : public TAutoDriver<IBoundariesObject>
{
public:
  IBoundariesObjectDispT(){}

  IBoundariesObjectDispT(IBoundariesObject *pintf)
  {
    TAutoDriver<IBoundariesObject>::Bind(pintf, false);
  }

  IBoundariesObjectDispT(IBoundariesObjectPtr pintf)
  {
    TAutoDriver<IBoundariesObject>::Bind(pintf, true);
  }

  IBoundariesObjectDispT& operator=(IBoundariesObject *pintf)
  {
    TAutoDriver<IBoundariesObject>::Bind(pintf, false);
    return *this;
  }

  IBoundariesObjectDispT& operator=(IBoundariesObjectPtr pintf)
  {
    TAutoDriver<IBoundariesObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Boundaries(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Boundaries(void);
  HRESULT         __fastcall AddBoundaries(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteSource, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall AddBoundaries(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteSource);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);

};
typedef IBoundariesObjectDispT<IBoundariesObject> IBoundariesObjectDisp;

typedef TComInterface<IAnnotativeObject>  TCOMIAnnotativeObject;

// *********************************************************************//
// DispIntf:  IAnnotativeObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0DBD7BCD-F78E-4BDA-BCAD-3004C60B6D06}
// *********************************************************************//
template<class T>
class IAnnotativeObjectDispT : public TAutoDriver<IAnnotativeObject>
{
public:
  IAnnotativeObjectDispT(){}

  IAnnotativeObjectDispT(IAnnotativeObject *pintf)
  {
    TAutoDriver<IAnnotativeObject>::Bind(pintf, false);
  }

  IAnnotativeObjectDispT(IAnnotativeObjectPtr pintf)
  {
    TAutoDriver<IAnnotativeObject>::Bind(pintf, true);
  }

  IAnnotativeObjectDispT& operator=(IAnnotativeObject *pintf)
  {
    TAutoDriver<IAnnotativeObject>::Bind(pintf, false);
    return *this;
  }

  IAnnotativeObjectDispT& operator=(IAnnotativeObjectPtr pintf)
  {
    TAutoDriver<IAnnotativeObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Sign1(ksAnnotativeTerminatorSignEnum* Result/*[out,retval]*/);
  ksAnnotativeTerminatorSignEnum __fastcall get_Sign1(void);
  HRESULT         __fastcall set_Sign1(ksAnnotativeTerminatorSignEnum Result/*[in]*/);
  HRESULT         __fastcall get_Sign2(ksAnnotativeTerminatorSignEnum* Result/*[out,retval]*/);
  ksAnnotativeTerminatorSignEnum __fastcall get_Sign2(void);
  HRESULT         __fastcall set_Sign2(ksAnnotativeTerminatorSignEnum Result/*[in]*/);

  __property   ksAnnotativeTerminatorSignEnum Sign1 = {read = get_Sign1, write = set_Sign1};
  __property   ksAnnotativeTerminatorSignEnum Sign2 = {read = get_Sign2, write = set_Sign2};
};
typedef IAnnotativeObjectDispT<IAnnotativeObject> IAnnotativeObjectDisp;

typedef TComInterface<IAnnotativeContainer>  TCOMIAnnotativeContainer;

// *********************************************************************//
// DispIntf:  IAnnotativeContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AE6C238C-4398-4057-9D28-D275954D9506}
// *********************************************************************//
template<class T>
class IAnnotativeContainerDispT : public TAutoDriver<IAnnotativeContainer>
{
public:
  IAnnotativeContainerDispT(){}

  IAnnotativeContainerDispT(IAnnotativeContainer *pintf)
  {
    TAutoDriver<IAnnotativeContainer>::Bind(pintf, false);
  }

  IAnnotativeContainerDispT(IAnnotativeContainerPtr pintf)
  {
    TAutoDriver<IAnnotativeContainer>::Bind(pintf, true);
  }

  IAnnotativeContainerDispT& operator=(IAnnotativeContainer *pintf)
  {
    TAutoDriver<IAnnotativeContainer>::Bind(pintf, false);
    return *this;
  }

  IAnnotativeContainerDispT& operator=(IAnnotativeContainerPtr pintf)
  {
    TAutoDriver<IAnnotativeContainer>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall get_Item(TVariantInParam Index/*[in]*/);
  HRESULT         __fastcall get_Count(long* Result/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall Add(DrawingObjectTypeEnum Type, 
                                 Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall Add(DrawingObjectTypeEnum Type);
  HRESULT         __fastcall CreateByGeomObject(Kompasltapi7_tlb::IDrawingObjectPtr Obj/*[in]*/, 
                                                Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/);
  Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall CreateByGeomObject(Kompasltapi7_tlb::IDrawingObjectPtr Obj/*[in]*/);

  __property   long            Count = {read = get_Count};
};
typedef IAnnotativeContainerDispT<IAnnotativeContainer> IAnnotativeContainerDisp;

// *********************************************************************//
// SmartIntf: TCOMICurveCopyObjectParam
// Interface: ICurveCopyObjectParam
// *********************************************************************//
template <class T /* ICurveCopyObjectParam */ >
class TCOMICurveCopyObjectParamT : public TComInterface<ICurveCopyObjectParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICurveCopyObjectParamT() {}
  TCOMICurveCopyObjectParamT(ICurveCopyObjectParam *intf, bool addRef = false) : TComInterface<ICurveCopyObjectParam>(intf, addRef) {}
  TCOMICurveCopyObjectParamT(const TCOMICurveCopyObjectParamT& src) : TComInterface<ICurveCopyObjectParam>(src) {}
  TCOMICurveCopyObjectParamT& operator=(const TCOMICurveCopyObjectParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/);
  HRESULT         __fastcall get_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr* Curve/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseCurve(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Count(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall set_TurnToNormal(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_TurnToNormal(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TurnToNormal(void);
  HRESULT         __fastcall set_PositiveDirection(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PositiveDirection(void);
  HRESULT         __fastcall set_StepFactor(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseCurve = {read = get_BaseCurve, write = set_BaseCurve};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   long            Count = {read = get_Count, write = set_Count};
  __property   TOLEBOOL        TurnToNormal = {read = get_TurnToNormal, write = set_TurnToNormal};
  __property   TOLEBOOL        PositiveDirection = {read = get_PositiveDirection, write = set_PositiveDirection};
  __property   TOLEBOOL        StepFactor = {read = get_StepFactor, write = set_StepFactor};
};
typedef TCOMICurveCopyObjectParamT<ICurveCopyObjectParam> TCOMICurveCopyObjectParam;

// *********************************************************************//
// DispIntf:  ICurveCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {12B52A99-FF5F-4C08-9E5E-DF7C7AD834A8}
// *********************************************************************//
template<class T>
class ICurveCopyObjectParamDispT : public TAutoDriver<ICurveCopyObjectParam>
{
public:
  ICurveCopyObjectParamDispT(){}

  ICurveCopyObjectParamDispT(ICurveCopyObjectParam *pintf)
  {
    TAutoDriver<ICurveCopyObjectParam>::Bind(pintf, false);
  }

  ICurveCopyObjectParamDispT(ICurveCopyObjectParamPtr pintf)
  {
    TAutoDriver<ICurveCopyObjectParam>::Bind(pintf, true);
  }

  ICurveCopyObjectParamDispT& operator=(ICurveCopyObjectParam *pintf)
  {
    TAutoDriver<ICurveCopyObjectParam>::Bind(pintf, false);
    return *this;
  }

  ICurveCopyObjectParamDispT& operator=(ICurveCopyObjectParamPtr pintf)
  {
    TAutoDriver<ICurveCopyObjectParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CurveCopyObjectParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CurveCopyObjectParam);
  }

  HRESULT         __fastcall set_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/);
  HRESULT         __fastcall get_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr* Curve/*[out,retval]*/);
  Kompasltapi7_tlb::IDrawingObjectPtr __fastcall get_BaseCurve(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Count(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall set_TurnToNormal(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_TurnToNormal(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TurnToNormal(void);
  HRESULT         __fastcall set_PositiveDirection(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PositiveDirection(void);
  HRESULT         __fastcall set_StepFactor(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor(void);
  HRESULT         __fastcall set_XOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_XOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_XOld(void);
  HRESULT         __fastcall set_YOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_YOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_YOld(void);
  HRESULT         __fastcall set_XNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_XNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_XNew(void);
  HRESULT         __fastcall set_YNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_YNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_YNew(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_AttributeCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttributeCopy(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SpecificationObjectCopy(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   Kompasltapi7_tlb::IDrawingObjectPtr BaseCurve = {read = get_BaseCurve, write = set_BaseCurve};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   long            Count = {read = get_Count, write = set_Count};
  __property   TOLEBOOL        TurnToNormal = {read = get_TurnToNormal, write = set_TurnToNormal};
  __property   TOLEBOOL        PositiveDirection = {read = get_PositiveDirection, write = set_PositiveDirection};
  __property   TOLEBOOL        StepFactor = {read = get_StepFactor, write = set_StepFactor};

  __property   double          XOld = {read = get_XOld, write = set_XOld};
  __property   double          YOld = {read = get_YOld, write = set_YOld};
  __property   double          XNew = {read = get_XNew, write = set_XNew};
  __property   double          YNew = {read = get_YNew, write = set_YNew};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        AttributeCopy = {read = get_AttributeCopy, write = set_AttributeCopy};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   TOLEBOOL        SpecificationObjectCopy = {read = get_SpecificationObjectCopy, write = set_SpecificationObjectCopy};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICurveCopyObjectParamDispT<ICurveCopyObjectParam> ICurveCopyObjectParamDisp;

// *********************************************************************//
// SmartIntf: TCOMICircleCopyObjectParam
// Interface: ICircleCopyObjectParam
// *********************************************************************//
template <class T /* ICircleCopyObjectParam */ >
class TCOMICircleCopyObjectParamT : public TComInterface<ICircleCopyObjectParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICircleCopyObjectParamT() {}
  TCOMICircleCopyObjectParamT(ICircleCopyObjectParam *intf, bool addRef = false) : TComInterface<ICircleCopyObjectParam>(intf, addRef) {}
  TCOMICircleCopyObjectParamT(const TCOMICircleCopyObjectParamT& src) : TComInterface<ICircleCopyObjectParam>(src) {}
  TCOMICircleCopyObjectParamT& operator=(const TCOMICircleCopyObjectParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Xc(double Val/*[in]*/);
  HRESULT         __fastcall get_Xc(double* Val/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double Val/*[in]*/);
  HRESULT         __fastcall get_Yc(double* Val/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Count(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall set_ByStep(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ByStep(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ByStep(void);
  HRESULT         __fastcall set_PositiveDirection(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PositiveDirection(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   long            Count = {read = get_Count, write = set_Count};
  __property   TOLEBOOL        ByStep = {read = get_ByStep, write = set_ByStep};
  __property   TOLEBOOL        PositiveDirection = {read = get_PositiveDirection, write = set_PositiveDirection};
};
typedef TCOMICircleCopyObjectParamT<ICircleCopyObjectParam> TCOMICircleCopyObjectParam;

// *********************************************************************//
// DispIntf:  ICircleCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {138D1202-CA46-4DB3-BF2B-85D260E44355}
// *********************************************************************//
template<class T>
class ICircleCopyObjectParamDispT : public TAutoDriver<ICircleCopyObjectParam>
{
public:
  ICircleCopyObjectParamDispT(){}

  ICircleCopyObjectParamDispT(ICircleCopyObjectParam *pintf)
  {
    TAutoDriver<ICircleCopyObjectParam>::Bind(pintf, false);
  }

  ICircleCopyObjectParamDispT(ICircleCopyObjectParamPtr pintf)
  {
    TAutoDriver<ICircleCopyObjectParam>::Bind(pintf, true);
  }

  ICircleCopyObjectParamDispT& operator=(ICircleCopyObjectParam *pintf)
  {
    TAutoDriver<ICircleCopyObjectParam>::Bind(pintf, false);
    return *this;
  }

  ICircleCopyObjectParamDispT& operator=(ICircleCopyObjectParamPtr pintf)
  {
    TAutoDriver<ICircleCopyObjectParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CircleCopyObjectParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CircleCopyObjectParam);
  }

  HRESULT         __fastcall set_Xc(double Val/*[in]*/);
  HRESULT         __fastcall get_Xc(double* Val/*[out,retval]*/);
  double          __fastcall get_Xc(void);
  HRESULT         __fastcall set_Yc(double Val/*[in]*/);
  HRESULT         __fastcall get_Yc(double* Val/*[out,retval]*/);
  double          __fastcall get_Yc(void);
  HRESULT         __fastcall set_Step(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step(void);
  HRESULT         __fastcall set_Count(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall set_ByStep(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_ByStep(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_ByStep(void);
  HRESULT         __fastcall set_PositiveDirection(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_PositiveDirection(void);
  HRESULT         __fastcall set_XOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_XOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_XOld(void);
  HRESULT         __fastcall set_YOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_YOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_YOld(void);
  HRESULT         __fastcall set_XNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_XNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_XNew(void);
  HRESULT         __fastcall set_YNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_YNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_YNew(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_AttributeCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttributeCopy(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SpecificationObjectCopy(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Xc = {read = get_Xc, write = set_Xc};
  __property   double          Yc = {read = get_Yc, write = set_Yc};
  __property   double          Step = {read = get_Step, write = set_Step};
  __property   long            Count = {read = get_Count, write = set_Count};
  __property   TOLEBOOL        ByStep = {read = get_ByStep, write = set_ByStep};
  __property   TOLEBOOL        PositiveDirection = {read = get_PositiveDirection, write = set_PositiveDirection};

  __property   double          XOld = {read = get_XOld, write = set_XOld};
  __property   double          YOld = {read = get_YOld, write = set_YOld};
  __property   double          XNew = {read = get_XNew, write = set_XNew};
  __property   double          YNew = {read = get_YNew, write = set_YNew};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        AttributeCopy = {read = get_AttributeCopy, write = set_AttributeCopy};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   TOLEBOOL        SpecificationObjectCopy = {read = get_SpecificationObjectCopy, write = set_SpecificationObjectCopy};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICircleCopyObjectParamDispT<ICircleCopyObjectParam> ICircleCopyObjectParamDisp;

// *********************************************************************//
// SmartIntf: TCOMIExternalTessellationObject
// Interface: IExternalTessellationObject
// *********************************************************************//
template <class T /* IExternalTessellationObject */ >
class TCOMIExternalTessellationObjectT : public TComInterface<IExternalTessellationObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIExternalTessellationObjectT() {}
  TCOMIExternalTessellationObjectT(IExternalTessellationObject *intf, bool addRef = false) : TComInterface<IExternalTessellationObject>(intf, addRef) {}
  TCOMIExternalTessellationObjectT(const TCOMIExternalTessellationObjectT& src) : TComInterface<IExternalTessellationObject>(src) {}
  TCOMIExternalTessellationObjectT& operator=(const TCOMIExternalTessellationObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ObjectID(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectID(void);
  HRESULT         __fastcall SetTessellation(TVariantInParam Points/*[in]*/, 
                                             TVariantInParam Indexes/*[in]*/, 
                                             TVariantInParam Normals/*[in]*/, 
                                             TVariantInParam Colors/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTessellation(TVariantInParam Points/*[in]*/, 
                                             TVariantInParam Indexes/*[in]*/, 
                                             TVariantInParam Normals/*[in]*/, 
                                             TVariantInParam Colors/*[in]*/);
  HRESULT         __fastcall set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                         TOLEBOOL Param2/*[in,def,opt]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                              double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                              double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                              double Emission/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                              double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                              double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                              double Emission/*[in]*/);
  HRESULT         __fastcall SetEdges(TVariantInParam Points/*[in]*/, TVariantInParam Edges/*[in]*/, 
                                      TVariantInParam Colors/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetEdges(TVariantInParam Points/*[in]*/, TVariantInParam Edges/*[in]*/, 
                                      TVariantInParam Colors/*[in]*/);
  HRESULT         __fastcall SetPlaces(TVariantInParam Places/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlaces(TVariantInParam Places/*[in]*/);
  HRESULT         __fastcall SetEdgeStyles(TVariantInParam Styles/*[in]*/, 
                                           TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetEdgeStyles(TVariantInParam Styles/*[in]*/);
  HRESULT         __fastcall SetEdgeWidths(TVariantInParam Widths/*[in]*/, 
                                           TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetEdgeWidths(TVariantInParam Widths/*[in]*/);
  HRESULT         __fastcall SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                             TOLEBOOL RGBA/*[in]*/, TOLEBOOL WrapMode/*[in]*/, 
                                             TOLEBOOL FiltMode/*[in]*/, 
                                             TVariantInParam ImageData/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                             TOLEBOOL RGBA/*[in]*/, TOLEBOOL WrapMode/*[in]*/, 
                                             TOLEBOOL FiltMode/*[in]*/, 
                                             TVariantInParam ImageData/*[in]*/);
  HRESULT         __fastcall SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                              TVariantInParam ImagePoints/*[in]*/, 
                                              TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                              TVariantInParam ImagePoints/*[in]*/);
  HRESULT         __fastcall SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                          ksFacetCullingMode CullingMode/*[in]*/, 
                                          TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                          ksFacetCullingMode CullingMode/*[in]*/);

  __property   long            ObjectID = {read = get_ObjectID};
};
typedef TCOMIExternalTessellationObjectT<IExternalTessellationObject> TCOMIExternalTessellationObject;

// *********************************************************************//
// DispIntf:  IExternalTessellationObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D5CDE37-7833-4359-B25A-FE7011EA771A}
// *********************************************************************//
template<class T>
class IExternalTessellationObjectDispT : public TAutoDriver<IExternalTessellationObject>
{
public:
  IExternalTessellationObjectDispT(){}

  IExternalTessellationObjectDispT(IExternalTessellationObject *pintf)
  {
    TAutoDriver<IExternalTessellationObject>::Bind(pintf, false);
  }

  IExternalTessellationObjectDispT(IExternalTessellationObjectPtr pintf)
  {
    TAutoDriver<IExternalTessellationObject>::Bind(pintf, true);
  }

  IExternalTessellationObjectDispT& operator=(IExternalTessellationObject *pintf)
  {
    TAutoDriver<IExternalTessellationObject>::Bind(pintf, false);
    return *this;
  }

  IExternalTessellationObjectDispT& operator=(IExternalTessellationObjectPtr pintf)
  {
    TAutoDriver<IExternalTessellationObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ExternalTessellationObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ExternalTessellationObject);
  }

  HRESULT         __fastcall get_ObjectID(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectID(void);
  HRESULT         __fastcall SetTessellation(TVariantInParam Points/*[in]*/, 
                                             TVariantInParam Indexes/*[in]*/, 
                                             TVariantInParam Normals/*[in]*/, 
                                             TVariantInParam Colors/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTessellation(TVariantInParam Points/*[in]*/, 
                                             TVariantInParam Indexes/*[in]*/, 
                                             TVariantInParam Normals/*[in]*/, 
                                             TVariantInParam Colors/*[in]*/);
  HRESULT         __fastcall set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                         TOLEBOOL Param2/*[in,def,opt]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                              double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                              double Shininess/*[in]*/, double Transparency/*[in]*/
                                              , double Emission/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                              double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                              double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                              double Emission/*[in]*/);
  HRESULT         __fastcall SetEdges(TVariantInParam Points/*[in]*/, TVariantInParam Edges/*[in]*/
                                      , TVariantInParam Colors/*[in]*/, 
                                      TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetEdges(TVariantInParam Points/*[in]*/, TVariantInParam Edges/*[in]*/, 
                                      TVariantInParam Colors/*[in]*/);
  HRESULT         __fastcall SetPlaces(TVariantInParam Places/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetPlaces(TVariantInParam Places/*[in]*/);
  HRESULT         __fastcall SetEdgeStyles(TVariantInParam Styles/*[in]*/, 
                                           TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetEdgeStyles(TVariantInParam Styles/*[in]*/);
  HRESULT         __fastcall SetEdgeWidths(TVariantInParam Widths/*[in]*/, 
                                           TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetEdgeWidths(TVariantInParam Widths/*[in]*/);
  HRESULT         __fastcall SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                             TOLEBOOL RGBA/*[in]*/, TOLEBOOL WrapMode/*[in]*/, 
                                             TOLEBOOL FiltMode/*[in]*/, 
                                             TVariantInParam ImageData/*[in]*/, 
                                             TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                             TOLEBOOL RGBA/*[in]*/, TOLEBOOL WrapMode/*[in]*/, 
                                             TOLEBOOL FiltMode/*[in]*/, 
                                             TVariantInParam ImageData/*[in]*/);
  HRESULT         __fastcall SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                              TVariantInParam ImagePoints/*[in]*/, 
                                              TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                              TVariantInParam ImagePoints/*[in]*/);
  HRESULT         __fastcall SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                          ksFacetCullingMode CullingMode/*[in]*/
                                          , TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                          ksFacetCullingMode CullingMode/*[in]*/);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            ObjectID = {read = get_ObjectID};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IExternalTessellationObjectDispT<IExternalTessellationObject> IExternalTessellationObjectDisp;

typedef TComInterface<IExternalTessellationManager>  TCOMIExternalTessellationManager;

// *********************************************************************//
// DispIntf:  IExternalTessellationManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DC21F3D3-FFA6-4274-A976-79F34729B866}
// *********************************************************************//
template<class T>
class IExternalTessellationManagerDispT : public TAutoDriver<IExternalTessellationManager>
{
public:
  IExternalTessellationManagerDispT(){}

  IExternalTessellationManagerDispT(IExternalTessellationManager *pintf)
  {
    TAutoDriver<IExternalTessellationManager>::Bind(pintf, false);
  }

  IExternalTessellationManagerDispT(IExternalTessellationManagerPtr pintf)
  {
    TAutoDriver<IExternalTessellationManager>::Bind(pintf, true);
  }

  IExternalTessellationManagerDispT& operator=(IExternalTessellationManager *pintf)
  {
    TAutoDriver<IExternalTessellationManager>::Bind(pintf, false);
    return *this;
  }

  IExternalTessellationManagerDispT& operator=(IExternalTessellationManagerPtr pintf)
  {
    TAutoDriver<IExternalTessellationManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall Add(Kompasltapi7_tlb::IExternalTessellationObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IExternalTessellationObjectPtr __fastcall Add(void);
  HRESULT         __fastcall get_TessellationObject(long Id/*[in]*/, 
                                                    Kompasltapi7_tlb::IExternalTessellationObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IExternalTessellationObjectPtr __fastcall get_TessellationObject(long Id/*[in]*/);
  HRESULT         __fastcall set_ObjectsVisible(TVariantInParam Ids/*[in]*/, 
                                                Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                                TOLEBOOL Param3/*[in]*/);
  HRESULT         __fastcall DeleteObjects(TVariantInParam Id/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall DeleteObjects(TVariantInParam Id/*[in]*/);
  HRESULT         __fastcall Clear(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Clear(void);
  HRESULT         __fastcall AddGDIObject(Kompasltapi7_tlb::IExternalGDIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IExternalGDIObjectPtr __fastcall AddGDIObject(void);
  HRESULT         __fastcall get_GDIObject(long Id/*[in]*/, 
                                           Kompasltapi7_tlb::IExternalGDIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IExternalGDIObjectPtr __fastcall get_GDIObject(long Id/*[in]*/);

};
typedef IExternalTessellationManagerDispT<IExternalTessellationManager> IExternalTessellationManagerDisp;

// *********************************************************************//
// SmartIntf: TCOMIExternalGDIObject
// Interface: IExternalGDIObject
// *********************************************************************//
template <class T /* IExternalGDIObject */ >
class TCOMIExternalGDIObjectT : public TComInterface<IExternalGDIObject>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIExternalGDIObjectT() {}
  TCOMIExternalGDIObjectT(IExternalGDIObject *intf, bool addRef = false) : TComInterface<IExternalGDIObject>(intf, addRef) {}
  TCOMIExternalGDIObjectT(const TCOMIExternalGDIObjectT& src) : TComInterface<IExternalGDIObject>(src) {}
  TCOMIExternalGDIObjectT& operator=(const TCOMIExternalGDIObjectT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_ObjectID(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectID(void);
  HRESULT         __fastcall SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                                      TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                                      TOLEBOOL Is3DPoints/*[in]*/, TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                                      TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                                      TOLEBOOL Is3DPoints/*[in]*/);
  HRESULT         __fastcall set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                         TOLEBOOL Param2/*[in,def,opt]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);

  __property   long            ObjectID = {read = get_ObjectID};
};
typedef TCOMIExternalGDIObjectT<IExternalGDIObject> TCOMIExternalGDIObject;

// *********************************************************************//
// DispIntf:  IExternalGDIObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C234E81D-4232-41FD-980D-8E7E6EA7B733}
// *********************************************************************//
template<class T>
class IExternalGDIObjectDispT : public TAutoDriver<IExternalGDIObject>
{
public:
  IExternalGDIObjectDispT(){}

  IExternalGDIObjectDispT(IExternalGDIObject *pintf)
  {
    TAutoDriver<IExternalGDIObject>::Bind(pintf, false);
  }

  IExternalGDIObjectDispT(IExternalGDIObjectPtr pintf)
  {
    TAutoDriver<IExternalGDIObject>::Bind(pintf, true);
  }

  IExternalGDIObjectDispT& operator=(IExternalGDIObject *pintf)
  {
    TAutoDriver<IExternalGDIObject>::Bind(pintf, false);
    return *this;
  }

  IExternalGDIObjectDispT& operator=(IExternalGDIObjectPtr pintf)
  {
    TAutoDriver<IExternalGDIObject>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ExternalGDIObject));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ExternalGDIObject);
  }

  HRESULT         __fastcall get_ObjectID(long* PVal/*[out,retval]*/);
  long            __fastcall get_ObjectID(void);
  HRESULT         __fastcall SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/
                                      , TVariantInParam Colors/*[in]*/, 
                                      TVariantInParam Fonts/*[in]*/, TOLEBOOL Is3DPoints/*[in]*/, 
                                      TOLEBOOL* Res/*[out,retval]*/);
  TOLEBOOL        __fastcall SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                                      TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                                      TOLEBOOL Is3DPoints/*[in]*/);
  HRESULT         __fastcall set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                         TOLEBOOL Param2/*[in,def,opt]*/);
  HRESULT         __fastcall Delete(TOLEBOOL* Result/*[out,retval]*/);
  TOLEBOOL        __fastcall Delete(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            ObjectID = {read = get_ObjectID};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IExternalGDIObjectDispT<IExternalGDIObject> IExternalGDIObjectDisp;

typedef TComInterface<IModelCurve3D>  TCOMIModelCurve3D;

// *********************************************************************//
// DispIntf:  IModelCurve3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EB4AB3A9-8E01-4952-9119-F8D09D9572D5}
// *********************************************************************//
template<class T>
class IModelCurve3DDispT : public TAutoDriver<IModelCurve3D>
{
public:
  IModelCurve3DDispT(){}

  IModelCurve3DDispT(IModelCurve3D *pintf)
  {
    TAutoDriver<IModelCurve3D>::Bind(pintf, false);
  }

  IModelCurve3DDispT(IModelCurve3DPtr pintf)
  {
    TAutoDriver<IModelCurve3D>::Bind(pintf, true);
  }

  IModelCurve3DDispT& operator=(IModelCurve3D *pintf)
  {
    TAutoDriver<IModelCurve3D>::Bind(pintf, false);
    return *this;
  }

  IModelCurve3DDispT& operator=(IModelCurve3DPtr pintf)
  {
    TAutoDriver<IModelCurve3D>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_VertexVisible(TOLEBOOL* Value/*[out,retval]*/);
  TOLEBOOL        __fastcall get_VertexVisible(void);
  HRESULT         __fastcall set_VertexVisible(TOLEBOOL Value/*[in]*/);
  HRESULT         __fastcall get_VertexStyle(ksAnnotationSymbolEnum* Style/*[out,retval]*/);
  ksAnnotationSymbolEnum __fastcall get_VertexStyle(void);
  HRESULT         __fastcall set_VertexStyle(ksAnnotationSymbolEnum Style/*[in]*/);
  HRESULT         __fastcall get_EdgesStyle(ksCurveStyleEnum* Style/*[out,retval]*/);
  ksCurveStyleEnum __fastcall get_EdgesStyle(void);
  HRESULT         __fastcall set_EdgesStyle(ksCurveStyleEnum Style/*[in]*/);

  __property   TOLEBOOL        VertexVisible = {read = get_VertexVisible, write = set_VertexVisible};
  __property   ksAnnotationSymbolEnum VertexStyle = {read = get_VertexStyle, write = set_VertexStyle};
  __property   ksCurveStyleEnum EdgesStyle = {read = get_EdgesStyle, write = set_EdgesStyle};
};
typedef IModelCurve3DDispT<IModelCurve3D> IModelCurve3DDisp;

// *********************************************************************//
// SmartIntf: TCOMIPropertyStyleList
// Interface: IPropertyStyleList
// *********************************************************************//
template <class T /* IPropertyStyleList */ >
class TCOMIPropertyStyleListT : public TComInterface<IPropertyStyleList>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIPropertyStyleListT() {}
  TCOMIPropertyStyleListT(IPropertyStyleList *intf, bool addRef = false) : TComInterface<IPropertyStyleList>(intf, addRef) {}
  TCOMIPropertyStyleListT(const TCOMIPropertyStyleListT& src) : TComInterface<IPropertyStyleList>(src) {}
  TCOMIPropertyStyleListT& operator=(const TCOMIPropertyStyleListT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall Add(TVariantInParam Styles/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Add(TVariantInParam Styles/*[in]*/);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall ClearList(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall ClearList(void);
  HRESULT         __fastcall Find(long Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall Find(long Val/*[in]*/);
  HRESULT         __fastcall set_CurrentIndex(long PVal/*[in]*/);
  HRESULT         __fastcall get_CurrentIndex(long* PVal/*[out,retval]*/);
  long            __fastcall get_CurrentIndex(void);
  HRESULT         __fastcall set_AnotherStyleBtnEnable(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AnotherStyleBtnEnable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AnotherStyleBtnEnable(void);

  __property   long            Count = {read = get_Count};
  __property   long            CurrentIndex = {read = get_CurrentIndex, write = set_CurrentIndex};
  __property   TOLEBOOL        AnotherStyleBtnEnable = {read = get_AnotherStyleBtnEnable, write = set_AnotherStyleBtnEnable};
};
typedef TCOMIPropertyStyleListT<IPropertyStyleList> TCOMIPropertyStyleList;

// *********************************************************************//
// DispIntf:  IPropertyStyleList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2431C46-9A35-494B-A958-D9098F82C3FA}
// *********************************************************************//
template<class T>
class IPropertyStyleListDispT : public TAutoDriver<IPropertyStyleList>
{
public:
  IPropertyStyleListDispT(){}

  IPropertyStyleListDispT(IPropertyStyleList *pintf)
  {
    TAutoDriver<IPropertyStyleList>::Bind(pintf, false);
  }

  IPropertyStyleListDispT(IPropertyStyleListPtr pintf)
  {
    TAutoDriver<IPropertyStyleList>::Bind(pintf, true);
  }

  IPropertyStyleListDispT& operator=(IPropertyStyleList *pintf)
  {
    TAutoDriver<IPropertyStyleList>::Bind(pintf, false);
    return *this;
  }

  IPropertyStyleListDispT& operator=(IPropertyStyleListPtr pintf)
  {
    TAutoDriver<IPropertyStyleList>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_PropertyStyleList));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_PropertyStyleList);
  }

  HRESULT         __fastcall Add(TVariantInParam Styles/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall Add(TVariantInParam Styles/*[in]*/);
  HRESULT         __fastcall get_Count(long* Count/*[out,retval]*/);
  long            __fastcall get_Count(void);
  HRESULT         __fastcall ClearList(TOLEBOOL* PRes/*[out,retval]*/);
  TOLEBOOL        __fastcall ClearList(void);
  HRESULT         __fastcall Find(long Val/*[in]*/, long* PVal/*[out,retval]*/);
  long            __fastcall Find(long Val/*[in]*/);
  HRESULT         __fastcall set_CurrentIndex(long PVal/*[in]*/);
  HRESULT         __fastcall get_CurrentIndex(long* PVal/*[out,retval]*/);
  long            __fastcall get_CurrentIndex(void);
  HRESULT         __fastcall set_AnotherStyleBtnEnable(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AnotherStyleBtnEnable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AnotherStyleBtnEnable(void);
  HRESULT         __fastcall set_Visible(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Visible(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Visible(void);
  HRESULT         __fastcall set_Name(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Name(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Name(void);
  HRESULT         __fastcall get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/);
  ControlTypeEnum __fastcall get_ControlType(void);
  HRESULT         __fastcall set_Id(long PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Id(long* PVal/*[out,retval]*/);
  long            __fastcall get_Id(void);
  HRESULT         __fastcall set_Enable(TOLEBOOL PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Enable(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_Enable(void);
  HRESULT         __fastcall set_Value(TVariantInParam PVal/*[in]*/);
  HRESULT         __fastcall get_Value(TVariant* PVal/*[out,retval]*/);
  TVariant        __fastcall get_Value(void);
  HRESULT         __fastcall set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/);
  HRESULT         __fastcall get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/);
  PropertyControlNameVisibility __fastcall get_NameVisibility(void);
  HRESULT         __fastcall set_Hint(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Hint(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Hint(void);
  HRESULT         __fastcall set_Tips(BSTR PVal/*[in,def,opt]*/);
  HRESULT         __fastcall get_Tips(BSTR* PVal/*[out,retval]*/);
  BSTR            __fastcall get_Tips(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   long            Count = {read = get_Count};
  __property   long            CurrentIndex = {read = get_CurrentIndex, write = set_CurrentIndex};
  __property   TOLEBOOL        AnotherStyleBtnEnable = {read = get_AnotherStyleBtnEnable, write = set_AnotherStyleBtnEnable};

  __property   TOLEBOOL        Visible = {read = get_Visible, write = set_Visible};
  __property   BSTR            Name = {read = get_Name, write = set_Name};
  __property   ControlTypeEnum ControlType = {read = get_ControlType};
  __property   long            Id = {read = get_Id, write = set_Id};
  __property   TOLEBOOL        Enable = {read = get_Enable, write = set_Enable};
  __property   PropertyControlNameVisibility NameVisibility = {read = get_NameVisibility, write = set_NameVisibility};
  __property   BSTR            Hint = {read = get_Hint, write = set_Hint};
  __property   BSTR            Tips = {read = get_Tips, write = set_Tips};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IPropertyStyleListDispT<IPropertyStyleList> IPropertyStyleListDisp;

// *********************************************************************//
// SmartIntf: TCOMICircularCopyObjectParam
// Interface: ICircularCopyObjectParam
// *********************************************************************//
template <class T /* ICircularCopyObjectParam */ >
class TCOMICircularCopyObjectParamT : public TComInterface<ICircularCopyObjectParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMICircularCopyObjectParamT() {}
  TCOMICircularCopyObjectParamT(ICircularCopyObjectParam *intf, bool addRef = false) : TComInterface<ICircularCopyObjectParam>(intf, addRef) {}
  TCOMICircularCopyObjectParamT(const TCOMICircularCopyObjectParamT& src) : TComInterface<ICircularCopyObjectParam>(src) {}
  TCOMICircularCopyObjectParamT& operator=(const TCOMICircularCopyObjectParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Radius(double Val/*[in]*/);
  HRESULT         __fastcall get_Radius(double* Val/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Step1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step1(void);
  HRESULT         __fastcall set_StepFactor1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor1(void);
  HRESULT         __fastcall set_Count1(long Val/*[in]*/);
  HRESULT         __fastcall get_Count1(long* Val/*[out,retval]*/);
  long            __fastcall get_Count1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_Step2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step2(void);
  HRESULT         __fastcall set_StepFactor2(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor2(void);
  HRESULT         __fastcall set_Count2(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count2(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count2(void);
  HRESULT         __fastcall set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SaveCentreCopy(void);
  HRESULT         __fastcall set_TurnObject(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_TurnObject(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TurnObject(void);

  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        StepFactor1 = {read = get_StepFactor1, write = set_StepFactor1};
  __property   long            Count1 = {read = get_Count1, write = set_Count1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        StepFactor2 = {read = get_StepFactor2, write = set_StepFactor2};
  __property   long            Count2 = {read = get_Count2, write = set_Count2};
  __property   TOLEBOOL        SaveCentreCopy = {read = get_SaveCentreCopy, write = set_SaveCentreCopy};
  __property   TOLEBOOL        TurnObject = {read = get_TurnObject, write = set_TurnObject};
};
typedef TCOMICircularCopyObjectParamT<ICircularCopyObjectParam> TCOMICircularCopyObjectParam;

// *********************************************************************//
// DispIntf:  ICircularCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A5B8E337-EE84-4EEC-8235-A812FDD6C2DE}
// *********************************************************************//
template<class T>
class ICircularCopyObjectParamDispT : public TAutoDriver<ICircularCopyObjectParam>
{
public:
  ICircularCopyObjectParamDispT(){}

  ICircularCopyObjectParamDispT(ICircularCopyObjectParam *pintf)
  {
    TAutoDriver<ICircularCopyObjectParam>::Bind(pintf, false);
  }

  ICircularCopyObjectParamDispT(ICircularCopyObjectParamPtr pintf)
  {
    TAutoDriver<ICircularCopyObjectParam>::Bind(pintf, true);
  }

  ICircularCopyObjectParamDispT& operator=(ICircularCopyObjectParam *pintf)
  {
    TAutoDriver<ICircularCopyObjectParam>::Bind(pintf, false);
    return *this;
  }

  ICircularCopyObjectParamDispT& operator=(ICircularCopyObjectParamPtr pintf)
  {
    TAutoDriver<ICircularCopyObjectParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_CircularCopyObjectParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_CircularCopyObjectParam);
  }

  HRESULT         __fastcall set_Radius(double Val/*[in]*/);
  HRESULT         __fastcall get_Radius(double* Val/*[out,retval]*/);
  double          __fastcall get_Radius(void);
  HRESULT         __fastcall set_Step1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step1(void);
  HRESULT         __fastcall set_StepFactor1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor1(void);
  HRESULT         __fastcall set_Count1(long Val/*[in]*/);
  HRESULT         __fastcall get_Count1(long* Val/*[out,retval]*/);
  long            __fastcall get_Count1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_Step2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step2(void);
  HRESULT         __fastcall set_StepFactor2(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor2(void);
  HRESULT         __fastcall set_Count2(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count2(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count2(void);
  HRESULT         __fastcall set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SaveCentreCopy(void);
  HRESULT         __fastcall set_TurnObject(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_TurnObject(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_TurnObject(void);
  HRESULT         __fastcall set_XOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_XOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_XOld(void);
  HRESULT         __fastcall set_YOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_YOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_YOld(void);
  HRESULT         __fastcall set_XNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_XNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_XNew(void);
  HRESULT         __fastcall set_YNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_YNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_YNew(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_AttributeCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttributeCopy(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SpecificationObjectCopy(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Radius = {read = get_Radius, write = set_Radius};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        StepFactor1 = {read = get_StepFactor1, write = set_StepFactor1};
  __property   long            Count1 = {read = get_Count1, write = set_Count1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        StepFactor2 = {read = get_StepFactor2, write = set_StepFactor2};
  __property   long            Count2 = {read = get_Count2, write = set_Count2};
  __property   TOLEBOOL        SaveCentreCopy = {read = get_SaveCentreCopy, write = set_SaveCentreCopy};
  __property   TOLEBOOL        TurnObject = {read = get_TurnObject, write = set_TurnObject};

  __property   double          XOld = {read = get_XOld, write = set_XOld};
  __property   double          YOld = {read = get_YOld, write = set_YOld};
  __property   double          XNew = {read = get_XNew, write = set_XNew};
  __property   double          YNew = {read = get_YNew, write = set_YNew};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        AttributeCopy = {read = get_AttributeCopy, write = set_AttributeCopy};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   TOLEBOOL        SpecificationObjectCopy = {read = get_SpecificationObjectCopy, write = set_SpecificationObjectCopy};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef ICircularCopyObjectParamDispT<ICircularCopyObjectParam> ICircularCopyObjectParamDisp;

// *********************************************************************//
// SmartIntf: TCOMIMeshCopyObjectParam
// Interface: IMeshCopyObjectParam
// *********************************************************************//
template <class T /* IMeshCopyObjectParam */ >
class TCOMIMeshCopyObjectParamT : public TComInterface<IMeshCopyObjectParam>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMeshCopyObjectParamT() {}
  TCOMIMeshCopyObjectParamT(IMeshCopyObjectParam *intf, bool addRef = false) : TComInterface<IMeshCopyObjectParam>(intf, addRef) {}
  TCOMIMeshCopyObjectParamT(const TCOMIMeshCopyObjectParamT& src) : TComInterface<IMeshCopyObjectParam>(src) {}
  TCOMIMeshCopyObjectParamT& operator=(const TCOMIMeshCopyObjectParamT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_Angle1(double Val/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* Val/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Step1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step1(void);
  HRESULT         __fastcall set_StepFactor1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor1(void);
  HRESULT         __fastcall set_Count1(long Val/*[in]*/);
  HRESULT         __fastcall get_Count1(long* Val/*[out,retval]*/);
  long            __fastcall get_Count1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_Step2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step2(void);
  HRESULT         __fastcall set_StepFactor2(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor2(void);
  HRESULT         __fastcall set_Count2(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count2(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count2(void);
  HRESULT         __fastcall set_SaveCornersCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SaveCornersCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SaveCornersCopy(void);
  HRESULT         __fastcall set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SaveCentreCopy(void);

  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        StepFactor1 = {read = get_StepFactor1, write = set_StepFactor1};
  __property   long            Count1 = {read = get_Count1, write = set_Count1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        StepFactor2 = {read = get_StepFactor2, write = set_StepFactor2};
  __property   long            Count2 = {read = get_Count2, write = set_Count2};
  __property   TOLEBOOL        SaveCornersCopy = {read = get_SaveCornersCopy, write = set_SaveCornersCopy};
  __property   TOLEBOOL        SaveCentreCopy = {read = get_SaveCentreCopy, write = set_SaveCentreCopy};
};
typedef TCOMIMeshCopyObjectParamT<IMeshCopyObjectParam> TCOMIMeshCopyObjectParam;

// *********************************************************************//
// DispIntf:  IMeshCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {592AB214-A8CF-462E-ACD5-528839113338}
// *********************************************************************//
template<class T>
class IMeshCopyObjectParamDispT : public TAutoDriver<IMeshCopyObjectParam>
{
public:
  IMeshCopyObjectParamDispT(){}

  IMeshCopyObjectParamDispT(IMeshCopyObjectParam *pintf)
  {
    TAutoDriver<IMeshCopyObjectParam>::Bind(pintf, false);
  }

  IMeshCopyObjectParamDispT(IMeshCopyObjectParamPtr pintf)
  {
    TAutoDriver<IMeshCopyObjectParam>::Bind(pintf, true);
  }

  IMeshCopyObjectParamDispT& operator=(IMeshCopyObjectParam *pintf)
  {
    TAutoDriver<IMeshCopyObjectParam>::Bind(pintf, false);
    return *this;
  }

  IMeshCopyObjectParamDispT& operator=(IMeshCopyObjectParamPtr pintf)
  {
    TAutoDriver<IMeshCopyObjectParam>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MeshCopyObjectParam));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MeshCopyObjectParam);
  }

  HRESULT         __fastcall set_Angle1(double Val/*[in]*/);
  HRESULT         __fastcall get_Angle1(double* Val/*[out,retval]*/);
  double          __fastcall get_Angle1(void);
  HRESULT         __fastcall set_Step1(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step1(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step1(void);
  HRESULT         __fastcall set_StepFactor1(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor1(void);
  HRESULT         __fastcall set_Count1(long Val/*[in]*/);
  HRESULT         __fastcall get_Count1(long* Val/*[out,retval]*/);
  long            __fastcall get_Count1(void);
  HRESULT         __fastcall set_Angle2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle2(void);
  HRESULT         __fastcall set_Step2(double PVal/*[in]*/);
  HRESULT         __fastcall get_Step2(double* PVal/*[out,retval]*/);
  double          __fastcall get_Step2(void);
  HRESULT         __fastcall set_StepFactor2(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_StepFactor2(void);
  HRESULT         __fastcall set_Count2(long PVal/*[in]*/);
  HRESULT         __fastcall get_Count2(long* PVal/*[out,retval]*/);
  long            __fastcall get_Count2(void);
  HRESULT         __fastcall set_SaveCornersCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SaveCornersCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SaveCornersCopy(void);
  HRESULT         __fastcall set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SaveCentreCopy(void);
  HRESULT         __fastcall set_XOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_XOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_XOld(void);
  HRESULT         __fastcall set_YOld(double PVal/*[in]*/);
  HRESULT         __fastcall get_YOld(double* PVal/*[out,retval]*/);
  double          __fastcall get_YOld(void);
  HRESULT         __fastcall set_XNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_XNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_XNew(void);
  HRESULT         __fastcall set_YNew(double PVal/*[in]*/);
  HRESULT         __fastcall get_YNew(double* PVal/*[out,retval]*/);
  double          __fastcall get_YNew(void);
  HRESULT         __fastcall set_Scale(double PVal/*[in]*/);
  HRESULT         __fastcall get_Scale(double* PVal/*[out,retval]*/);
  double          __fastcall get_Scale(void);
  HRESULT         __fastcall set_Angle(double PVal/*[in]*/);
  HRESULT         __fastcall get_Angle(double* PVal/*[out,retval]*/);
  double          __fastcall get_Angle(void);
  HRESULT         __fastcall set_AttributeCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_AttributeCopy(void);
  HRESULT         __fastcall set_DimensionLineScale(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_DimensionLineScale(void);
  HRESULT         __fastcall set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/);
  HRESULT         __fastcall get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/);
  TOLEBOOL        __fastcall get_SpecificationObjectCopy(void);
  HRESULT         __fastcall get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall get_Parent(void);
  HRESULT         __fastcall get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/);
  Kompasltapi7_tlb::IApplicationPtr __fastcall get_Application(void);
  HRESULT         __fastcall get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/);
  KompasAPIObjectTypeEnum __fastcall get_Type(void);
  HRESULT         __fastcall get_Reference(long* PVal/*[out,retval]*/);
  long            __fastcall get_Reference(void);

  __property   double          Angle1 = {read = get_Angle1, write = set_Angle1};
  __property   double          Step1 = {read = get_Step1, write = set_Step1};
  __property   TOLEBOOL        StepFactor1 = {read = get_StepFactor1, write = set_StepFactor1};
  __property   long            Count1 = {read = get_Count1, write = set_Count1};
  __property   double          Angle2 = {read = get_Angle2, write = set_Angle2};
  __property   double          Step2 = {read = get_Step2, write = set_Step2};
  __property   TOLEBOOL        StepFactor2 = {read = get_StepFactor2, write = set_StepFactor2};
  __property   long            Count2 = {read = get_Count2, write = set_Count2};
  __property   TOLEBOOL        SaveCornersCopy = {read = get_SaveCornersCopy, write = set_SaveCornersCopy};
  __property   TOLEBOOL        SaveCentreCopy = {read = get_SaveCentreCopy, write = set_SaveCentreCopy};

  __property   double          XOld = {read = get_XOld, write = set_XOld};
  __property   double          YOld = {read = get_YOld, write = set_YOld};
  __property   double          XNew = {read = get_XNew, write = set_XNew};
  __property   double          YNew = {read = get_YNew, write = set_YNew};
  __property   double          Scale = {read = get_Scale, write = set_Scale};
  __property   double          Angle = {read = get_Angle, write = set_Angle};
  __property   TOLEBOOL        AttributeCopy = {read = get_AttributeCopy, write = set_AttributeCopy};
  __property   TOLEBOOL        DimensionLineScale = {read = get_DimensionLineScale, write = set_DimensionLineScale};
  __property   TOLEBOOL        SpecificationObjectCopy = {read = get_SpecificationObjectCopy, write = set_SpecificationObjectCopy};

  __property   Kompasltapi7_tlb::IKompasAPIObjectPtr Parent = {read = get_Parent};
  __property   Kompasltapi7_tlb::IApplicationPtr Application = {read = get_Application};
  __property   KompasAPIObjectTypeEnum Type = {read = get_Type};
  __property   long            Reference = {read = get_Reference};
};
typedef IMeshCopyObjectParamDispT<IMeshCopyObjectParam> IMeshCopyObjectParamDisp;

// *********************************************************************//
// DispIntf:  IKompasAPIObject
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C799A83-C0A4-4312-BEB0-21CBD7FF4C13}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasAPIObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasAPIObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasAPIObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IKompasAPIObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasAPIObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IKompasAPIObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasAPIObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasAPIObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIApplication
// Interface: IApplication
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIApplicationT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_Documents(Kompasltapi7_tlb::IDocumentsPtr* Documents/*[out,retval]*/)
{
  return (*this)->get_Documents(Documents);
}

template <class T> Kompasltapi7_tlb::IDocumentsPtr __fastcall
TCOMIApplicationT<T>::get_Documents(void)
{
  Kompasltapi7_tlb::IDocumentsPtr Documents;
  OLECHECK(this->get_Documents((Kompasltapi7_tlb::IDocumentsPtr*)&Documents));
  return Documents;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::Quit(void)
{
  return (*this)->Quit();
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::CreateProcessParam(Kompasltapi7_tlb::IProcessParamPtr* PProcessParam/*[out,retval]*/)
{
  return (*this)->CreateProcessParam(PProcessParam);
}

template <class T> Kompasltapi7_tlb::IProcessParamPtr __fastcall
TCOMIApplicationT<T>::CreateProcessParam(void)
{
  Kompasltapi7_tlb::IProcessParamPtr PProcessParam;
  OLECHECK(this->CreateProcessParam((Kompasltapi7_tlb::IProcessParamPtr*)&PProcessParam));
  return PProcessParam;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::StopCurrentProcess(TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                         Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in,def,opt]*/)
{
  return (*this)->StopCurrentProcess(PostMessage, PDoc);
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/, 
                                            Kompasltapi7_tlb::IPropertyManagerPtr* PPropertyManager/*[out,retval]*/)
{
  return (*this)->CreatePropertyManager(NewManager, PPropertyManager);
}

template <class T> Kompasltapi7_tlb::IPropertyManagerPtr __fastcall
TCOMIApplicationT<T>::CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IPropertyManagerPtr PPropertyManager;
  OLECHECK(this->CreatePropertyManager(NewManager, (Kompasltapi7_tlb::IPropertyManagerPtr*)&PPropertyManager));
  return PPropertyManager;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::set_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in]*/)
{
  return (*this)->set_ActiveDocument(PDoc);
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr* PDoc/*[out,retval]*/)
{
  return (*this)->get_ActiveDocument(PDoc);
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
TCOMIApplicationT<T>::get_ActiveDocument(void)
{
  Kompasltapi7_tlb::IKompasDocumentPtr PDoc;
  OLECHECK(this->get_ActiveDocument((Kompasltapi7_tlb::IKompasDocumentPtr*)&PDoc));
  return PDoc;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_LibraryManager(Kompasltapi7_tlb::ILibraryManagerPtr* PRes/*[out,retval]*/)
{
  return (*this)->get_LibraryManager(PRes);
}

template <class T> Kompasltapi7_tlb::ILibraryManagerPtr __fastcall
TCOMIApplicationT<T>::get_LibraryManager(void)
{
  Kompasltapi7_tlb::ILibraryManagerPtr PRes;
  OLECHECK(this->get_LibraryManager((Kompasltapi7_tlb::ILibraryManagerPtr*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_KompasError(Kompasltapi7_tlb::IKompasErrorPtr* PRes/*[out,retval]*/)
{
  return (*this)->get_KompasError(PRes);
}

template <class T> Kompasltapi7_tlb::IKompasErrorPtr __fastcall
TCOMIApplicationT<T>::get_KompasError(void)
{
  Kompasltapi7_tlb::IKompasErrorPtr PRes;
  OLECHECK(this->get_KompasError((Kompasltapi7_tlb::IKompasErrorPtr*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_Converter(TVariantInParam Library/*[in]*/, 
                                    Kompasltapi7_tlb::IConverterPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Converter(Library, PVal);
}

template <class T> Kompasltapi7_tlb::IConverterPtr __fastcall
TCOMIApplicationT<T>::get_Converter(TVariantInParam Library/*[in]*/)
{
  Kompasltapi7_tlb::IConverterPtr PVal;
  OLECHECK(this->get_Converter(Library, (Kompasltapi7_tlb::IConverterPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_CheckSum(Kompasltapi7_tlb::ICheckSumPtr* PRes/*[out,retval]*/)
{
  return (*this)->get_CheckSum(PRes);
}

template <class T> Kompasltapi7_tlb::ICheckSumPtr __fastcall
TCOMIApplicationT<T>::get_CheckSum(void)
{
  Kompasltapi7_tlb::ICheckSumPtr PRes;
  OLECHECK(this->get_CheckSum((Kompasltapi7_tlb::ICheckSumPtr*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_ProgressBarIndicator(Kompasltapi7_tlb::IProgressBarIndicatorPtr* PRes/*[out,retval]*/)
{
  return (*this)->get_ProgressBarIndicator(PRes);
}

template <class T> Kompasltapi7_tlb::IProgressBarIndicatorPtr __fastcall
TCOMIApplicationT<T>::get_ProgressBarIndicator(void)
{
  Kompasltapi7_tlb::IProgressBarIndicatorPtr PRes;
  OLECHECK(this->get_ProgressBarIndicator((Kompasltapi7_tlb::IProgressBarIndicatorPtr*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::set_HideMessage(ksHideMessageEnum PVal/*[in]*/)
{
  return (*this)->set_HideMessage(PVal);
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_HideMessage(ksHideMessageEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_HideMessage(PVal);
}

template <class T> ksHideMessageEnum __fastcall
TCOMIApplicationT<T>::get_HideMessage(void)
{
  ksHideMessageEnum PVal;
  OLECHECK(this->get_HideMessage((ksHideMessageEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                           TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                           TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->ExecuteKompasCommand(CommandID, PostMessage, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIApplicationT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                           TOLEBOOL PostMessage/*[in,def,opt]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->ExecuteKompasCommand(CommandID, PostMessage, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::IsKompasCommandEnable(long CommandID/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->IsKompasCommandEnable(CommandID, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIApplicationT<T>::IsKompasCommandEnable(long CommandID/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->IsKompasCommandEnable(CommandID, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/)
{
  return (*this)->IsKompasCommandCheck(CommandID, PRes);
}

template <class T> long __fastcall
TCOMIApplicationT<T>::IsKompasCommandCheck(long CommandID/*[in]*/)
{
  long PRes;
  OLECHECK(this->IsKompasCommandCheck(CommandID, (long*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_SystemSettings(Kompasltapi7_tlb::ISystemSettingsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SystemSettings(PVal);
}

template <class T> Kompasltapi7_tlb::ISystemSettingsPtr __fastcall
TCOMIApplicationT<T>::get_SystemSettings(void)
{
  Kompasltapi7_tlb::ISystemSettingsPtr PVal;
  OLECHECK(this->get_SystemSettings((Kompasltapi7_tlb::ISystemSettingsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_ApplicationName(TOLEBOOL FullName/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ApplicationName(FullName, PVal);
}

template <class T> BSTR __fastcall
TCOMIApplicationT<T>::get_ApplicationName(TOLEBOOL FullName/*[in]*/)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ApplicationName(FullName, (BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_Math2D(Kompasltapi7_tlb::IMath2DPtr* PRes/*[out,retval]*/)
{
  return (*this)->get_Math2D(PRes);
}

template <class T> Kompasltapi7_tlb::IMath2DPtr __fastcall
TCOMIApplicationT<T>::get_Math2D(void)
{
  Kompasltapi7_tlb::IMath2DPtr PRes;
  OLECHECK(this->get_Math2D((Kompasltapi7_tlb::IMath2DPtr*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::get_PrintJob(Kompasltapi7_tlb::IPrintJobPtr* PrintJob/*[out,retval]*/)
{
  return (*this)->get_PrintJob(PrintJob);
}

template <class T> Kompasltapi7_tlb::IPrintJobPtr __fastcall
TCOMIApplicationT<T>::get_PrintJob(void)
{
  Kompasltapi7_tlb::IPrintJobPtr PrintJob;
  OLECHECK(this->get_PrintJob((Kompasltapi7_tlb::IPrintJobPtr*)&PrintJob));
  return PrintJob;
}

template <class T> HRESULT __fastcall
TCOMIApplicationT<T>::MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, long Flags/*[in]*/, 
                                   long* Result/*[out,retval]*/)
{
  return (*this)->MessageBoxEx(Text, Caption, Flags, Result);
}

template <class T> long __fastcall
TCOMIApplicationT<T>::MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, long Flags/*[in]*/)
{
  long Result;
  OLECHECK(this->MessageBoxEx(Text, Caption, Flags, (long*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IApplication
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6A2EFAF7-8254-45A5-9DC8-2213F16AF5D7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IApplicationDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IApplicationDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Documents(Kompasltapi7_tlb::IDocumentsPtr* Documents/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Documents"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocuments**)Documents /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentsPtr __fastcall
IApplicationDispT<T>::get_Documents(void)
{
  Kompasltapi7_tlb::IDocumentsPtr Documents;
  this->get_Documents((Kompasltapi7_tlb::IDocumentsPtr*)&Documents);
  return Documents;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::Quit()
{
  _TDispID _dispid(*this, OLETEXT("Quit"), DISPID(3));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::CreateProcessParam(Kompasltapi7_tlb::IProcessParamPtr* PProcessParam/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateProcessParam"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProcessParam**)PProcessParam /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProcessParamPtr __fastcall
IApplicationDispT<T>::CreateProcessParam(void)
{
  Kompasltapi7_tlb::IProcessParamPtr PProcessParam;
  this->CreateProcessParam((Kompasltapi7_tlb::IProcessParamPtr*)&PProcessParam);
  return PProcessParam;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::StopCurrentProcess(TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                         Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("StopCurrentProcess"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = PostMessage /*[VT_BOOL:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasDocument*)PDoc /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/, 
                                            Kompasltapi7_tlb::IPropertyManagerPtr* PPropertyManager/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreatePropertyManager"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = NewManager /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyManager**)PPropertyManager /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyManagerPtr __fastcall
IApplicationDispT<T>::CreatePropertyManager(TOLEBOOL NewManager/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IPropertyManagerPtr PPropertyManager;
  this->CreatePropertyManager(NewManager, (Kompasltapi7_tlb::IPropertyManagerPtr*)&PPropertyManager);
  return PPropertyManager;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::set_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr PDoc/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveDocument"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasDocument*)PDoc /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_ActiveDocument(Kompasltapi7_tlb::IKompasDocumentPtr* PDoc/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveDocument"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument**)PDoc /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
IApplicationDispT<T>::get_ActiveDocument(void)
{
  Kompasltapi7_tlb::IKompasDocumentPtr PDoc;
  this->get_ActiveDocument((Kompasltapi7_tlb::IKompasDocumentPtr*)&PDoc);
  return PDoc;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_LibraryManager(Kompasltapi7_tlb::ILibraryManagerPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryManager"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILibraryManager**)PRes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILibraryManagerPtr __fastcall
IApplicationDispT<T>::get_LibraryManager(void)
{
  Kompasltapi7_tlb::ILibraryManagerPtr PRes;
  this->get_LibraryManager((Kompasltapi7_tlb::ILibraryManagerPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_KompasError(Kompasltapi7_tlb::IKompasErrorPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("KompasError"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasError**)PRes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasErrorPtr __fastcall
IApplicationDispT<T>::get_KompasError(void)
{
  Kompasltapi7_tlb::IKompasErrorPtr PRes;
  this->get_KompasError((Kompasltapi7_tlb::IKompasErrorPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Converter(TVariantInParam Library/*[in]*/, 
                                    Kompasltapi7_tlb::IConverterPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Converter"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Library /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IConverter**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IConverterPtr __fastcall
IApplicationDispT<T>::get_Converter(TVariantInParam Library/*[in]*/)
{
  Kompasltapi7_tlb::IConverterPtr PVal;
  this->get_Converter(Library, (Kompasltapi7_tlb::IConverterPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_CheckSum(Kompasltapi7_tlb::ICheckSumPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckSum"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICheckSum**)PRes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICheckSumPtr __fastcall
IApplicationDispT<T>::get_CheckSum(void)
{
  Kompasltapi7_tlb::ICheckSumPtr PRes;
  this->get_CheckSum((Kompasltapi7_tlb::ICheckSumPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_ProgressBarIndicator(Kompasltapi7_tlb::IProgressBarIndicatorPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProgressBarIndicator"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProgressBarIndicator**)PRes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProgressBarIndicatorPtr __fastcall
IApplicationDispT<T>::get_ProgressBarIndicator(void)
{
  Kompasltapi7_tlb::IProgressBarIndicatorPtr PRes;
  this->get_ProgressBarIndicator((Kompasltapi7_tlb::IProgressBarIndicatorPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::set_HideMessage(ksHideMessageEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideMessage"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_HideMessage(ksHideMessageEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideMessage"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksHideMessageEnum __fastcall
IApplicationDispT<T>::get_HideMessage(void)
{
  ksHideMessageEnum PVal;
  this->get_HideMessage((ksHideMessageEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                           TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                           TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExecuteKompasCommand"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = CommandID /*[VT_I4:0]*/;
  _args[2] = PostMessage /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IApplicationDispT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                           TOLEBOOL PostMessage/*[in,def,opt]*/)
{
  TOLEBOOL PRes;
  this->ExecuteKompasCommand(CommandID, PostMessage, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::IsKompasCommandEnable(long CommandID/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsKompasCommandEnable"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = CommandID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IApplicationDispT<T>::IsKompasCommandEnable(long CommandID/*[in]*/)
{
  TOLEBOOL PRes;
  this->IsKompasCommandEnable(CommandID, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsKompasCommandCheck"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = CommandID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IApplicationDispT<T>::IsKompasCommandCheck(long CommandID/*[in]*/)
{
  long PRes;
  this->IsKompasCommandCheck(CommandID, (long*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_SystemSettings(Kompasltapi7_tlb::ISystemSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SystemSettings"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISystemSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISystemSettingsPtr __fastcall
IApplicationDispT<T>::get_SystemSettings(void)
{
  Kompasltapi7_tlb::ISystemSettingsPtr PVal;
  this->get_SystemSettings((Kompasltapi7_tlb::ISystemSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_ApplicationName(TOLEBOOL FullName/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ApplicationName"), DISPID(18));
  TAutoArgs<1> _args;
  _args[1] = FullName /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IApplicationDispT<T>::get_ApplicationName(TOLEBOOL FullName/*[in]*/)
{
  BSTR PVal;
  this->get_ApplicationName(FullName, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Math2D(Kompasltapi7_tlb::IMath2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Math2D"), DISPID(19));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMath2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMath2DPtr __fastcall
IApplicationDispT<T>::get_Math2D(void)
{
  Kompasltapi7_tlb::IMath2DPtr PRes;
  this->get_Math2D((Kompasltapi7_tlb::IMath2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_PrintJob(Kompasltapi7_tlb::IPrintJobPtr* PrintJob/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PrintJob"), DISPID(20));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPrintJob**)PrintJob /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPrintJobPtr __fastcall
IApplicationDispT<T>::get_PrintJob(void)
{
  Kompasltapi7_tlb::IPrintJobPtr PrintJob;
  this->get_PrintJob((Kompasltapi7_tlb::IPrintJobPtr*)&PrintJob);
  return PrintJob;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, long Flags/*[in]*/, 
                                   long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MessageBoxEx"), DISPID(21));
  TAutoArgs<3> _args;
  _args[1] = Text /*[VT_BSTR:0]*/;
  _args[2] = Caption /*[VT_BSTR:0]*/;
  _args[3] = Flags /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IApplicationDispT<T>::MessageBoxEx(BSTR Text/*[in]*/, BSTR Caption/*[in]*/, long Flags/*[in]*/)
{
  long Result;
  this->MessageBoxEx(Text, Caption, Flags, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IApplicationDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IApplicationDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IApplicationDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IApplicationDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IApplicationDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IKompasCollection
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {901F85DE-FA5A-4314-BD75-066A79AF20A8}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasCollectionDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IKompasCollectionDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IKompasCollectionDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasCollectionDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasCollectionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasCollectionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasCollectionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IKompasCollectionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasCollectionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IKompasCollectionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasCollectionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasCollectionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDocuments
// Interface: IDocuments
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDocumentsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
TCOMIDocumentsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDocumentsT<T>::Add(DocumentTypeEnum Type/*[in]*/, 
                        TOLEBOOL Visible/*[in,def,opt]*/, 
                        Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Type, Visible, Result);
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
TCOMIDocumentsT<T>::Add(DocumentTypeEnum Type/*[in]*/, 
                        TOLEBOOL Visible/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  OLECHECK(this->Add(Type, Visible, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDocumentsT<T>::Open(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                         TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                         Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  return (*this)->Open(PathName, Visible, ReadOnly, Result);
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
TCOMIDocumentsT<T>::Open(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                         TOLEBOOL ReadOnly/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  OLECHECK(this->Open(PathName, Visible, ReadOnly, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDocumentsT<T>::OpenEx(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                           TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                           TVariantInParam LoadCombinationIndex/*[in]*/, 
                           Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  return (*this)->OpenEx(PathName, Visible, ReadOnly, LoadCombinationIndex, Result);
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
TCOMIDocumentsT<T>::OpenEx(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                           TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                           TVariantInParam LoadCombinationIndex/*[in]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  OLECHECK(this->OpenEx(PathName, Visible, ReadOnly, LoadCombinationIndex, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDocumentsT<T>::GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/, 
                                        TVariant* Value/*[out,retval]*/)
{
  return (*this)->GetLoadCombinations(PathName, CurrentIndex, Value);
}

template <class T> TVariant __fastcall
TCOMIDocumentsT<T>::GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/)
{
  TVariant Value;
  OLECHECK(this->GetLoadCombinations(PathName, CurrentIndex, (TVariant*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMIDocumentsT<T>::AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                           TOLEBOOL Visible/*[in,def,opt]*/, 
                                           Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  return (*this)->AddWithDefaultSettings(Type, Visible, Result);
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
TCOMIDocumentsT<T>::AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                           TOLEBOOL Visible/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  OLECHECK(this->AddWithDefaultSettings(Type, Visible, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IDocuments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BF39F08-5537-4910-84CE-B338E55F7BCF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDocumentsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
IDocumentsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::Add(DocumentTypeEnum Type/*[in]*/, 
                        TOLEBOOL Visible/*[in,def,opt]*/, 
                        Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = Visible /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
IDocumentsDispT<T>::Add(DocumentTypeEnum Type/*[in]*/, 
                        TOLEBOOL Visible/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  this->Add(Type, Visible, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::Open(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                         TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                         Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Open"), DISPID(2));
  TAutoArgs<3> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  _args[2] = Visible /*[VT_BOOL:0]*/;
  _args[3] = ReadOnly /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
IDocumentsDispT<T>::Open(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                         TOLEBOOL ReadOnly/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  this->Open(PathName, Visible, ReadOnly, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::OpenEx(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                           TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                           TVariantInParam LoadCombinationIndex/*[in]*/, 
                           Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OpenEx"), DISPID(3));
  TAutoArgs<4> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  _args[2] = Visible /*[VT_BOOL:0]*/;
  _args[3] = ReadOnly /*[VT_BOOL:0]*/;
  _args[4] = LoadCombinationIndex /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
IDocumentsDispT<T>::OpenEx(BSTR PathName/*[in]*/, TOLEBOOL Visible/*[in,def,opt]*/, 
                           TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                           TVariantInParam LoadCombinationIndex/*[in]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  this->OpenEx(PathName, Visible, ReadOnly, LoadCombinationIndex, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/, 
                                        TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLoadCombinations"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  _args[2] = CurrentIndex /*[VT_I4:1]*/;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IDocumentsDispT<T>::GetLoadCombinations(BSTR PathName/*[in]*/, long* CurrentIndex/*[out]*/)
{
  TVariant Value;
  this->GetLoadCombinations(PathName, CurrentIndex, (TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                           TOLEBOOL Visible/*[in,def,opt]*/, 
                                           Kompasltapi7_tlb::IKompasDocumentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddWithDefaultSettings"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = Visible /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
IDocumentsDispT<T>::AddWithDefaultSettings(DocumentTypeEnum Type/*[in]*/, 
                                           TOLEBOOL Visible/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocumentPtr Result;
  this->AddWithDefaultSettings(Type, Visible, (Kompasltapi7_tlb::IKompasDocumentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDocumentsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDocumentsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDocumentsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDocumentsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDocumentsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDocumentsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDocumentsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIKompasDocument
// Interface: IKompasDocument
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  return (*this)->get_DocumentType(Type);
}

template <class T> DocumentTypeEnum __fastcall
TCOMIKompasDocumentT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  OLECHECK(this->get_DocumentType((DocumentTypeEnum*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  return (*this)->get_DocumentFrames(PFrames);
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
TCOMIKompasDocumentT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  OLECHECK(this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames));
  return PFrames;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                               TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Close(closeOptions, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocumentT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->Close(closeOptions, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::Save(void)
{
  return (*this)->Save();
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  return (*this)->SaveAs(PathName);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIKompasDocumentT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_PathName(PVal);
}

template <class T> BSTR __fastcall
TCOMIKompasDocumentT<T>::get_PathName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_PathName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Path(PVal);
}

template <class T> BSTR __fastcall
TCOMIKompasDocumentT<T>::get_Path(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Path((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocumentT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Active(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocumentT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Active(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocumentT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Changed(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocumentT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Changed((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_DocumentSettings(PVal);
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
TCOMIKompasDocumentT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  OLECHECK(this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SpecificationDescriptions(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
TCOMIKompasDocumentT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  OLECHECK(this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_LayoutSheets(PVal);
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
TCOMIKompasDocumentT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  OLECHECK(this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocumentT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_UserDataStoragesMng(PVal);
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
TCOMIKompasDocumentT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  OLECHECK(this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IKompasDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C6E318D-BD6E-4AFA-8A13-977EAA0845EF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
IKompasDocumentDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
IKompasDocumentDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                               TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocumentDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocumentDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocumentDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocumentDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocumentDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocumentDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
IKompasDocumentDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IKompasDocumentDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
IKompasDocumentDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
IKompasDocumentDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IKompasDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IKompasDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDocumentFrames
// Interface: IDocumentFrames
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDocumentFramesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IDocumentFramePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDocumentFramePtr __fastcall
TCOMIDocumentFramesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDocumentFramePtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IDocumentFramePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IDocumentFrames
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1D18C466-C085-4D68-A465-A85D0C8E3A0E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDocumentFramesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IDocumentFramePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrame**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramePtr __fastcall
IDocumentFramesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDocumentFramePtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDocumentFramePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDocumentFramesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDocumentFramesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDocumentFramesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDocumentFramesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFramesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDocumentFramesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFramesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDocumentFramesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFramesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDocumentFramesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDocumentFramesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDocumentFramesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDocumentFrame
// Interface: IDocumentFrame
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::set_Regime(FrameRegimeEnum PVal/*[in]*/)
{
  return (*this)->set_Regime(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::get_Regime(FrameRegimeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Regime(PVal);
}

template <class T> FrameRegimeEnum __fastcall
TCOMIDocumentFrameT<T>::get_Regime(void)
{
  FrameRegimeEnum PVal;
  OLECHECK(this->get_Regime((FrameRegimeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Active(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Active(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDocumentFrameT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Caption(PVal);
}

template <class T> BSTR __fastcall
TCOMIDocumentFrameT<T>::get_Caption(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Caption((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::Zoom(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                             double Y2/*[in]*/)
{
  return (*this)->Zoom(X1, Y1, X2, Y2);
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::ZoomPrevNextOrAll(ZoomTypeEnum Type/*[in]*/)
{
  return (*this)->ZoomPrevNextOrAll(Type);
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::ZoomScale(double X/*[in]*/, double Y/*[in]*/, double Scale/*[in]*/)
{
  return (*this)->ZoomScale(X, Y, Scale);
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::GetZoomScale(double* X/*[out]*/, double* Y/*[out]*/, double* Scale/*[out]*/)
{
  return (*this)->GetZoomScale(X, Y, Scale);
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/)
{
  return (*this)->GetHWND(HWnd);
}

template <class T> OLE_HANDLE __fastcall
TCOMIDocumentFrameT<T>::GetHWND(void)
{
  OLE_HANDLE HWnd;
  OLECHECK(this->GetHWND((OLE_HANDLE*)&HWnd));
  return HWnd;
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::SetGabaritModifying(void)
{
  return (*this)->SetGabaritModifying();
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::RefreshWindow(void)
{
  return (*this)->RefreshWindow();
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                           long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                           double* Y/*[out]*/, double* Z/*[out]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ConvertCoordinates(Type, LX, LY, X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDocumentFrameT<T>::ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                           long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                           double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ConvertCoordinates(Type, LX, LY, X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                             TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                             TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->ExecuteKompasCommand(CommandID, PostMessage, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIDocumentFrameT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                             TOLEBOOL PostMessage/*[in,def,opt]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->ExecuteKompasCommand(CommandID, PostMessage, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::IsKompasCommandEnable(long CommandID/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->IsKompasCommandEnable(CommandID, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIDocumentFrameT<T>::IsKompasCommandEnable(long CommandID/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->IsKompasCommandEnable(CommandID, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIDocumentFrameT<T>::IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/)
{
  return (*this)->IsKompasCommandCheck(CommandID, PRes);
}

template <class T> long __fastcall
TCOMIDocumentFrameT<T>::IsKompasCommandCheck(long CommandID/*[in]*/)
{
  long PRes;
  OLECHECK(this->IsKompasCommandCheck(CommandID, (long*)&PRes));
  return PRes;
}

// *********************************************************************//
// DispIntf:  IDocumentFrame
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4437FABA-990F-45E2-B1A2-7754FB326B76}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::set_Regime(FrameRegimeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Regime"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::get_Regime(FrameRegimeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Regime"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> FrameRegimeEnum __fastcall
IDocumentFrameDispT<T>::get_Regime(void)
{
  FrameRegimeEnum PVal;
  this->get_Regime((FrameRegimeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDocumentFrameDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDocumentFrameDispT<T>::get_Caption(void)
{
  BSTR PVal;
  this->get_Caption((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::Zoom(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                             double Y2/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Zoom"), DISPID(4));
  TAutoArgs<4> _args;
  _args[1] = X1 /*[VT_R8:0]*/;
  _args[2] = Y1 /*[VT_R8:0]*/;
  _args[3] = X2 /*[VT_R8:0]*/;
  _args[4] = Y2 /*[VT_R8:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::ZoomPrevNextOrAll(ZoomTypeEnum Type/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ZoomPrevNextOrAll"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::ZoomScale(double X/*[in]*/, double Y/*[in]*/, double Scale/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ZoomScale"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Scale /*[VT_R8:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::GetZoomScale(double* X/*[out]*/, double* Y/*[out]*/, double* Scale/*[out]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetZoomScale"), DISPID(7));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Scale /*[VT_R8:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetHWND"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HWnd /*[VT_INT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> OLE_HANDLE __fastcall
IDocumentFrameDispT<T>::GetHWND(void)
{
  OLE_HANDLE HWnd;
  this->GetHWND((OLE_HANDLE*)&HWnd);
  return HWnd;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::SetGabaritModifying()
{
  _TDispID _dispid(*this, OLETEXT("SetGabaritModifying"), DISPID(9));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::RefreshWindow()
{
  _TDispID _dispid(*this, OLETEXT("RefreshWindow"), DISPID(10));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                           long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                           double* Y/*[out]*/, double* Z/*[out]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConvertCoordinates"), DISPID(11));
  TAutoArgs<6> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = LX /*[VT_I4:0]*/;
  _args[3] = LY /*[VT_I4:0]*/;
  _args[4] = X /*[VT_R8:1]*/;
  _args[5] = Y /*[VT_R8:1]*/;
  _args[6] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDocumentFrameDispT<T>::ConvertCoordinates(ConvertCoordTypeEnum Type/*[in]*/, 
                                           long LX/*[in]*/, long LY/*[in]*/, double* X/*[out]*/, 
                                           double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->ConvertCoordinates(Type, LX, LY, X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                             TOLEBOOL PostMessage/*[in,def,opt]*/, 
                                             TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExecuteKompasCommand"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = CommandID /*[VT_I4:0]*/;
  _args[2] = PostMessage /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDocumentFrameDispT<T>::ExecuteKompasCommand(long CommandID/*[in]*/, 
                                             TOLEBOOL PostMessage/*[in,def,opt]*/)
{
  TOLEBOOL PRes;
  this->ExecuteKompasCommand(CommandID, PostMessage, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::IsKompasCommandEnable(long CommandID/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsKompasCommandEnable"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = CommandID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDocumentFrameDispT<T>::IsKompasCommandEnable(long CommandID/*[in]*/)
{
  TOLEBOOL PRes;
  this->IsKompasCommandEnable(CommandID, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::IsKompasCommandCheck(long CommandID/*[in]*/, long* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsKompasCommandCheck"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = CommandID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IDocumentFrameDispT<T>::IsKompasCommandCheck(long CommandID/*[in]*/)
{
  long PRes;
  this->IsKompasCommandCheck(CommandID, (long*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDocumentFrameDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDocumentFrameDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDocumentFrameDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDocumentFrameDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDocumentFrameDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDocumentSettings
// Interface: IDocumentSettings
// *********************************************************************//
// *********************************************************************//
// DispIntf:  IDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B35FF50E-2991-4630-8AB8-DC3153E7971A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDocumentSettingsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDocumentSettingsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentSettingsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDocumentSettingsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocumentSettingsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDocumentSettingsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDocumentSettingsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDocumentSettingsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationDescriptions
// Interface: ISpecificationDescriptions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
TCOMISpecificationDescriptionsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionsT<T>::Add(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                        BSTR SpcName/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(LayoutName, StyleID, SpcName, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
TCOMISpecificationDescriptionsT<T>::Add(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                        BSTR SpcName/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  OLECHECK(this->Add(LayoutName, StyleID, SpcName, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionsT<T>::get_Description(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                                    Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Description(LayoutName, StyleID, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
TCOMISpecificationDescriptionsT<T>::get_Description(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  OLECHECK(this->get_Description(LayoutName, StyleID, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionsT<T>::get_Active(Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Active(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
TCOMISpecificationDescriptionsT<T>::get_Active(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  OLECHECK(this->get_Active((Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationDescriptions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9632C5C-86E1-4BC9-83A5-A954E407246A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescription**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
ISpecificationDescriptionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::Add(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                        BSTR SpcName/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<3> _args;
  _args[1] = LayoutName /*[VT_BSTR:0]*/;
  _args[2] = StyleID /*[VT_I4:0]*/;
  _args[3] = SpcName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescription**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
ISpecificationDescriptionsDispT<T>::Add(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                        BSTR SpcName/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  this->Add(LayoutName, StyleID, SpcName, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Description(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/, 
                                                    Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Description"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = LayoutName /*[VT_BSTR:0]*/;
  _args[2] = StyleID /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescription**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
ISpecificationDescriptionsDispT<T>::get_Description(BSTR LayoutName/*[in]*/, long StyleID/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  this->get_Description(LayoutName, StyleID, (Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Active(Kompasltapi7_tlb::ISpecificationDescriptionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescription**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionPtr __fastcall
ISpecificationDescriptionsDispT<T>::get_Active(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionPtr Result;
  this->get_Active((Kompasltapi7_tlb::ISpecificationDescriptionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationDescriptionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationDescriptionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationDescriptionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationDescriptionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationDescriptionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationDescriptionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationDescription
// Interface: ISpecificationDescription
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_LayoutName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LayoutName(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationDescriptionT<T>::get_LayoutName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LayoutName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_LayoutName(BSTR PVal/*[in]*/)
{
  return (*this)->set_LayoutName(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_StyleID(long* PVal/*[out,retval]*/)
{
  return (*this)->get_StyleID(PVal);
}

template <class T> long __fastcall
TCOMISpecificationDescriptionT<T>::get_StyleID(void)
{
  long PVal;
  OLECHECK(this->get_StyleID((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_StyleID(long PVal/*[in]*/)
{
  return (*this)->set_StyleID(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_SpecificationDocumentName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_SpecificationDocumentName(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationDescriptionT<T>::get_SpecificationDocumentName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_SpecificationDocumentName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_SpecificationDocumentName(BSTR PVal/*[in]*/)
{
  return (*this)->set_SpecificationDocumentName(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Active(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationDescriptionT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Active(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->_Update(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationDescriptionT<T>::_Update(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->_Update((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationDescriptionT<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_SpecificationStyle(Kompasltapi7_tlb::ISpecificationStylePtr* Result/*[out,retval]*/)
{
  return (*this)->get_SpecificationStyle(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationStylePtr __fastcall
TCOMISpecificationDescriptionT<T>::get_SpecificationStyle(void)
{
  Kompasltapi7_tlb::ISpecificationStylePtr Result;
  OLECHECK(this->get_SpecificationStyle((Kompasltapi7_tlb::ISpecificationStylePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* Result/*[out,retval]*/)
{
  return (*this)->get_SpecificationTuning(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall
TCOMISpecificationDescriptionT<T>::get_SpecificationTuning(void)
{
  Kompasltapi7_tlb::ISpecificationTuningPtr Result;
  OLECHECK(this->get_SpecificationTuning((Kompasltapi7_tlb::ISpecificationTuningPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_Objects(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_Objects(Result);
}

template <class T> TVariant __fastcall
TCOMISpecificationDescriptionT<T>::get_Objects(void)
{
  TVariant Result;
  OLECHECK(this->get_Objects((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_BaseObjects(Kompasltapi7_tlb::ISpecificationBaseObjectsPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseObjects(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectsPtr __fastcall
TCOMISpecificationDescriptionT<T>::get_BaseObjects(void)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectsPtr Result;
  OLECHECK(this->get_BaseObjects((Kompasltapi7_tlb::ISpecificationBaseObjectsPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/)
{
  return (*this)->get_CommentObjects(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall
TCOMISpecificationDescriptionT<T>::get_CommentObjects(void)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr Result;
  OLECHECK(this->get_CommentObjects((Kompasltapi7_tlb::ISpecificationCommentObjectsPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_ShowOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowOnSheet(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationDescriptionT<T>::get_ShowOnSheet(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowOnSheet((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_ShowOnSheet(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ShowOnSheet(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_CurrentObject(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationObjectPtr __fastcall
TCOMISpecificationDescriptionT<T>::get_CurrentObject(void)
{
  Kompasltapi7_tlb::ISpecificationObjectPtr Result;
  OLECHECK(this->get_CurrentObject((Kompasltapi7_tlb::ISpecificationObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr Result/*[in]*/)
{
  return (*this)->set_CurrentObject(Result);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_ShowAllObjects(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowAllObjects(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationDescriptionT<T>::get_ShowAllObjects(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowAllObjects((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_ShowAllObjects(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ShowAllObjects(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                       long BlockIndex/*[in]*/, 
                                                       BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_PerformanceName(PerformanceIndex, BlockIndex, PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationDescriptionT<T>::get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                       long BlockIndex/*[in]*/)
{
  BSTR PVal = 0;
  OLECHECK(this->get_PerformanceName(PerformanceIndex, BlockIndex, (BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                       long BlockIndex/*[in]*/, BSTR PVal/*[in]*/)
{
  return (*this)->set_PerformanceName(PerformanceIndex, BlockIndex, PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::get_DelegateMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DelegateMode(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationDescriptionT<T>::get_DelegateMode(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DelegateMode((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationDescriptionT<T>::set_DelegateMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_DelegateMode(PVal);
}

// *********************************************************************//
// DispIntf:  ISpecificationDescription
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9678959E-166B-45F3-BDE8-88BBF4645F5C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_LayoutName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutName"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationDescriptionDispT<T>::get_LayoutName(void)
{
  BSTR PVal;
  this->get_LayoutName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_LayoutName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutName"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_StyleID(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StyleID"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationDescriptionDispT<T>::get_StyleID(void)
{
  long PVal;
  this->get_StyleID((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_StyleID(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StyleID"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_SpecificationDocumentName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDocumentName"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationDescriptionDispT<T>::get_SpecificationDocumentName(void)
{
  BSTR PVal;
  this->get_SpecificationDocumentName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_SpecificationDocumentName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDocumentName"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDescriptionDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDescriptionDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDescriptionDispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_SpecificationStyle(Kompasltapi7_tlb::ISpecificationStylePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationStyle"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationStyle**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationStylePtr __fastcall
ISpecificationDescriptionDispT<T>::get_SpecificationStyle(void)
{
  Kompasltapi7_tlb::ISpecificationStylePtr Result;
  this->get_SpecificationStyle((Kompasltapi7_tlb::ISpecificationStylePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationTuning"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationTuning**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall
ISpecificationDescriptionDispT<T>::get_SpecificationTuning(void)
{
  Kompasltapi7_tlb::ISpecificationTuningPtr Result;
  this->get_SpecificationTuning((Kompasltapi7_tlb::ISpecificationTuningPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_Objects(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Objects"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISpecificationDescriptionDispT<T>::get_Objects(void)
{
  TVariant Result;
  this->get_Objects((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_BaseObjects(Kompasltapi7_tlb::ISpecificationBaseObjectsPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObjects"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationBaseObjects**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectsPtr __fastcall
ISpecificationDescriptionDispT<T>::get_BaseObjects(void)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectsPtr Result;
  this->get_BaseObjects((Kompasltapi7_tlb::ISpecificationBaseObjectsPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CommentObjects"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationCommentObjects**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall
ISpecificationDescriptionDispT<T>::get_CommentObjects(void)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr Result;
  this->get_CommentObjects((Kompasltapi7_tlb::ISpecificationCommentObjectsPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_ShowOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowOnSheet"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDescriptionDispT<T>::get_ShowOnSheet(void)
{
  TOLEBOOL PVal;
  this->get_ShowOnSheet((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_ShowOnSheet(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowOnSheet"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentObject"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationObjectPtr __fastcall
ISpecificationDescriptionDispT<T>::get_CurrentObject(void)
{
  Kompasltapi7_tlb::ISpecificationObjectPtr Result;
  this->get_CurrentObject((Kompasltapi7_tlb::ISpecificationObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_CurrentObject(Kompasltapi7_tlb::ISpecificationObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentObject"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_ShowAllObjects(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAllObjects"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDescriptionDispT<T>::get_ShowAllObjects(void)
{
  TOLEBOOL PVal;
  this->get_ShowAllObjects((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_ShowAllObjects(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAllObjects"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                       long BlockIndex/*[in]*/, 
                                                       BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PerformanceName"), DISPID(15));
  TAutoArgs<2> _args;
  _args[1] = PerformanceIndex /*[VT_I4:0]*/;
  _args[2] = BlockIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationDescriptionDispT<T>::get_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                       long BlockIndex/*[in]*/)
{
  BSTR PVal;
  this->get_PerformanceName(PerformanceIndex, BlockIndex, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_PerformanceName(long PerformanceIndex/*[in]*/, 
                                                       long BlockIndex/*[in]*/, BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PerformanceName"), DISPID(15));
  TAutoArgs<3> _args;
  _args[1] = PerformanceIndex /*[VT_I4:0]*/;
  _args[2] = BlockIndex /*[VT_I4:0]*/;
  _args[3] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_DelegateMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DelegateMode"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDescriptionDispT<T>::get_DelegateMode(void)
{
  TOLEBOOL PVal;
  this->get_DelegateMode((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::set_DelegateMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DelegateMode"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationDescriptionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationDescriptionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationDescriptionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationDescriptionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationDescriptionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationStyle
// Interface: ISpecificationStyle
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_LayoutName1(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LayoutName1(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationStyleT<T>::get_LayoutName1(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LayoutName1((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_StyleID1(long* PVal/*[out,retval]*/)
{
  return (*this)->get_StyleID1(PVal);
}

template <class T> long __fastcall
TCOMISpecificationStyleT<T>::get_StyleID1(void)
{
  long PVal;
  OLECHECK(this->get_StyleID1((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_LayoutName2(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LayoutName2(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationStyleT<T>::get_LayoutName2(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LayoutName2((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_StyleID2(long* PVal/*[out,retval]*/)
{
  return (*this)->get_StyleID2(PVal);
}

template <class T> long __fastcall
TCOMISpecificationStyleT<T>::get_StyleID2(void)
{
  long PVal;
  OLECHECK(this->get_StyleID2((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_Variant(ksSpecificationVariantEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Variant(PVal);
}

template <class T> ksSpecificationVariantEnum __fastcall
TCOMISpecificationStyleT<T>::get_Variant(void)
{
  ksSpecificationVariantEnum PVal;
  OLECHECK(this->get_Variant((ksSpecificationVariantEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_SectionOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SectionOn(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationStyleT<T>::get_SectionOn(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SectionOn((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SpecificationTuning(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall
TCOMISpecificationStyleT<T>::get_SpecificationTuning(void)
{
  Kompasltapi7_tlb::ISpecificationTuningPtr PVal;
  OLECHECK(this->get_SpecificationTuning((Kompasltapi7_tlb::ISpecificationTuningPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Format(PVal);
}

template <class T> Kompasltapi7_tlb::ISheetFormatPtr __fastcall
TCOMISpecificationStyleT<T>::get_Format(void)
{
  Kompasltapi7_tlb::ISheetFormatPtr PVal;
  OLECHECK(this->get_Format((Kompasltapi7_tlb::ISheetFormatPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Columns(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
TCOMISpecificationStyleT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  OLECHECK(this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalColumns(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
TCOMISpecificationStyleT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  OLECHECK(this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_Sections(Kompasltapi7_tlb::ISpecificationSectionStylesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Sections(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationSectionStylesPtr __fastcall
TCOMISpecificationStyleT<T>::get_Sections(void)
{
  Kompasltapi7_tlb::ISpecificationSectionStylesPtr PVal;
  OLECHECK(this->get_Sections((Kompasltapi7_tlb::ISpecificationSectionStylesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalBlocks(PVal);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall
TCOMISpecificationStyleT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr PVal;
  OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockStylesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationStyleT<T>::get_SortSectionDown(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SortSectionDown(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationStyleT<T>::get_SortSectionDown(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SortSectionDown((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F237D2B3-DFEE-4702-B71F-E5F6923F03E6}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_LayoutName1(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutName1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationStyleDispT<T>::get_LayoutName1(void)
{
  BSTR PVal;
  this->get_LayoutName1((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_StyleID1(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StyleID1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationStyleDispT<T>::get_StyleID1(void)
{
  long PVal;
  this->get_StyleID1((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_LayoutName2(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutName2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationStyleDispT<T>::get_LayoutName2(void)
{
  BSTR PVal;
  this->get_LayoutName2((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_StyleID2(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StyleID2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationStyleDispT<T>::get_StyleID2(void)
{
  long PVal;
  this->get_StyleID2((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Variant(ksSpecificationVariantEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variant"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationVariantEnum __fastcall
ISpecificationStyleDispT<T>::get_Variant(void)
{
  ksSpecificationVariantEnum PVal;
  this->get_Variant((ksSpecificationVariantEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_SectionOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SectionOn"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationStyleDispT<T>::get_SectionOn(void)
{
  TOLEBOOL PVal;
  this->get_SectionOn((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_SpecificationTuning(Kompasltapi7_tlb::ISpecificationTuningPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationTuning"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationTuning**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningPtr __fastcall
ISpecificationStyleDispT<T>::get_SpecificationTuning(void)
{
  Kompasltapi7_tlb::ISpecificationTuningPtr PVal;
  this->get_SpecificationTuning((Kompasltapi7_tlb::ISpecificationTuningPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Format"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetFormat**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetFormatPtr __fastcall
ISpecificationStyleDispT<T>::get_Format(void)
{
  Kompasltapi7_tlb::ISheetFormatPtr PVal;
  this->get_Format((Kompasltapi7_tlb::ISheetFormatPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Columns"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumnStyles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
ISpecificationStyleDispT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalColumns"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumnStyles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
ISpecificationStyleDispT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Sections(Kompasltapi7_tlb::ISpecificationSectionStylesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sections"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationSectionStyles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationSectionStylesPtr __fastcall
ISpecificationStyleDispT<T>::get_Sections(void)
{
  Kompasltapi7_tlb::ISpecificationSectionStylesPtr PVal;
  this->get_Sections((Kompasltapi7_tlb::ISpecificationSectionStylesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlocks"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockStyles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall
ISpecificationStyleDispT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr PVal;
  this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockStylesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_SortSectionDown(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortSectionDown"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationStyleDispT<T>::get_SortSectionDown(void)
{
  TOLEBOOL PVal;
  this->get_SortSectionDown((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationStyleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationStyleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationStyleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationStyleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationStyleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationTuning
// Interface: ISpecificationTuning
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_LinkType(ksSpecificationLinkTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_LinkType(PVal);
}

template <class T> ksSpecificationLinkTypeEnum __fastcall
TCOMISpecificationTuningT<T>::get_LinkType(void)
{
  ksSpecificationLinkTypeEnum PVal;
  OLECHECK(this->get_LinkType((ksSpecificationLinkTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_LinkType(ksSpecificationLinkTypeEnum PVal/*[in]*/)
{
  return (*this)->set_LinkType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_CalculateZone(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CalculateZone(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_CalculateZone(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CalculateZone((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_CalculateZone(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CalculateZone(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_CalculatePosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CalculatePosition(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_CalculatePosition(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CalculatePosition((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_CalculatePosition(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CalculatePosition(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_ShowSectionName(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowSectionName(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_ShowSectionName(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowSectionName((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_ShowSectionName(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ShowSectionName(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_DeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DeleteGeometry(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_DeleteGeometry(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DeleteGeometry((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_DeleteGeometry(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DeleteGeometry(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_DisableEmptyString(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DisableEmptyString(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_DisableEmptyString(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DisableEmptyString((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_DisableEmptyString(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DisableEmptyString(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_DisableEmptyBlockString(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DisableEmptyBlockString(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_DisableEmptyBlockString(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DisableEmptyBlockString((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_DisableEmptyBlockString(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DisableEmptyBlockString(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_InsertNull(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_InsertNull(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_InsertNull(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_InsertNull((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_InsertNull(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_InsertNull(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_InsertDash(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_InsertDash(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_InsertDash(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_InsertDash((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_InsertDash(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_InsertDash(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_ShowInfoByObjects(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowInfoByObjects(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_ShowInfoByObjects(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowInfoByObjects((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_ShowInfoByObjects(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ShowInfoByObjects(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_SupportPerformance(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SupportPerformance(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_SupportPerformance(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SupportPerformance((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_SupportPerformance(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SupportPerformance(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_ShowPerformanceFull(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowPerformanceFull(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_ShowPerformanceFull(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowPerformanceFull((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_ShowPerformanceFull(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ShowPerformanceFull(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_BlockOnNewPage(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_BlockOnNewPage(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_BlockOnNewPage(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_BlockOnNewPage((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_BlockOnNewPage(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_BlockOnNewPage(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_PositionUp(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_PositionUp(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_PositionUp(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_PositionUp((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_PositionUp(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_PositionUp(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_DrawBottomUp(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DrawBottomUp(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_DrawBottomUp(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DrawBottomUp((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_DrawBottomUp(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DrawBottomUp(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_UserTextStyle(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_UserTextStyle(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_UserTextStyle(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_UserTextStyle((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_UserTextStyle(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_UserTextStyle(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_PerformanceCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_PerformanceCount(PVal);
}

template <class T> long __fastcall
TCOMISpecificationTuningT<T>::get_PerformanceCount(void)
{
  long PVal;
  OLECHECK(this->get_PerformanceCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_PerformanceCount(long PVal/*[in]*/)
{
  return (*this)->set_PerformanceCount(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_BlockCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_BlockCount(PVal);
}

template <class T> long __fastcall
TCOMISpecificationTuningT<T>::get_BlockCount(void)
{
  long PVal;
  OLECHECK(this->get_BlockCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_InitialPosition(long* PVal/*[out,retval]*/)
{
  return (*this)->get_InitialPosition(PVal);
}

template <class T> long __fastcall
TCOMISpecificationTuningT<T>::get_InitialPosition(void)
{
  long PVal;
  OLECHECK(this->get_InitialPosition((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_InitialPosition(long PVal/*[in]*/)
{
  return (*this)->set_InitialPosition(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_PredefinedTextFileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_PredefinedTextFileName(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationTuningT<T>::get_PredefinedTextFileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_PredefinedTextFileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_PredefinedTextFileName(BSTR PVal/*[in]*/)
{
  return (*this)->set_PredefinedTextFileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_SectionTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SectionTextStyleFirst(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_SectionTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_SectionTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_SectionTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SectionTextStyleNext(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_SectionTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_SectionTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_ObjectTextStyle(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_ObjectTextStyle(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_ObjectTextStyle(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_ObjectTextStyle((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_Sections(Kompasltapi7_tlb::ISpecificationTuningSectionsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Sections(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningSectionsPtr __fastcall
TCOMISpecificationTuningT<T>::get_Sections(void)
{
  Kompasltapi7_tlb::ISpecificationTuningSectionsPtr PVal;
  OLECHECK(this->get_Sections((Kompasltapi7_tlb::ISpecificationTuningSectionsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_UseAdditionalBlocks(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_UseAdditionalBlocks(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_UseAdditionalBlocks((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_UseAdditionalBlocks(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalBlocks(PVal);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall
TCOMISpecificationTuningT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr PVal;
  OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockTuningsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_ShowAdditionalBlockName(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowAdditionalBlockName(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_ShowAdditionalBlockName(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowAdditionalBlockName((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_ShowAdditionalBlockName(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ShowAdditionalBlockName(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_ShowNestingBlockName(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowNestingBlockName(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_ShowNestingBlockName(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowNestingBlockName((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_ShowNestingBlockName(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ShowNestingBlockName(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_ShowPerformanceBlockName(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShowPerformanceBlockName(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_ShowPerformanceBlockName(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShowPerformanceBlockName((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_ShowPerformanceBlockName(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ShowPerformanceBlockName(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_PerformanceBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_PerformanceBlockTextStyleFirst(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_PerformanceBlockTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_PerformanceBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_PerformanceBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_PerformanceBlockTextStyleNext(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_PerformanceBlockTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_PerformanceBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_AdditionalBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalBlockTextStyleFirst(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_AdditionalBlockTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_AdditionalBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_AdditionalBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalBlockTextStyleNext(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_AdditionalBlockTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_AdditionalBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_NestingBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_NestingBlockTextStyleFirst(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_NestingBlockTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_NestingBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_NestingBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_NestingBlockTextStyleNext(PVal);
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
TCOMISpecificationTuningT<T>::get_NestingBlockTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  OLECHECK(this->get_NestingBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_DisableNestingBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DisableNestingBlockEmptyStrings(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_DisableNestingBlockEmptyStrings(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DisableNestingBlockEmptyStrings((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_DisableNestingBlockEmptyStrings(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DisableNestingBlockEmptyStrings(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_DisableAdditionalBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DisableAdditionalBlockEmptyStrings(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_DisableAdditionalBlockEmptyStrings(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DisableAdditionalBlockEmptyStrings((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_DisableAdditionalBlockEmptyStrings(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DisableAdditionalBlockEmptyStrings(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->_Update(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::_Update(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->_Update((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DeleteSpcObjectOnDeleteGeometry(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_DeleteSpcObjectOnDeleteGeometry(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DeleteSpcObjectOnDeleteGeometry((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DeleteSpcObjectOnDeleteGeometry(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::get_CopySpcObjectOnCopyGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CopySpcObjectOnCopyGeometry(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningT<T>::get_CopySpcObjectOnCopyGeometry(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CopySpcObjectOnCopyGeometry((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningT<T>::set_CopySpcObjectOnCopyGeometry(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CopySpcObjectOnCopyGeometry(PVal);
}

// *********************************************************************//
// DispIntf:  ISpecificationTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BB719D42-E44C-445B-969A-0E2F63E97FC8}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_LinkType(ksSpecificationLinkTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LinkType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationLinkTypeEnum __fastcall
ISpecificationTuningDispT<T>::get_LinkType(void)
{
  ksSpecificationLinkTypeEnum PVal;
  this->get_LinkType((ksSpecificationLinkTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_LinkType(ksSpecificationLinkTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LinkType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_CalculateZone(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CalculateZone"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_CalculateZone(void)
{
  TOLEBOOL PVal;
  this->get_CalculateZone((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_CalculateZone(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CalculateZone"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_CalculatePosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CalculatePosition"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_CalculatePosition(void)
{
  TOLEBOOL PVal;
  this->get_CalculatePosition((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_CalculatePosition(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CalculatePosition"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_ShowSectionName(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowSectionName"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_ShowSectionName(void)
{
  TOLEBOOL PVal;
  this->get_ShowSectionName((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_ShowSectionName(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowSectionName"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_DeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteGeometry"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_DeleteGeometry(void)
{
  TOLEBOOL PVal;
  this->get_DeleteGeometry((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_DeleteGeometry(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteGeometry"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_DisableEmptyString(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableEmptyString"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_DisableEmptyString(void)
{
  TOLEBOOL PVal;
  this->get_DisableEmptyString((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_DisableEmptyString(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableEmptyString"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_DisableEmptyBlockString(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableEmptyBlockString"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_DisableEmptyBlockString(void)
{
  TOLEBOOL PVal;
  this->get_DisableEmptyBlockString((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_DisableEmptyBlockString(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableEmptyBlockString"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_InsertNull(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertNull"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_InsertNull(void)
{
  TOLEBOOL PVal;
  this->get_InsertNull((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_InsertNull(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertNull"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_InsertDash(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertDash"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_InsertDash(void)
{
  TOLEBOOL PVal;
  this->get_InsertDash((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_InsertDash(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertDash"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_ShowInfoByObjects(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowInfoByObjects"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_ShowInfoByObjects(void)
{
  TOLEBOOL PVal;
  this->get_ShowInfoByObjects((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_ShowInfoByObjects(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowInfoByObjects"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_SupportPerformance(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SupportPerformance"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_SupportPerformance(void)
{
  TOLEBOOL PVal;
  this->get_SupportPerformance((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_SupportPerformance(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SupportPerformance"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_ShowPerformanceFull(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPerformanceFull"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_ShowPerformanceFull(void)
{
  TOLEBOOL PVal;
  this->get_ShowPerformanceFull((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_ShowPerformanceFull(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPerformanceFull"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_BlockOnNewPage(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockOnNewPage"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_BlockOnNewPage(void)
{
  TOLEBOOL PVal;
  this->get_BlockOnNewPage((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_BlockOnNewPage(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockOnNewPage"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_PositionUp(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionUp"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_PositionUp(void)
{
  TOLEBOOL PVal;
  this->get_PositionUp((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_PositionUp(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionUp"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_DrawBottomUp(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawBottomUp"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_DrawBottomUp(void)
{
  TOLEBOOL PVal;
  this->get_DrawBottomUp((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_DrawBottomUp(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawBottomUp"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_UserTextStyle(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserTextStyle"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_UserTextStyle(void)
{
  TOLEBOOL PVal;
  this->get_UserTextStyle((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_UserTextStyle(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserTextStyle"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_PerformanceCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PerformanceCount"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningDispT<T>::get_PerformanceCount(void)
{
  long PVal;
  this->get_PerformanceCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_PerformanceCount(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PerformanceCount"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_BlockCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockCount"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningDispT<T>::get_BlockCount(void)
{
  long PVal;
  this->get_BlockCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_InitialPosition(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InitialPosition"), DISPID(19));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningDispT<T>::get_InitialPosition(void)
{
  long PVal;
  this->get_InitialPosition((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_InitialPosition(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InitialPosition"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_PredefinedTextFileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PredefinedTextFileName"), DISPID(20));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationTuningDispT<T>::get_PredefinedTextFileName(void)
{
  BSTR PVal;
  this->get_PredefinedTextFileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_PredefinedTextFileName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PredefinedTextFileName"), DISPID(20));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_SectionTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SectionTextStyleFirst"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_SectionTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_SectionTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_SectionTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SectionTextStyleNext"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_SectionTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_SectionTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_ObjectTextStyle(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectTextStyle"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_ObjectTextStyle(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_ObjectTextStyle((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_Sections(Kompasltapi7_tlb::ISpecificationTuningSectionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sections"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationTuningSections**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningSectionsPtr __fastcall
ISpecificationTuningDispT<T>::get_Sections(void)
{
  Kompasltapi7_tlb::ISpecificationTuningSectionsPtr PVal;
  this->get_Sections((Kompasltapi7_tlb::ISpecificationTuningSectionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseAdditionalBlocks"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_UseAdditionalBlocks(void)
{
  TOLEBOOL PVal;
  this->get_UseAdditionalBlocks((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseAdditionalBlocks"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlocks"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockTunings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall
ISpecificationTuningDispT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr PVal;
  this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockTuningsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_ShowAdditionalBlockName(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAdditionalBlockName"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_ShowAdditionalBlockName(void)
{
  TOLEBOOL PVal;
  this->get_ShowAdditionalBlockName((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_ShowAdditionalBlockName(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAdditionalBlockName"), DISPID(27));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_ShowNestingBlockName(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowNestingBlockName"), DISPID(28));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_ShowNestingBlockName(void)
{
  TOLEBOOL PVal;
  this->get_ShowNestingBlockName((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_ShowNestingBlockName(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowNestingBlockName"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_ShowPerformanceBlockName(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPerformanceBlockName"), DISPID(29));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_ShowPerformanceBlockName(void)
{
  TOLEBOOL PVal;
  this->get_ShowPerformanceBlockName((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_ShowPerformanceBlockName(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPerformanceBlockName"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_PerformanceBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PerformanceBlockTextStyleFirst"), DISPID(30));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_PerformanceBlockTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_PerformanceBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_PerformanceBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PerformanceBlockTextStyleNext"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_PerformanceBlockTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_PerformanceBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_AdditionalBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlockTextStyleFirst"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_AdditionalBlockTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_AdditionalBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_AdditionalBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlockTextStyleNext"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_AdditionalBlockTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_AdditionalBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_NestingBlockTextStyleFirst(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestingBlockTextStyleFirst"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_NestingBlockTextStyleFirst(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_NestingBlockTextStyleFirst((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_NestingBlockTextStyleNext(Kompasltapi7_tlb::ITextStylePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestingBlockTextStyleNext"), DISPID(35));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextStyle**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextStylePtr __fastcall
ISpecificationTuningDispT<T>::get_NestingBlockTextStyleNext(void)
{
  Kompasltapi7_tlb::ITextStylePtr PVal;
  this->get_NestingBlockTextStyleNext((Kompasltapi7_tlb::ITextStylePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_DisableNestingBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableNestingBlockEmptyStrings"), DISPID(36));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_DisableNestingBlockEmptyStrings(void)
{
  TOLEBOOL PVal;
  this->get_DisableNestingBlockEmptyStrings((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_DisableNestingBlockEmptyStrings(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableNestingBlockEmptyStrings"), DISPID(36));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_DisableAdditionalBlockEmptyStrings(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableAdditionalBlockEmptyStrings"), DISPID(37));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_DisableAdditionalBlockEmptyStrings(void)
{
  TOLEBOOL PVal;
  this->get_DisableAdditionalBlockEmptyStrings((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_DisableAdditionalBlockEmptyStrings(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisableAdditionalBlockEmptyStrings"), DISPID(37));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(38));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteSpcObjectOnDeleteGeometry"), DISPID(39));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_DeleteSpcObjectOnDeleteGeometry(void)
{
  TOLEBOOL PVal;
  this->get_DeleteSpcObjectOnDeleteGeometry((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_DeleteSpcObjectOnDeleteGeometry(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteSpcObjectOnDeleteGeometry"), DISPID(39));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_CopySpcObjectOnCopyGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopySpcObjectOnCopyGeometry"), DISPID(40));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningDispT<T>::get_CopySpcObjectOnCopyGeometry(void)
{
  TOLEBOOL PVal;
  this->get_CopySpcObjectOnCopyGeometry((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::set_CopySpcObjectOnCopyGeometry(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopySpcObjectOnCopyGeometry"), DISPID(40));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationTuningDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationTuningDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationTuningDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationTuningDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITextStyle
// Interface: ITextStyle
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMITextStyleT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMITextStyleT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Number(long PVal/*[in]*/)
{
  return (*this)->set_Number(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_Step(void)
{
  double PVal;
  OLECHECK(this->get_Step((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Step(double PVal/*[in]*/)
{
  return (*this)->set_Step(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Align(ksAlignEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Align(PVal);
}

template <class T> ksAlignEnum __fastcall
TCOMITextStyleT<T>::get_Align(void)
{
  ksAlignEnum PVal;
  OLECHECK(this->get_Align((ksAlignEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Align(ksAlignEnum PVal/*[in]*/)
{
  return (*this)->set_Align(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_IndentedLine(double* PVal/*[out,retval]*/)
{
  return (*this)->get_IndentedLine(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_IndentedLine(void)
{
  double PVal;
  OLECHECK(this->get_IndentedLine((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_IndentedLine(double PVal/*[in]*/)
{
  return (*this)->set_IndentedLine(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_StepBeforeParagraph(double* PVal/*[out,retval]*/)
{
  return (*this)->get_StepBeforeParagraph(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_StepBeforeParagraph(void)
{
  double PVal;
  OLECHECK(this->get_StepBeforeParagraph((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_StepBeforeParagraph(double PVal/*[in]*/)
{
  return (*this)->set_StepBeforeParagraph(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_StepAfterParagraph(double* PVal/*[out,retval]*/)
{
  return (*this)->get_StepAfterParagraph(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_StepAfterParagraph(void)
{
  double PVal;
  OLECHECK(this->get_StepAfterParagraph((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_StepAfterParagraph(double PVal/*[in]*/)
{
  return (*this)->set_StepAfterParagraph(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_LeftEdge(double* PVal/*[out,retval]*/)
{
  return (*this)->get_LeftEdge(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_LeftEdge(void)
{
  double PVal;
  OLECHECK(this->get_LeftEdge((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_LeftEdge(double PVal/*[in]*/)
{
  return (*this)->set_LeftEdge(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_RightEdge(double* PVal/*[out,retval]*/)
{
  return (*this)->get_RightEdge(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_RightEdge(void)
{
  double PVal;
  OLECHECK(this->get_RightEdge((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_RightEdge(double PVal/*[in]*/)
{
  return (*this)->set_RightEdge(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Extended(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Extended(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextStyleT<T>::get_Extended(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Extended((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Extended(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Extended(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_LinesCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_LinesCount(PVal);
}

template <class T> long __fastcall
TCOMITextStyleT<T>::get_LinesCount(void)
{
  long PVal;
  OLECHECK(this->get_LinesCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_LinesCount(long PVal/*[in]*/)
{
  return (*this)->set_LinesCount(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_EnableLine1(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_EnableLine1(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextStyleT<T>::get_EnableLine1(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_EnableLine1((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_EnableLine1(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_EnableLine1(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Height1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Height1(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_Height1(void)
{
  double PVal;
  OLECHECK(this->get_Height1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Height1(double PVal/*[in]*/)
{
  return (*this)->set_Height1(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_WidthFactor1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WidthFactor1(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_WidthFactor1(void)
{
  double PVal;
  OLECHECK(this->get_WidthFactor1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_WidthFactor1(double PVal/*[in]*/)
{
  return (*this)->set_WidthFactor1(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Step1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step1(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_Step1(void)
{
  double PVal;
  OLECHECK(this->get_Step1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Step1(double PVal/*[in]*/)
{
  return (*this)->set_Step1(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_EnableLine2(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_EnableLine2(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextStyleT<T>::get_EnableLine2(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_EnableLine2((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_EnableLine2(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_EnableLine2(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Height2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Height2(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_Height2(void)
{
  double PVal;
  OLECHECK(this->get_Height2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Height2(double PVal/*[in]*/)
{
  return (*this)->set_Height2(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_WidthFactor2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WidthFactor2(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_WidthFactor2(void)
{
  double PVal;
  OLECHECK(this->get_WidthFactor2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_WidthFactor2(double PVal/*[in]*/)
{
  return (*this)->set_WidthFactor2(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Step2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step2(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_Step2(void)
{
  double PVal;
  OLECHECK(this->get_Step2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Step2(double PVal/*[in]*/)
{
  return (*this)->set_Step2(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_EnableLine3(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_EnableLine3(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextStyleT<T>::get_EnableLine3(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_EnableLine3((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_EnableLine3(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_EnableLine3(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Height3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Height3(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_Height3(void)
{
  double PVal;
  OLECHECK(this->get_Height3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Height3(double PVal/*[in]*/)
{
  return (*this)->set_Height3(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_WidthFactor3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WidthFactor3(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_WidthFactor3(void)
{
  double PVal;
  OLECHECK(this->get_WidthFactor3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_WidthFactor3(double PVal/*[in]*/)
{
  return (*this)->set_WidthFactor3(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Step3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step3(PVal);
}

template <class T> double __fastcall
TCOMITextStyleT<T>::get_Step3(void)
{
  double PVal;
  OLECHECK(this->get_Step3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::set_Step3(double PVal/*[in]*/)
{
  return (*this)->set_Step3(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Font(Kompasltapi7_tlb::ITextFontPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Font(PVal);
}

template <class T> Kompasltapi7_tlb::ITextFontPtr __fastcall
TCOMITextStyleT<T>::get_Font(void)
{
  Kompasltapi7_tlb::ITextFontPtr PVal;
  OLECHECK(this->get_Font((Kompasltapi7_tlb::ITextFontPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextStyleT<T>::get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Tabulators(PVal);
}

template <class T> Kompasltapi7_tlb::ITabulatorsPtr __fastcall
TCOMITextStyleT<T>::get_Tabulators(void)
{
  Kompasltapi7_tlb::ITabulatorsPtr PVal;
  OLECHECK(this->get_Tabulators((Kompasltapi7_tlb::ITabulatorsPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ITextStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7EA65CA0-420D-4E1D-8C19-998495C4DA2F}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextStyleDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextStyleDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Number(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_Step(void)
{
  double PVal;
  this->get_Step((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Step(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Align(ksAlignEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAlignEnum __fastcall
ITextStyleDispT<T>::get_Align(void)
{
  ksAlignEnum PVal;
  this->get_Align((ksAlignEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Align(ksAlignEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_IndentedLine(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IndentedLine"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_IndentedLine(void)
{
  double PVal;
  this->get_IndentedLine((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_IndentedLine(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IndentedLine"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_StepBeforeParagraph(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepBeforeParagraph"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_StepBeforeParagraph(void)
{
  double PVal;
  this->get_StepBeforeParagraph((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_StepBeforeParagraph(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepBeforeParagraph"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_StepAfterParagraph(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepAfterParagraph"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_StepAfterParagraph(void)
{
  double PVal;
  this->get_StepAfterParagraph((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_StepAfterParagraph(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepAfterParagraph"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_LeftEdge(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftEdge"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_LeftEdge(void)
{
  double PVal;
  this->get_LeftEdge((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_LeftEdge(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftEdge"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_RightEdge(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightEdge"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_RightEdge(void)
{
  double PVal;
  this->get_RightEdge((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_RightEdge(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightEdge"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Extended(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Extended"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextStyleDispT<T>::get_Extended(void)
{
  TOLEBOOL PVal;
  this->get_Extended((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Extended(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Extended"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_LinesCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LinesCount"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextStyleDispT<T>::get_LinesCount(void)
{
  long PVal;
  this->get_LinesCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_LinesCount(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LinesCount"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_EnableLine1(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableLine1"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextStyleDispT<T>::get_EnableLine1(void)
{
  TOLEBOOL PVal;
  this->get_EnableLine1((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_EnableLine1(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableLine1"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Height1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height1"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_Height1(void)
{
  double PVal;
  this->get_Height1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Height1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height1"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_WidthFactor1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor1"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_WidthFactor1(void)
{
  double PVal;
  this->get_WidthFactor1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_WidthFactor1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor1"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Step1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step1"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_Step1(void)
{
  double PVal;
  this->get_Step1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Step1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step1"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_EnableLine2(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableLine2"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextStyleDispT<T>::get_EnableLine2(void)
{
  TOLEBOOL PVal;
  this->get_EnableLine2((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_EnableLine2(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableLine2"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Height2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height2"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_Height2(void)
{
  double PVal;
  this->get_Height2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Height2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height2"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_WidthFactor2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor2"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_WidthFactor2(void)
{
  double PVal;
  this->get_WidthFactor2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_WidthFactor2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor2"), DISPID(18));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Step2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step2"), DISPID(19));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_Step2(void)
{
  double PVal;
  this->get_Step2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Step2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step2"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_EnableLine3(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableLine3"), DISPID(20));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextStyleDispT<T>::get_EnableLine3(void)
{
  TOLEBOOL PVal;
  this->get_EnableLine3((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_EnableLine3(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableLine3"), DISPID(20));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Height3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height3"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_Height3(void)
{
  double PVal;
  this->get_Height3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Height3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height3"), DISPID(21));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_WidthFactor3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor3"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_WidthFactor3(void)
{
  double PVal;
  this->get_WidthFactor3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_WidthFactor3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor3"), DISPID(22));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Step3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step3"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextStyleDispT<T>::get_Step3(void)
{
  double PVal;
  this->get_Step3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::set_Step3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step3"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Font(Kompasltapi7_tlb::ITextFontPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Font"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextFont**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextFontPtr __fastcall
ITextStyleDispT<T>::get_Font(void)
{
  Kompasltapi7_tlb::ITextFontPtr PVal;
  this->get_Font((Kompasltapi7_tlb::ITextFontPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tabulators"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITabulators**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITabulatorsPtr __fastcall
ITextStyleDispT<T>::get_Tabulators(void)
{
  Kompasltapi7_tlb::ITabulatorsPtr PVal;
  this->get_Tabulators((Kompasltapi7_tlb::ITabulatorsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITextStyleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITextStyleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITextStyleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITextStyleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextStyleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITextFont
// Interface: ITextFont
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_FontName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FontName(PVal);
}

template <class T> BSTR __fastcall
TCOMITextFontT<T>::get_FontName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FontName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_FontName(BSTR PVal/*[in]*/)
{
  return (*this)->set_FontName(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Height(PVal);
}

template <class T> double __fastcall
TCOMITextFontT<T>::get_Height(void)
{
  double PVal;
  OLECHECK(this->get_Height((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_Height(double PVal/*[in]*/)
{
  return (*this)->set_Height(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_WidthFactor(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WidthFactor(PVal);
}

template <class T> double __fastcall
TCOMITextFontT<T>::get_WidthFactor(void)
{
  double PVal;
  OLECHECK(this->get_WidthFactor((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_WidthFactor(double PVal/*[in]*/)
{
  return (*this)->set_WidthFactor(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Color(PVal);
}

template <class T> long __fastcall
TCOMITextFontT<T>::get_Color(void)
{
  long PVal;
  OLECHECK(this->get_Color((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_Color(long PVal/*[in]*/)
{
  return (*this)->set_Color(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_Bold(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Bold(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextFontT<T>::get_Bold(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Bold((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_Bold(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Bold(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_Italic(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Italic(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextFontT<T>::get_Italic(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Italic((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_Italic(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Italic(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_Underline(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Underline(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextFontT<T>::get_Underline(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Underline((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_Underline(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Underline(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::get_TextLineStep(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_TextLineStep(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITextFontT<T>::get_TextLineStep(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_TextLineStep((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextFontT<T>::set_TextLineStep(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_TextLineStep(PVal);
}

// *********************************************************************//
// DispIntf:  ITextFont
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6AD008D-58D1-48B5-BD29-E6795289FE4B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_FontName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FontName"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextFontDispT<T>::get_FontName(void)
{
  BSTR PVal;
  this->get_FontName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_FontName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FontName"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextFontDispT<T>::get_Height(void)
{
  double PVal;
  this->get_Height((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_Height(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_WidthFactor(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextFontDispT<T>::get_WidthFactor(void)
{
  double PVal;
  this->get_WidthFactor((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_WidthFactor(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WidthFactor"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextFontDispT<T>::get_Color(void)
{
  long PVal;
  this->get_Color((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_Color(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Bold(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bold"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextFontDispT<T>::get_Bold(void)
{
  TOLEBOOL PVal;
  this->get_Bold((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_Bold(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bold"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Italic(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Italic"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextFontDispT<T>::get_Italic(void)
{
  TOLEBOOL PVal;
  this->get_Italic((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_Italic(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Italic"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Underline(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Underline"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextFontDispT<T>::get_Underline(void)
{
  TOLEBOOL PVal;
  this->get_Underline((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_Underline(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Underline"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_TextLineStep(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextLineStep"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextFontDispT<T>::get_TextLineStep(void)
{
  TOLEBOOL PVal;
  this->get_TextLineStep((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::set_TextLineStep(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextLineStep"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITextFontDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITextFontDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITextFontDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITextFontDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextFontDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITabulators
// Interface: ITabulators
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITabulatorsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ITabulatorPtr __fastcall
TCOMITabulatorsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ITabulatorPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ITabulatorPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITabulatorsT<T>::Add(long Position/*[in]*/, 
                         Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Position, Result);
}

template <class T> Kompasltapi7_tlb::ITabulatorPtr __fastcall
TCOMITabulatorsT<T>::Add(long Position/*[in]*/)
{
  Kompasltapi7_tlb::ITabulatorPtr Result;
  OLECHECK(this->Add(Position, (Kompasltapi7_tlb::ITabulatorPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITabulatorsT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITabulatorsT<T>::Clear(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear((TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ITabulators
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BB66E097-95C7-49B1-B6FD-3506C7758D09}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITabulator**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITabulatorPtr __fastcall
ITabulatorsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ITabulatorPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ITabulatorPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::Add(long Position/*[in]*/, 
                         Kompasltapi7_tlb::ITabulatorPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Position /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITabulator**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITabulatorPtr __fastcall
ITabulatorsDispT<T>::Add(long Position/*[in]*/)
{
  Kompasltapi7_tlb::ITabulatorPtr Result;
  this->Add(Position, (Kompasltapi7_tlb::ITabulatorPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITabulatorsDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ITabulatorsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITabulatorsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITabulatorsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITabulatorsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITabulatorsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITabulatorsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITabulatorsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITabulator
// Interface: ITabulator
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITabulatorT<T>::get_Position(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Position(PVal);
}

template <class T> long __fastcall
TCOMITabulatorT<T>::get_Position(void)
{
  long PVal;
  OLECHECK(this->get_Position((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITabulatorT<T>::set_Position(long PVal/*[in]*/)
{
  return (*this)->set_Position(PVal);
}

template <class T> HRESULT __fastcall
TCOMITabulatorT<T>::get_Align(ksAlignEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Align(PVal);
}

template <class T> ksAlignEnum __fastcall
TCOMITabulatorT<T>::get_Align(void)
{
  ksAlignEnum PVal;
  OLECHECK(this->get_Align((ksAlignEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITabulatorT<T>::set_Align(ksAlignEnum PVal/*[in]*/)
{
  return (*this)->set_Align(PVal);
}

template <class T> HRESULT __fastcall
TCOMITabulatorT<T>::get_Filling(ksTabulatorFillingEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Filling(PVal);
}

template <class T> ksTabulatorFillingEnum __fastcall
TCOMITabulatorT<T>::get_Filling(void)
{
  ksTabulatorFillingEnum PVal;
  OLECHECK(this->get_Filling((ksTabulatorFillingEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITabulatorT<T>::set_Filling(ksTabulatorFillingEnum PVal/*[in]*/)
{
  return (*this)->set_Filling(PVal);
}

// *********************************************************************//
// DispIntf:  ITabulator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2DD73B92-F8C8-49AA-AECD-B75713427FC1}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITabulatorDispT<T>::get_Position(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Position"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITabulatorDispT<T>::get_Position(void)
{
  long PVal;
  this->get_Position((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::set_Position(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Position"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::get_Align(ksAlignEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAlignEnum __fastcall
ITabulatorDispT<T>::get_Align(void)
{
  ksAlignEnum PVal;
  this->get_Align((ksAlignEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::set_Align(ksAlignEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::get_Filling(ksTabulatorFillingEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Filling"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTabulatorFillingEnum __fastcall
ITabulatorDispT<T>::get_Filling(void)
{
  ksTabulatorFillingEnum PVal;
  this->get_Filling((ksTabulatorFillingEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::set_Filling(ksTabulatorFillingEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Filling"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITabulatorDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITabulatorDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITabulatorDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITabulatorDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITabulatorDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationTuningSections
// Interface: ISpecificationTuningSections
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ISpecificationTuningSectionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningSectionPtr __fastcall
TCOMISpecificationTuningSectionsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationTuningSectionPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationTuningSectionPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationTuningSections
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {01B1BF6F-B9E3-4E94-99A0-81394FB99B16}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationTuningSectionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ISpecificationTuningSectionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationTuningSection**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationTuningSectionPtr __fastcall
ISpecificationTuningSectionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationTuningSectionPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationTuningSectionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationTuningSectionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningSectionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationTuningSectionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationTuningSectionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationTuningSectionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningSectionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationTuningSection
// Interface: ISpecificationTuningSection
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMISpecificationTuningSectionT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_SubsectionOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SubsectionOn(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningSectionT<T>::get_SubsectionOn(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SubsectionOn((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::set_SubsectionOn(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SubsectionOn(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_AttachGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AttachGeometry(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningSectionT<T>::get_AttachGeometry(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AttachGeometry((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::set_AttachGeometry(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AttachGeometry(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_PutPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_PutPosition(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningSectionT<T>::get_PutPosition(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_PutPosition((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::set_PutPosition(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_PutPosition(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_SortObjects(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SortObjects(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningSectionT<T>::get_SortObjects(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SortObjects((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::set_SortObjects(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SortObjects(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FirstOnSheet(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningSectionT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FirstOnSheet((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_FirstOnSheet(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_ReserveStringCount(short* PVal/*[out,retval]*/)
{
  return (*this)->get_ReserveStringCount(PVal);
}

template <class T> short __fastcall
TCOMISpecificationTuningSectionT<T>::get_ReserveStringCount(void)
{
  short PVal;
  OLECHECK(this->get_ReserveStringCount((short*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::set_ReserveStringCount(short PVal/*[in]*/)
{
  return (*this)->set_ReserveStringCount(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_Subsections(Kompasltapi7_tlb::ISpecificationSubsectionsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Subsections(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationSubsectionsPtr __fastcall
TCOMISpecificationTuningSectionT<T>::get_Subsections(void)
{
  Kompasltapi7_tlb::ISpecificationSubsectionsPtr PVal;
  OLECHECK(this->get_Subsections((Kompasltapi7_tlb::ISpecificationSubsectionsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_UseAdditionalBlocks(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationTuningSectionT<T>::get_UseAdditionalBlocks(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_UseAdditionalBlocks((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_UseAdditionalBlocks(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationTuningSectionT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalBlocks(PVal);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall
TCOMISpecificationTuningSectionT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr PVal;
  OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockTuningsPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationTuningSection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E68AA413-CC35-450D-BF35-0F294F59B08C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningSectionDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_SubsectionOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SubsectionOn"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningSectionDispT<T>::get_SubsectionOn(void)
{
  TOLEBOOL PVal;
  this->get_SubsectionOn((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::set_SubsectionOn(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SubsectionOn"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_AttachGeometry(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachGeometry"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningSectionDispT<T>::get_AttachGeometry(void)
{
  TOLEBOOL PVal;
  this->get_AttachGeometry((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::set_AttachGeometry(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachGeometry"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_PutPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PutPosition"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningSectionDispT<T>::get_PutPosition(void)
{
  TOLEBOOL PVal;
  this->get_PutPosition((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::set_PutPosition(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PutPosition"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_SortObjects(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortObjects"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningSectionDispT<T>::get_SortObjects(void)
{
  TOLEBOOL PVal;
  this->get_SortObjects((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::set_SortObjects(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortObjects"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningSectionDispT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  this->get_FirstOnSheet((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_ReserveStringCount(short* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReserveStringCount"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I2:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> short __fastcall
ISpecificationTuningSectionDispT<T>::get_ReserveStringCount(void)
{
  short PVal;
  this->get_ReserveStringCount((short*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::set_ReserveStringCount(short PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReserveStringCount"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I2:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_Subsections(Kompasltapi7_tlb::ISpecificationSubsectionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subsections"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationSubsections**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationSubsectionsPtr __fastcall
ISpecificationTuningSectionDispT<T>::get_Subsections(void)
{
  Kompasltapi7_tlb::ISpecificationSubsectionsPtr PVal;
  this->get_Subsections((Kompasltapi7_tlb::ISpecificationSubsectionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_UseAdditionalBlocks(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseAdditionalBlocks"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationTuningSectionDispT<T>::get_UseAdditionalBlocks(void)
{
  TOLEBOOL PVal;
  this->get_UseAdditionalBlocks((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::set_UseAdditionalBlocks(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseAdditionalBlocks"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockTuningsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlocks"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockTunings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockTuningsPtr __fastcall
ISpecificationTuningSectionDispT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockTuningsPtr PVal;
  this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockTuningsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationTuningSectionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationTuningSectionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationTuningSectionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationTuningSectionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationTuningSectionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationSubsections
// Interface: ISpecificationSubsections
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationSubsectionsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall
TCOMISpecificationSubsectionsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationSubsectionPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationSubsectionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSubsectionsT<T>::Add(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                       Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Name, Number, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall
TCOMISpecificationSubsectionsT<T>::Add(BSTR Name/*[in]*/, short Number/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationSubsectionPtr Result;
  OLECHECK(this->Add(Name, Number, (Kompasltapi7_tlb::ISpecificationSubsectionPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationSubsections
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {56532CB4-BD3F-442C-AFA4-0E6BEB677E61}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationSubsection**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall
ISpecificationSubsectionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationSubsectionPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationSubsectionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::Add(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                       Kompasltapi7_tlb::ISpecificationSubsectionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Number /*[VT_I2:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationSubsection**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationSubsectionPtr __fastcall
ISpecificationSubsectionsDispT<T>::Add(BSTR Name/*[in]*/, short Number/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationSubsectionPtr Result;
  this->Add(Name, Number, (Kompasltapi7_tlb::ISpecificationSubsectionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationSubsectionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSubsectionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationSubsectionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationSubsectionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationSubsectionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSubsectionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationSubsection
// Interface: ISpecificationSubsection
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationSubsectionT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationSubsectionT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSubsectionT<T>::get_Number(short* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> short __fastcall
TCOMISpecificationSubsectionT<T>::get_Number(void)
{
  short PVal;
  OLECHECK(this->get_Number((short*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSubsectionT<T>::Change(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Change(Name, Number, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationSubsectionT<T>::Change(BSTR Name/*[in]*/, short Number/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->Change(Name, Number, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSubsectionT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationSubsectionT<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationSubsection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7F0E5F63-815C-46E5-B99E-C24244566C00}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationSubsectionDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::get_Number(short* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I2:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> short __fastcall
ISpecificationSubsectionDispT<T>::get_Number(void)
{
  short PVal;
  this->get_Number((short*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::Change(BSTR Name/*[in]*/, short Number/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Change"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Number /*[VT_I2:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationSubsectionDispT<T>::Change(BSTR Name/*[in]*/, short Number/*[in]*/)
{
  TOLEBOOL PVal;
  this->Change(Name, Number, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationSubsectionDispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationSubsectionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationSubsectionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationSubsectionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationSubsectionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSubsectionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockTunings
// Interface: IAdditionalBlockTunings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IAdditionalBlockTuningPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockTuningPtr __fastcall
TCOMIAdditionalBlockTuningsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAdditionalBlockTuningPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockTuningPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IAdditionalBlockTunings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8910CC92-AC76-4837-AB7A-5FD3C7B74728}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAdditionalBlockTuningsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IAdditionalBlockTuningPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockTuning**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockTuningPtr __fastcall
IAdditionalBlockTuningsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAdditionalBlockTuningPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockTuningPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IAdditionalBlockTuningsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockTuningsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAdditionalBlockTuningsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAdditionalBlockTuningsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAdditionalBlockTuningsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockTuningsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockTuning
// Interface: IAdditionalBlockTuning
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMIAdditionalBlockTuningT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::get_DocumentName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_DocumentName(PVal);
}

template <class T> BSTR __fastcall
TCOMIAdditionalBlockTuningT<T>::get_DocumentName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_DocumentName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::set_DocumentName(BSTR PVal/*[in]*/)
{
  return (*this)->set_DocumentName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::get_Use(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Use(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAdditionalBlockTuningT<T>::get_Use(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Use((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::set_Use(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Use(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FirstOnSheet(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAdditionalBlockTuningT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FirstOnSheet((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_FirstOnSheet(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockTuningT<T>::get_Sections(Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Sections(PVal);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr __fastcall
TCOMIAdditionalBlockTuningT<T>::get_Sections(void)
{
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr PVal;
  OLECHECK(this->get_Sections((Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAdditionalBlockTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CD5B016-9CE9-4E0A-8902-196D11360536}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockTuningDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_DocumentName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAdditionalBlockTuningDispT<T>::get_DocumentName(void)
{
  BSTR PVal;
  this->get_DocumentName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::set_DocumentName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentName"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_Use(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Use"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAdditionalBlockTuningDispT<T>::get_Use(void)
{
  TOLEBOOL PVal;
  this->get_Use((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::set_Use(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Use"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAdditionalBlockTuningDispT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  this->get_FirstOnSheet((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_Sections(Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sections"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockSectionTunings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr __fastcall
IAdditionalBlockTuningDispT<T>::get_Sections(void)
{
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr PVal;
  this->get_Sections((Kompasltapi7_tlb::IAdditionalBlockSectionTuningsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAdditionalBlockTuningDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAdditionalBlockTuningDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAdditionalBlockTuningDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAdditionalBlockTuningDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockTuningDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockSectionTunings
// Interface: IAdditionalBlockSectionTunings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAdditionalBlockSectionTuningsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr __fastcall
TCOMIAdditionalBlockSectionTuningsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IAdditionalBlockSectionTunings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {43EFA203-F956-43D6-B603-87807DDEFD0A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockSectionTuning**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockSectionTuningPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockSectionTuningsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockSectionTuning
// Interface: IAdditionalBlockSectionTuning
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAdditionalBlockSectionTuningT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMIAdditionalBlockSectionTuningT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockSectionTuningT<T>::get_Use(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Use(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAdditionalBlockSectionTuningT<T>::get_Use(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Use((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockSectionTuningT<T>::set_Use(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Use(PVal);
}

// *********************************************************************//
// DispIntf:  IAdditionalBlockSectionTuning
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E04B8464-C8D6-4BAC-99B5-AE79EBBDB205}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Use(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Use"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Use(void)
{
  TOLEBOOL PVal;
  this->get_Use((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningDispT<T>::set_Use(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Use"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockSectionTuningDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetFormat
// Interface: ISheetFormat
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::get_Format(ksDocumentFormatEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Format(PVal);
}

template <class T> ksDocumentFormatEnum __fastcall
TCOMISheetFormatT<T>::get_Format(void)
{
  ksDocumentFormatEnum PVal;
  OLECHECK(this->get_Format((ksDocumentFormatEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::set_Format(ksDocumentFormatEnum PVal/*[in]*/)
{
  return (*this)->set_Format(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::get_FormatMultiplicity(long* PVal/*[out,retval]*/)
{
  return (*this)->get_FormatMultiplicity(PVal);
}

template <class T> long __fastcall
TCOMISheetFormatT<T>::get_FormatMultiplicity(void)
{
  long PVal;
  OLECHECK(this->get_FormatMultiplicity((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::set_FormatMultiplicity(long PVal/*[in]*/)
{
  return (*this)->set_FormatMultiplicity(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::get_VerticalOrientation(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_VerticalOrientation(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetFormatT<T>::get_VerticalOrientation(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_VerticalOrientation((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::set_VerticalOrientation(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_VerticalOrientation(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::get_FormatWidth(double* PVal/*[out,retval]*/)
{
  return (*this)->get_FormatWidth(PVal);
}

template <class T> double __fastcall
TCOMISheetFormatT<T>::get_FormatWidth(void)
{
  double PVal;
  OLECHECK(this->get_FormatWidth((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::set_FormatWidth(double PVal/*[in]*/)
{
  return (*this)->set_FormatWidth(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::get_FormatHeight(double* PVal/*[out,retval]*/)
{
  return (*this)->get_FormatHeight(PVal);
}

template <class T> double __fastcall
TCOMISheetFormatT<T>::get_FormatHeight(void)
{
  double PVal;
  OLECHECK(this->get_FormatHeight((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetFormatT<T>::set_FormatHeight(double PVal/*[in]*/)
{
  return (*this)->set_FormatHeight(PVal);
}

// *********************************************************************//
// DispIntf:  ISheetFormat
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9CDE694-4C33-4375-A6F6-AE94DC759510}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_Format(ksDocumentFormatEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Format"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDocumentFormatEnum __fastcall
ISheetFormatDispT<T>::get_Format(void)
{
  ksDocumentFormatEnum PVal;
  this->get_Format((ksDocumentFormatEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::set_Format(ksDocumentFormatEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Format"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_FormatMultiplicity(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormatMultiplicity"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetFormatDispT<T>::get_FormatMultiplicity(void)
{
  long PVal;
  this->get_FormatMultiplicity((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::set_FormatMultiplicity(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormatMultiplicity"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_VerticalOrientation(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VerticalOrientation"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetFormatDispT<T>::get_VerticalOrientation(void)
{
  TOLEBOOL PVal;
  this->get_VerticalOrientation((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::set_VerticalOrientation(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VerticalOrientation"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_FormatWidth(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormatWidth"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetFormatDispT<T>::get_FormatWidth(void)
{
  double PVal;
  this->get_FormatWidth((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::set_FormatWidth(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormatWidth"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_FormatHeight(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormatHeight"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetFormatDispT<T>::get_FormatHeight(void)
{
  double PVal;
  this->get_FormatHeight((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::set_FormatHeight(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormatHeight"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetFormatDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetFormatDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetFormatDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetFormatDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetFormatDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnStyles
// Interface: ISpecificationColumnStyles
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationColumnStylesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationColumnStylePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylePtr __fastcall
TCOMISpecificationColumnStylesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnStylePtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnStylePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationColumnStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {41529A95-51F0-44B0-9D55-5753BCEB23BC}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationColumnStylesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISpecificationColumnStylePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumnStyle**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylePtr __fastcall
ISpecificationColumnStylesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnStylePtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnStylePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStylesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationColumnStylesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStylesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStylesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStylesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationColumnStylesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStylesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationColumnStylesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStylesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationColumnStylesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStylesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStylesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnStyle
// Interface: ISpecificationColumnStyle
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationColumnStyleT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ColumnType(PVal);
}

template <class T> ksSpecificationColumnTypeEnum __fastcall
TCOMISpecificationColumnStyleT<T>::get_ColumnType(void)
{
  ksSpecificationColumnTypeEnum PVal;
  OLECHECK(this->get_ColumnType((ksSpecificationColumnTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnStyleT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_Edit(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Edit(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationColumnStyleT<T>::get_Edit(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Edit((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_CalculateSum(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CalculateSum(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationColumnStyleT<T>::get_CalculateSum(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CalculateSum((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_MultiplyToCount(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_MultiplyToCount(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationColumnStyleT<T>::get_MultiplyToCount(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_MultiplyToCount((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_UseForSectionTitle(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_UseForSectionTitle(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationColumnStyleT<T>::get_UseForSectionTitle(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_UseForSectionTitle((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_TextDown(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_TextDown(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationColumnStyleT<T>::get_TextDown(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_TextDown((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_StampLinkID(long* PVal/*[out,retval]*/)
{
  return (*this)->get_StampLinkID(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnStyleT<T>::get_StampLinkID(void)
{
  long PVal;
  OLECHECK(this->get_StampLinkID((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ValueType(PVal);
}

template <class T> ksValueTypeEnum __fastcall
TCOMISpecificationColumnStyleT<T>::get_ValueType(void)
{
  ksValueTypeEnum PVal;
  OLECHECK(this->get_ValueType((ksValueTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeLibraryName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeLibraryName(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeLibraryName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_AttributeLibraryName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey1(long* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeKey1(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey1(void)
{
  long PVal;
  OLECHECK(this->get_AttributeKey1((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey2(long* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeKey2(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey2(void)
{
  long PVal;
  OLECHECK(this->get_AttributeKey2((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey3(long* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeKey3(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey3(void)
{
  long PVal;
  OLECHECK(this->get_AttributeKey3((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey4(long* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeKey4(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnStyleT<T>::get_AttributeKey4(void)
{
  long PVal;
  OLECHECK(this->get_AttributeKey4((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_MinValue(double* PVal/*[out,retval]*/)
{
  return (*this)->get_MinValue(PVal);
}

template <class T> double __fastcall
TCOMISpecificationColumnStyleT<T>::get_MinValue(void)
{
  double PVal;
  OLECHECK(this->get_MinValue((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_MaxValue(double* PVal/*[out,retval]*/)
{
  return (*this)->get_MaxValue(PVal);
}

template <class T> double __fastcall
TCOMISpecificationColumnStyleT<T>::get_MaxValue(void)
{
  double PVal;
  OLECHECK(this->get_MaxValue((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnStyleT<T>::get_UseIn3D(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_UseIn3D(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationColumnStyleT<T>::get_UseIn3D(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_UseIn3D((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationColumnStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {16839CAA-3AFB-49A4-A19A-C61963967649}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationColumnStyleDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnType"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationColumnTypeEnum __fastcall
ISpecificationColumnStyleDispT<T>::get_ColumnType(void)
{
  ksSpecificationColumnTypeEnum PVal;
  this->get_ColumnType((ksSpecificationColumnTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStyleDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_Edit(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edit"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationColumnStyleDispT<T>::get_Edit(void)
{
  TOLEBOOL PVal;
  this->get_Edit((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_CalculateSum(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CalculateSum"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationColumnStyleDispT<T>::get_CalculateSum(void)
{
  TOLEBOOL PVal;
  this->get_CalculateSum((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_MultiplyToCount(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MultiplyToCount"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationColumnStyleDispT<T>::get_MultiplyToCount(void)
{
  TOLEBOOL PVal;
  this->get_MultiplyToCount((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_UseForSectionTitle(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseForSectionTitle"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationColumnStyleDispT<T>::get_UseForSectionTitle(void)
{
  TOLEBOOL PVal;
  this->get_UseForSectionTitle((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_TextDown(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDown"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationColumnStyleDispT<T>::get_TextDown(void)
{
  TOLEBOOL PVal;
  this->get_TextDown((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_StampLinkID(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StampLinkID"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStyleDispT<T>::get_StampLinkID(void)
{
  long PVal;
  this->get_StampLinkID((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValueType"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksValueTypeEnum __fastcall
ISpecificationColumnStyleDispT<T>::get_ValueType(void)
{
  ksValueTypeEnum PVal;
  this->get_ValueType((ksValueTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeLibraryName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeLibraryName"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeLibraryName(void)
{
  BSTR PVal;
  this->get_AttributeLibraryName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey1(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeKey1"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey1(void)
{
  long PVal;
  this->get_AttributeKey1((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey2(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeKey2"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey2(void)
{
  long PVal;
  this->get_AttributeKey2((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey3(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeKey3"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey3(void)
{
  long PVal;
  this->get_AttributeKey3((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey4(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeKey4"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStyleDispT<T>::get_AttributeKey4(void)
{
  long PVal;
  this->get_AttributeKey4((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_MinValue(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MinValue"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationColumnStyleDispT<T>::get_MinValue(void)
{
  double PVal;
  this->get_MinValue((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_MaxValue(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MaxValue"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationColumnStyleDispT<T>::get_MaxValue(void)
{
  double PVal;
  this->get_MaxValue((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_UseIn3D(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseIn3D"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationColumnStyleDispT<T>::get_UseIn3D(void)
{
  TOLEBOOL PVal;
  this->get_UseIn3D((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationColumnStyleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationColumnStyleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationColumnStyleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationColumnStyleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnStyleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationSectionStyles
// Interface: ISpecificationSectionStyles
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationSectionStylesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISpecificationSectionStylePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationSectionStylePtr __fastcall
TCOMISpecificationSectionStylesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationSectionStylePtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationSectionStylePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationSectionStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {24AE8484-F4F4-4059-AFC7-9492A64C88E8}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationSectionStylesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISpecificationSectionStylePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationSectionStyle**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationSectionStylePtr __fastcall
ISpecificationSectionStylesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationSectionStylePtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationSectionStylePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStylesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationSectionStylesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStylesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSectionStylesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStylesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationSectionStylesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStylesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationSectionStylesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStylesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationSectionStylesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStylesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSectionStylesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationSectionStyle
// Interface: ISpecificationSectionStyle
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecificationSectionStyleT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMISpecificationSectionStyleT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_SortColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SortColumnType(PVal);
}

template <class T> ksSpecificationColumnTypeEnum __fastcall
TCOMISpecificationSectionStyleT<T>::get_SortColumnType(void)
{
  ksSpecificationColumnTypeEnum PVal;
  OLECHECK(this->get_SortColumnType((ksSpecificationColumnTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_SortColumnNumber(long* PVal/*[out,retval]*/)
{
  return (*this)->get_SortColumnNumber(PVal);
}

template <class T> long __fastcall
TCOMISpecificationSectionStyleT<T>::get_SortColumnNumber(void)
{
  long PVal;
  OLECHECK(this->get_SortColumnNumber((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_FillDataFromStamp(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FillDataFromStamp(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationSectionStyleT<T>::get_FillDataFromStamp(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FillDataFromStamp((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_SortType(ksSortTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SortType(PVal);
}

template <class T> ksSortTypeEnum __fastcall
TCOMISpecificationSectionStyleT<T>::get_SortType(void)
{
  ksSortTypeEnum PVal;
  OLECHECK(this->get_SortType((ksSortTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Columns(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
TCOMISpecificationSectionStyleT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  OLECHECK(this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalColumns(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
TCOMISpecificationSectionStyleT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  OLECHECK(this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationSectionStyleT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalBlocks(PVal);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall
TCOMISpecificationSectionStyleT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr PVal;
  OLECHECK(this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockStylesPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationSectionStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4B61FC7F-4826-4B58-8CCB-7D459AD0BE7B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationSectionStyleDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSectionStyleDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_SortColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortColumnType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationColumnTypeEnum __fastcall
ISpecificationSectionStyleDispT<T>::get_SortColumnType(void)
{
  ksSpecificationColumnTypeEnum PVal;
  this->get_SortColumnType((ksSpecificationColumnTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_SortColumnNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortColumnNumber"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSectionStyleDispT<T>::get_SortColumnNumber(void)
{
  long PVal;
  this->get_SortColumnNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_FillDataFromStamp(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FillDataFromStamp"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationSectionStyleDispT<T>::get_FillDataFromStamp(void)
{
  TOLEBOOL PVal;
  this->get_FillDataFromStamp((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_SortType(ksSortTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortType"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSortTypeEnum __fastcall
ISpecificationSectionStyleDispT<T>::get_SortType(void)
{
  ksSortTypeEnum PVal;
  this->get_SortType((ksSortTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Columns"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumnStyles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
ISpecificationSectionStyleDispT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnStylesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalColumns"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumnStyles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnStylesPtr __fastcall
ISpecificationSectionStyleDispT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnStylesPtr PVal;
  this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnStylesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_AdditionalBlocks(Kompasltapi7_tlb::IAdditionalBlockStylesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlocks"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockStyles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockStylesPtr __fastcall
ISpecificationSectionStyleDispT<T>::get_AdditionalBlocks(void)
{
  Kompasltapi7_tlb::IAdditionalBlockStylesPtr PVal;
  this->get_AdditionalBlocks((Kompasltapi7_tlb::IAdditionalBlockStylesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationSectionStyleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationSectionStyleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationSectionStyleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationSectionStyleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationSectionStyleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockStyles
// Interface: IAdditionalBlockStyles
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAdditionalBlockStylesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IAdditionalBlockStylePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockStylePtr __fastcall
TCOMIAdditionalBlockStylesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAdditionalBlockStylePtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockStylePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IAdditionalBlockStyles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {90E2FBEC-A56F-423C-B89F-479673EDD895}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAdditionalBlockStylesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IAdditionalBlockStylePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAdditionalBlockStyle**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAdditionalBlockStylePtr __fastcall
IAdditionalBlockStylesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAdditionalBlockStylePtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IAdditionalBlockStylePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStylesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IAdditionalBlockStylesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStylesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockStylesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStylesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAdditionalBlockStylesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStylesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAdditionalBlockStylesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStylesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAdditionalBlockStylesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStylesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockStylesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAdditionalBlockStyle
// Interface: IAdditionalBlockStyle
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAdditionalBlockStyleT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIAdditionalBlockStyleT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAdditionalBlockStyleT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMIAdditionalBlockStyleT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAdditionalBlockStyle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2A43FA6-9BCE-4468-9662-811A6255E220}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAdditionalBlockStyleDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAdditionalBlockStyleDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStyleDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockStyleDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStyleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAdditionalBlockStyleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStyleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAdditionalBlockStyleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStyleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAdditionalBlockStyleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAdditionalBlockStyleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAdditionalBlockStyleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationBaseObjects
// Interface: ISpecificationBaseObjects
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall
TCOMISpecificationBaseObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectsT<T>::Add(long SectionNumb/*[in]*/, double AttrNumb/*[in]*/, 
                                       Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(SectionNumb, AttrNumb, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall
TCOMISpecificationBaseObjectsT<T>::Add(long SectionNumb/*[in]*/, double AttrNumb/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
  OLECHECK(this->Add(SectionNumb, AttrNumb, (Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectsT<T>::GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                                  TOLEBOOL Equal/*[in]*/, 
                                                                  long SectionNumb/*[in]*/, 
                                                                  double AttrNumb/*[in]*/, 
                                                                  TVariant* PVal/*[out,retval]*/)
{
  return (*this)->GetSpecificationObjectsForGeom(PGeom, Equal, SectionNumb, AttrNumb, PVal);
}

template <class T> TVariant __fastcall
TCOMISpecificationBaseObjectsT<T>::GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                                  TOLEBOOL Equal/*[in]*/, 
                                                                  long SectionNumb/*[in]*/, 
                                                                  double AttrNumb/*[in]*/)
{
  TVariant PVal;
  OLECHECK(this->GetSpecificationObjectsForGeom(PGeom, Equal, SectionNumb, AttrNumb, (TVariant*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationBaseObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2B97D19-3A0B-4C9F-A6AC-DEFFAFE0D1C2}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationBaseObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall
ISpecificationBaseObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::Add(long SectionNumb/*[in]*/, double AttrNumb/*[in]*/, 
                                       Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = SectionNumb /*[VT_I4:0]*/;
  _args[2] = AttrNumb /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationBaseObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall
ISpecificationBaseObjectsDispT<T>::Add(long SectionNumb/*[in]*/, double AttrNumb/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
  this->Add(SectionNumb, AttrNumb, (Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                                  TOLEBOOL Equal/*[in]*/, 
                                                                  long SectionNumb/*[in]*/, 
                                                                  double AttrNumb/*[in]*/, 
                                                                  TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetSpecificationObjectsForGeom"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = PGeom /*[VT_VARIANT:0]*/;
  _args[2] = Equal /*[VT_BOOL:0]*/;
  _args[3] = SectionNumb /*[VT_I4:0]*/;
  _args[4] = AttrNumb /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISpecificationBaseObjectsDispT<T>::GetSpecificationObjectsForGeom(TVariantInParam PGeom/*[in]*/, 
                                                                  TOLEBOOL Equal/*[in]*/, 
                                                                  long SectionNumb/*[in]*/, 
                                                                  double AttrNumb/*[in]*/)
{
  TVariant PVal;
  this->GetSpecificationObjectsForGeom(PGeom, Equal, SectionNumb, AttrNumb, (TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationBaseObjectsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationBaseObjectsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationBaseObjectsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationBaseObjectsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationObject
// Interface: ISpecificationObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ObjectType(PVal);
}

template <class T> ksSpecificationObjectTypeEnum __fastcall
TCOMISpecificationObjectT<T>::get_ObjectType(void)
{
  ksSpecificationObjectTypeEnum PVal;
  OLECHECK(this->get_ObjectType((ksSpecificationObjectTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_Section(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Section(PVal);
}

template <class T> long __fastcall
TCOMISpecificationObjectT<T>::get_Section(void)
{
  long PVal;
  OLECHECK(this->get_Section((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_Subsection(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Subsection(PVal);
}

template <class T> long __fastcall
TCOMISpecificationObjectT<T>::get_Subsection(void)
{
  long PVal;
  OLECHECK(this->get_Subsection((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::set_Subsection(long PVal/*[in]*/)
{
  return (*this)->set_Subsection(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_AdditionalSection(long* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalSection(PVal);
}

template <class T> long __fastcall
TCOMISpecificationObjectT<T>::get_AdditionalSection(void)
{
  long PVal;
  OLECHECK(this->get_AdditionalSection((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::set_AdditionalSection(long PVal/*[in]*/)
{
  return (*this)->set_AdditionalSection(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_AdditionalBlock(long* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalBlock(PVal);
}

template <class T> long __fastcall
TCOMISpecificationObjectT<T>::get_AdditionalBlock(void)
{
  long PVal;
  OLECHECK(this->get_AdditionalBlock((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::set_AdditionalBlock(long PVal/*[in]*/)
{
  return (*this)->set_AdditionalBlock(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_NestedSection(long* PVal/*[out,retval]*/)
{
  return (*this)->get_NestedSection(PVal);
}

template <class T> long __fastcall
TCOMISpecificationObjectT<T>::get_NestedSection(void)
{
  long PVal;
  OLECHECK(this->get_NestedSection((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::set_NestedSection(long PVal/*[in]*/)
{
  return (*this)->set_NestedSection(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_NestedBlock(long* PVal/*[out,retval]*/)
{
  return (*this)->get_NestedBlock(PVal);
}

template <class T> long __fastcall
TCOMISpecificationObjectT<T>::get_NestedBlock(void)
{
  long PVal;
  OLECHECK(this->get_NestedBlock((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::set_NestedBlock(long PVal/*[in]*/)
{
  return (*this)->set_NestedBlock(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_BlockNumberByIndex(long Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->get_BlockNumberByIndex(Val, PVal);
}

template <class T> long __fastcall
TCOMISpecificationObjectT<T>::get_BlockNumberByIndex(long Val/*[in]*/)
{
  long PVal;
  OLECHECK(this->get_BlockNumberByIndex(Val, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_UniqueNumber(double* PVal/*[out,retval]*/)
{
  return (*this)->get_UniqueNumber(PVal);
}

template <class T> double __fastcall
TCOMISpecificationObjectT<T>::get_UniqueNumber(void)
{
  double PVal;
  OLECHECK(this->get_UniqueNumber((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_State(PVal);
}

template <class T> ksSpecificationObjectStateEnum __fastcall
TCOMISpecificationObjectT<T>::get_State(void)
{
  ksSpecificationObjectStateEnum PVal;
  OLECHECK(this->get_State((ksSpecificationObjectStateEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FirstOnSheet(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationObjectT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FirstOnSheet((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_FirstOnSheet(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_IncrementPosition(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationObjectT<T>::get_IncrementPosition(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_IncrementPosition((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::set_IncrementPosition(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_IncrementPosition(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Columns(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
TCOMISpecificationObjectT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  OLECHECK(this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalColumns(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
TCOMISpecificationObjectT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  OLECHECK(this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AttachedDocuments(PVal);
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall
TCOMISpecificationObjectT<T>::get_AttachedDocuments(void)
{
  Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
  OLECHECK(this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationObjectT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationObjectT<T>::Delete(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMISpecificationObjectT<T>::Edit(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Edit(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationObjectT<T>::Edit(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Edit((TOLEBOOL*)&PRes));
  return PRes;
}

// *********************************************************************//
// DispIntf:  ISpecificationObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {72EB4E8E-7952-4B36-852B-4816B7B5AFEE}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectType"), DISPID(100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationObjectTypeEnum __fastcall
ISpecificationObjectDispT<T>::get_ObjectType(void)
{
  ksSpecificationObjectTypeEnum PVal;
  this->get_ObjectType((ksSpecificationObjectTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_Section(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Section"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_Section(void)
{
  long PVal;
  this->get_Section((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_Subsection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subsection"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_Subsection(void)
{
  long PVal;
  this->get_Subsection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::set_Subsection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subsection"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_AdditionalSection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalSection"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_AdditionalSection(void)
{
  long PVal;
  this->get_AdditionalSection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::set_AdditionalSection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalSection"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_AdditionalBlock(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlock"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_AdditionalBlock(void)
{
  long PVal;
  this->get_AdditionalBlock((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::set_AdditionalBlock(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlock"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_NestedSection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedSection"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_NestedSection(void)
{
  long PVal;
  this->get_NestedSection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::set_NestedSection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedSection"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_NestedBlock(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedBlock"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_NestedBlock(void)
{
  long PVal;
  this->get_NestedBlock((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::set_NestedBlock(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedBlock"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_BlockNumberByIndex(long Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockNumberByIndex"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_BlockNumberByIndex(long Val/*[in]*/)
{
  long PVal;
  this->get_BlockNumberByIndex(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_UniqueNumber(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UniqueNumber"), DISPID(108));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationObjectDispT<T>::get_UniqueNumber(void)
{
  double PVal;
  this->get_UniqueNumber((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("State"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationObjectStateEnum __fastcall
ISpecificationObjectDispT<T>::get_State(void)
{
  ksSpecificationObjectStateEnum PVal;
  this->get_State((ksSpecificationObjectStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationObjectDispT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  this->get_FirstOnSheet((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(110));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncrementPosition"), DISPID(111));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationObjectDispT<T>::get_IncrementPosition(void)
{
  TOLEBOOL PVal;
  this->get_IncrementPosition((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::set_IncrementPosition(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncrementPosition"), DISPID(111));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Columns"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumns**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
ISpecificationObjectDispT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalColumns"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumns**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
ISpecificationObjectDispT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachedDocuments"), DISPID(114));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttachedDocuments**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall
ISpecificationObjectDispT<T>::get_AttachedDocuments(void)
{
  Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
  this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(115));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationObjectDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(116));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationObjectDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::Edit(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edit"), DISPID(117));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationObjectDispT<T>::Edit(void)
{
  TOLEBOOL PRes;
  this->Edit((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationBaseObject
// Interface: ISpecificationBaseObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_Draw(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Draw(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationBaseObjectT<T>::get_Draw(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Draw((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::set_Draw(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Draw(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_DrawPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DrawPosition(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationBaseObjectT<T>::get_DrawPosition(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DrawPosition((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::set_DrawPosition(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DrawPosition(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_Performance(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Performance(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationBaseObjectT<T>::get_Performance(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Performance((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::set_Performance(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Performance(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/)
{
  return (*this)->get_CommentObjects(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall
TCOMISpecificationBaseObjectT<T>::get_CommentObjects(void)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr Result;
  OLECHECK(this->get_CommentObjects((Kompasltapi7_tlb::ISpecificationCommentObjectsPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_Documents(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Documents(PVal);
}

template <class T> TVariant __fastcall
TCOMISpecificationBaseObjectT<T>::get_Documents(void)
{
  TVariant PVal;
  OLECHECK(this->get_Documents((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_AttributeNumber(double* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeNumber(PVal);
}

template <class T> double __fastcall
TCOMISpecificationBaseObjectT<T>::get_AttributeNumber(void)
{
  double PVal;
  OLECHECK(this->get_AttributeNumber((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::set_AttributeNumber(double PVal/*[in]*/)
{
  return (*this)->set_AttributeNumber(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                                   long BlockNumber/*[in]*/, 
                                                   double* PVal/*[out,retval]*/)
{
  return (*this)->get_SummaryCount(ColumnTypeNumber, BlockNumber, PVal);
}

template <class T> double __fastcall
TCOMISpecificationBaseObjectT<T>::get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                                   long BlockNumber/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_SummaryCount(ColumnTypeNumber, BlockNumber, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetMaterial(Material, Density, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationBaseObjectT<T>::SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetMaterial(Material, Density, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::get_Geometry(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Geometry(PVal);
}

template <class T> TVariant __fastcall
TCOMISpecificationBaseObjectT<T>::get_Geometry(void)
{
  TVariant PVal;
  OLECHECK(this->get_Geometry((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::set_Geometry(TVariant PVal)
{
  return (*this)->set_Geometry(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::IncludeGeometry(TVariantInParam PVal/*[in]*/, 
                                                  TOLEBOOL FillText/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->IncludeGeometry(PVal, FillText, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationBaseObjectT<T>::IncludeGeometry(TVariantInParam PVal/*[in]*/, 
                                                  TOLEBOOL FillText/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->IncludeGeometry(PVal, FillText, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationBaseObjectT<T>::ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                                TOLEBOOL ClearLeaders/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ClearGeometry(ClearGeometry, ClearLeaders, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationBaseObjectT<T>::ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                                TOLEBOOL ClearLeaders/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ClearGeometry(ClearGeometry, ClearLeaders, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationBaseObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {49994ED8-96BA-4D9D-B642-5F0F1E3FED16}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Draw(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Draw"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::get_Draw(void)
{
  TOLEBOOL PVal;
  this->get_Draw((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_Draw(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Draw"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_DrawPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawPosition"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::get_DrawPosition(void)
{
  TOLEBOOL PVal;
  this->get_DrawPosition((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_DrawPosition(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawPosition"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Performance(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Performance"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::get_Performance(void)
{
  TOLEBOOL PVal;
  this->get_Performance((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_Performance(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Performance"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_CommentObjects(Kompasltapi7_tlb::ISpecificationCommentObjectsPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CommentObjects"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationCommentObjects**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectsPtr __fastcall
ISpecificationBaseObjectDispT<T>::get_CommentObjects(void)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectsPtr Result;
  this->get_CommentObjects((Kompasltapi7_tlb::ISpecificationCommentObjectsPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Documents(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Documents"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISpecificationBaseObjectDispT<T>::get_Documents(void)
{
  TVariant PVal;
  this->get_Documents((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_AttributeNumber(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeNumber"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationBaseObjectDispT<T>::get_AttributeNumber(void)
{
  double PVal;
  this->get_AttributeNumber((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_AttributeNumber(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeNumber"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                                   long BlockNumber/*[in]*/, 
                                                   double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SummaryCount"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = ColumnTypeNumber /*[VT_I4:0]*/;
  _args[2] = BlockNumber /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationBaseObjectDispT<T>::get_SummaryCount(long ColumnTypeNumber/*[in]*/, 
                                                   long BlockNumber/*[in]*/)
{
  double PVal;
  this->get_SummaryCount(ColumnTypeNumber, BlockNumber, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetMaterial"), DISPID(8));
  TAutoArgs<2> _args;
  _args[1] = Material /*[VT_BSTR:0]*/;
  _args[2] = Density /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::SetMaterial(BSTR Material/*[in]*/, double Density/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetMaterial(Material, Density, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Geometry(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Geometry"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISpecificationBaseObjectDispT<T>::get_Geometry(void)
{
  TVariant PVal;
  this->get_Geometry((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_Geometry(TVariant PVal)
{
  _TDispID _dispid(*this, OLETEXT("Geometry"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::IncludeGeometry(TVariantInParam PVal/*[in]*/, 
                                                  TOLEBOOL FillText/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncludeGeometry"), DISPID(10));
  TAutoArgs<2> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  _args[2] = FillText /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::IncludeGeometry(TVariantInParam PVal/*[in]*/, 
                                                  TOLEBOOL FillText/*[in]*/)
{
  TOLEBOOL Result;
  this->IncludeGeometry(PVal, FillText, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                                TOLEBOOL ClearLeaders/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClearGeometry"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = ClearGeometry /*[VT_BOOL:0]*/;
  _args[2] = ClearLeaders /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::ClearGeometry(TOLEBOOL ClearGeometry/*[in]*/, 
                                                TOLEBOOL ClearLeaders/*[in]*/)
{
  TOLEBOOL Result;
  this->ClearGeometry(ClearGeometry, ClearLeaders, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectType"), DISPID(100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationObjectTypeEnum __fastcall
ISpecificationBaseObjectDispT<T>::get_ObjectType(void)
{
  ksSpecificationObjectTypeEnum PVal;
  this->get_ObjectType((ksSpecificationObjectTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Section(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Section"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_Section(void)
{
  long PVal;
  this->get_Section((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Subsection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subsection"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_Subsection(void)
{
  long PVal;
  this->get_Subsection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_Subsection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subsection"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_AdditionalSection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalSection"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_AdditionalSection(void)
{
  long PVal;
  this->get_AdditionalSection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_AdditionalSection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalSection"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_AdditionalBlock(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlock"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_AdditionalBlock(void)
{
  long PVal;
  this->get_AdditionalBlock((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_AdditionalBlock(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlock"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_NestedSection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedSection"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_NestedSection(void)
{
  long PVal;
  this->get_NestedSection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_NestedSection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedSection"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_NestedBlock(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedBlock"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_NestedBlock(void)
{
  long PVal;
  this->get_NestedBlock((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_NestedBlock(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedBlock"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_BlockNumberByIndex(long Val/*[in]*/, 
                                                         long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockNumberByIndex"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_BlockNumberByIndex(long Val/*[in]*/)
{
  long PVal;
  this->get_BlockNumberByIndex(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_UniqueNumber(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UniqueNumber"), DISPID(108));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationBaseObjectDispT<T>::get_UniqueNumber(void)
{
  double PVal;
  this->get_UniqueNumber((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("State"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationObjectStateEnum __fastcall
ISpecificationBaseObjectDispT<T>::get_State(void)
{
  ksSpecificationObjectStateEnum PVal;
  this->get_State((ksSpecificationObjectStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  this->get_FirstOnSheet((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(110));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncrementPosition"), DISPID(111));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::get_IncrementPosition(void)
{
  TOLEBOOL PVal;
  this->get_IncrementPosition((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::set_IncrementPosition(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncrementPosition"), DISPID(111));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Columns"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumns**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
ISpecificationBaseObjectDispT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalColumns"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumns**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
ISpecificationBaseObjectDispT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachedDocuments"), DISPID(114));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttachedDocuments**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall
ISpecificationBaseObjectDispT<T>::get_AttachedDocuments(void)
{
  Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
  this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(115));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(116));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::Edit(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edit"), DISPID(117));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationBaseObjectDispT<T>::Edit(void)
{
  TOLEBOOL PRes;
  this->Edit((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationBaseObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationBaseObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationBaseObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationBaseObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationBaseObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumns
// Interface: ISpecificationColumns
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationColumnsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall
TCOMISpecificationColumnsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnsT<T>::get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                          long ColumnNumber/*[in]*/, long BlockNumber/*[in]*/, 
                                          Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Column(ColumnType, ColumnNumber, BlockNumber, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall
TCOMISpecificationColumnsT<T>::get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                          long ColumnNumber/*[in]*/, long BlockNumber/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnPtr Result;
  OLECHECK(this->get_Column(ColumnType, ColumnNumber, BlockNumber, (Kompasltapi7_tlb::ISpecificationColumnPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationColumns
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9F44BF03-DE25-4DDE-ADA0-92384199C100}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumn**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall
ISpecificationColumnsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/
                                          , long ColumnNumber/*[in]*/, long BlockNumber/*[in]*/, 
                                          Kompasltapi7_tlb::ISpecificationColumnPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Column"), DISPID(1));
  TAutoArgs<3> _args;
  _args[1] = (int)ColumnType /*[VT_USERDEFINED:0]*/;
  _args[2] = ColumnNumber /*[VT_I4:0]*/;
  _args[3] = BlockNumber /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumn**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnPtr __fastcall
ISpecificationColumnsDispT<T>::get_Column(ksSpecificationColumnTypeEnum ColumnType/*[in]*/, 
                                          long ColumnNumber/*[in]*/, long BlockNumber/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnPtr Result;
  this->get_Column(ColumnType, ColumnNumber, BlockNumber, (Kompasltapi7_tlb::ISpecificationColumnPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationColumnsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationColumnsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationColumnsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationColumnsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationColumnsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumn
// Interface: ISpecificationColumn
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ColumnType(PVal);
}

template <class T> ksSpecificationColumnTypeEnum __fastcall
TCOMISpecificationColumnT<T>::get_ColumnType(void)
{
  ksSpecificationColumnTypeEnum PVal;
  OLECHECK(this->get_ColumnType((ksSpecificationColumnTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_ColumnTypeNumber(long* PVal/*[out,retval]*/)
{
  return (*this)->get_ColumnTypeNumber(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnT<T>::get_ColumnTypeNumber(void)
{
  long PVal;
  OLECHECK(this->get_ColumnTypeNumber((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_BlockNumber(long* PVal/*[out,retval]*/)
{
  return (*this)->get_BlockNumber(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnT<T>::get_BlockNumber(void)
{
  long PVal;
  OLECHECK(this->get_BlockNumber((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMISpecificationColumnT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ValueType(PVal);
}

template <class T> ksValueTypeEnum __fastcall
TCOMISpecificationColumnT<T>::get_ValueType(void)
{
  ksValueTypeEnum PVal;
  OLECHECK(this->get_ValueType((ksValueTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_ColumnItems(Kompasltapi7_tlb::ISpecificationColumnItemsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_ColumnItems(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnItemsPtr __fastcall
TCOMISpecificationColumnT<T>::get_ColumnItems(void)
{
  Kompasltapi7_tlb::ISpecificationColumnItemsPtr PVal;
  OLECHECK(this->get_ColumnItems((Kompasltapi7_tlb::ISpecificationColumnItemsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_AttributeNumber(double* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeNumber(PVal);
}

template <class T> double __fastcall
TCOMISpecificationColumnT<T>::get_AttributeNumber(void)
{
  double PVal;
  OLECHECK(this->get_AttributeNumber((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::set_AttributeNumber(double PVal/*[in]*/)
{
  return (*this)->set_AttributeNumber(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMISpecificationColumnT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationColumn
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3ECFB777-2645-42B5-A6ED-111688433B26}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_ColumnType(ksSpecificationColumnTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationColumnTypeEnum __fastcall
ISpecificationColumnDispT<T>::get_ColumnType(void)
{
  ksSpecificationColumnTypeEnum PVal;
  this->get_ColumnType((ksSpecificationColumnTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_ColumnTypeNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnTypeNumber"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnDispT<T>::get_ColumnTypeNumber(void)
{
  long PVal;
  this->get_ColumnTypeNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_BlockNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockNumber"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnDispT<T>::get_BlockNumber(void)
{
  long PVal;
  this->get_BlockNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValueType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksValueTypeEnum __fastcall
ISpecificationColumnDispT<T>::get_ValueType(void)
{
  ksValueTypeEnum PVal;
  this->get_ValueType((ksValueTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_ColumnItems(Kompasltapi7_tlb::ISpecificationColumnItemsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnItems"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumnItems**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnItemsPtr __fastcall
ISpecificationColumnDispT<T>::get_ColumnItems(void)
{
  Kompasltapi7_tlb::ISpecificationColumnItemsPtr PVal;
  this->get_ColumnItems((Kompasltapi7_tlb::ISpecificationColumnItemsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_AttributeNumber(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeNumber"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationColumnDispT<T>::get_AttributeNumber(void)
{
  double PVal;
  this->get_AttributeNumber((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::set_AttributeNumber(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeNumber"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ISpecificationColumnDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationColumnDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationColumnDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationColumnDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationColumnDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnItems
// Interface: ISpecificationColumnItems
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::ISpecificationColumnItemPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnItemPtr __fastcall
TCOMISpecificationColumnItemsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnItemPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnItemPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationColumnItems
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F4BAB79A-8A35-44D5-BE44-C566E444F342}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationColumnItemsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                            Kompasltapi7_tlb::ISpecificationColumnItemPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumnItem**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnItemPtr __fastcall
ISpecificationColumnItemsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationColumnItemPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationColumnItemPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationColumnItemsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnItemsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationColumnItemsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationColumnItemsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationColumnItemsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnItemsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationColumnItem
// Interface: ISpecificationColumnItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemT<T>::get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ValueType(PVal);
}

template <class T> ksValueTypeEnum __fastcall
TCOMISpecificationColumnItemT<T>::get_ValueType(void)
{
  ksValueTypeEnum PVal;
  OLECHECK(this->get_ValueType((ksValueTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemT<T>::get_Key(short* PVal/*[out,retval]*/)
{
  return (*this)->get_Key(PVal);
}

template <class T> short __fastcall
TCOMISpecificationColumnItemT<T>::get_Key(void)
{
  short PVal;
  OLECHECK(this->get_Key((short*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemT<T>::set_Key(short PVal/*[in]*/)
{
  return (*this)->set_Key(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationColumnItemT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemT<T>::set_Visible(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Value(PVal);
}

template <class T> TVariant __fastcall
TCOMISpecificationColumnItemT<T>::get_Value(void)
{
  TVariant PVal;
  OLECHECK(this->get_Value((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationColumnItemT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Value(PVal);
}

// *********************************************************************//
// DispIntf:  ISpecificationColumnItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2BABDD01-EACA-4137-9749-25B8C5E230EE}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_ValueType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ValueType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksValueTypeEnum __fastcall
ISpecificationColumnItemDispT<T>::get_ValueType(void)
{
  ksValueTypeEnum PVal;
  this->get_ValueType((ksValueTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_Key(short* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Key"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I2:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> short __fastcall
ISpecificationColumnItemDispT<T>::get_Key(void)
{
  short PVal;
  this->get_Key((short*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::set_Key(short PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Key"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I2:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationColumnItemDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::set_Visible(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISpecificationColumnItemDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationColumnItemDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationColumnItemDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationColumnItemDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationColumnItemDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationColumnItemDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIText
// Interface: IText
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITextT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMITextT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::get_TextLines(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_TextLines(Result);
}

template <class T> TVariant __fastcall
TCOMITextT<T>::get_TextLines(void)
{
  TVariant Result;
  OLECHECK(this->get_TextLines((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::get_Count(long* Result/*[out,retval]*/)
{
  return (*this)->get_Count(Result);
}

template <class T> long __fastcall
TCOMITextT<T>::get_Count(void)
{
  long Result;
  OLECHECK(this->get_Count((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::get_TextLine(long Index/*[in]*/, 
                            Kompasltapi7_tlb::ITextLinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_TextLine(Index, Result);
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
TCOMITextT<T>::get_TextLine(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Result;
  OLECHECK(this->get_TextLine(Index, (Kompasltapi7_tlb::ITextLinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::Add(Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
TCOMITextT<T>::Add(void)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::ITextLinePtr*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::AddBefore(long Index/*[in]*/, Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  return (*this)->AddBefore(Index, Value);
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
TCOMITextT<T>::AddBefore(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  OLECHECK(this->AddBefore(Index, (Kompasltapi7_tlb::ITextLinePtr*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::get_Str(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Str(PVal);
}

template <class T> BSTR __fastcall
TCOMITextT<T>::get_Str(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Str((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::set_Str(BSTR PVal/*[in]*/)
{
  return (*this)->set_Str(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::Clear(TOLEBOOL* Value/*[out,retval]*/)
{
  return (*this)->Clear(Value);
}

template <class T> TOLEBOOL __fastcall
TCOMITextT<T>::Clear(void)
{
  TOLEBOOL Value;
  OLECHECK(this->Clear((TOLEBOOL*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::AddTextLine(ksTextLineType Type/*[in]*/, BSTR FileName/*[in]*/, 
                           Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  return (*this)->AddTextLine(Type, FileName, Value);
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
TCOMITextT<T>::AddTextLine(ksTextLineType Type/*[in]*/, BSTR FileName/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  OLECHECK(this->AddTextLine(Type, FileName, (Kompasltapi7_tlb::ITextLinePtr*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                 long Index/*[in]*/, BSTR FileName/*[in]*/, 
                                 Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  return (*this)->AddTextLineBefore(Type, Index, FileName, Value);
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
TCOMITextT<T>::AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                 long Index/*[in]*/, BSTR FileName/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  OLECHECK(this->AddTextLineBefore(Type, Index, FileName, (Kompasltapi7_tlb::ITextLinePtr*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, TOLEBOOL Case/*[in,def,opt]*/, 
                       TOLEBOOL WordOnly/*[in,def,opt]*/, TOLEBOOL ReplaceAll/*[in,def,opt]*/, 
                       TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Replace(SrcText, NewText, Case, WordOnly, ReplaceAll, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITextT<T>::Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, TOLEBOOL Case/*[in,def,opt]*/, 
                       TOLEBOOL WordOnly/*[in,def,opt]*/, TOLEBOOL ReplaceAll/*[in,def,opt]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Replace(SrcText, NewText, Case, WordOnly, ReplaceAll, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextT<T>::Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/, TOLEBOOL* Value/*[out,retval]*/)
{
  return (*this)->Assign(Other, Value);
}

template <class T> TOLEBOOL __fastcall
TCOMITextT<T>::Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/)
{
  TOLEBOOL Value;
  OLECHECK(this->Assign(Other, (TOLEBOOL*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {99B840FC-0150-4DAD-BC0E-AD481BAAB8C2}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITextDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_TextLines(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextLines"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ITextDispT<T>::get_TextLines(void)
{
  TVariant Result;
  this->get_TextLines((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_Count(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextDispT<T>::get_Count(void)
{
  long Result;
  this->get_Count((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_TextLine(long Index/*[in]*/, 
                            Kompasltapi7_tlb::ITextLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextLine"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
ITextDispT<T>::get_TextLine(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Result;
  this->get_TextLine(Index, (Kompasltapi7_tlb::ITextLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::Add(Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
ITextDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  this->Add((Kompasltapi7_tlb::ITextLinePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::AddBefore(long Index/*[in]*/, Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBefore"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
ITextDispT<T>::AddBefore(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  this->AddBefore(Index, (Kompasltapi7_tlb::ITextLinePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_Str(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Str"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextDispT<T>::get_Str(void)
{
  BSTR PVal;
  this->get_Str((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::set_Str(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Str"), DISPID(2007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextDispT<T>::Clear(TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDispT<T>::Clear(void)
{
  TOLEBOOL Value;
  this->Clear((TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::AddTextLine(ksTextLineType Type/*[in]*/, BSTR FileName/*[in]*/
                           , Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddTextLine"), DISPID(2009));
  TAutoArgs<2> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
ITextDispT<T>::AddTextLine(ksTextLineType Type/*[in]*/, BSTR FileName/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  this->AddTextLine(Type, FileName, (Kompasltapi7_tlb::ITextLinePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                 long Index/*[in]*/, BSTR FileName/*[in]*/, 
                                 Kompasltapi7_tlb::ITextLinePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddTextLineBefore"), DISPID(2010));
  TAutoArgs<3> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = Index /*[VT_I4:0]*/;
  _args[3] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
ITextDispT<T>::AddTextLineBefore(ksTextLineType Type/*[in]*/, 
                                 long Index/*[in]*/, BSTR FileName/*[in]*/)
{
  Kompasltapi7_tlb::ITextLinePtr Value;
  this->AddTextLineBefore(Type, Index, FileName, (Kompasltapi7_tlb::ITextLinePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, TOLEBOOL Case/*[in,def,opt]*/, 
                       TOLEBOOL WordOnly/*[in,def,opt]*/, TOLEBOOL ReplaceAll/*[in,def,opt]*/, 
                       TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Replace"), DISPID(2011));
  TAutoArgs<5> _args;
  _args[1] = SrcText /*[VT_BSTR:0]*/;
  _args[2] = NewText /*[VT_BSTR:0]*/;
  _args[3] = Case /*[VT_BOOL:0]*/;
  _args[4] = WordOnly /*[VT_BOOL:0]*/;
  _args[5] = ReplaceAll /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDispT<T>::Replace(BSTR SrcText/*[in]*/, BSTR NewText/*[in]*/, TOLEBOOL Case/*[in,def,opt]*/, 
                       TOLEBOOL WordOnly/*[in,def,opt]*/, TOLEBOOL ReplaceAll/*[in,def,opt]*/)
{
  TOLEBOOL Result;
  this->Replace(SrcText, NewText, Case, WordOnly, ReplaceAll, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/, TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Assign"), DISPID(2012));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IText*)Other /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDispT<T>::Assign(Kompasltapi7_tlb::ITextPtr Other/*[in]*/)
{
  TOLEBOOL Value;
  this->Assign(Other, (TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITextDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITextDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITextDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITextDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITextLine
// Interface: ITextLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMITextLineT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_TextItems(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_TextItems(Result);
}

template <class T> TVariant __fastcall
TCOMITextLineT<T>::get_TextItems(void)
{
  TVariant Result;
  OLECHECK(this->get_TextItems((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Count(long* Result/*[out,retval]*/)
{
  return (*this)->get_Count(Result);
}

template <class T> long __fastcall
TCOMITextLineT<T>::get_Count(void)
{
  long Result;
  OLECHECK(this->get_Count((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_TextItem(long Index/*[in]*/, 
                                Kompasltapi7_tlb::ITextItemPtr* Result/*[out,retval]*/)
{
  return (*this)->get_TextItem(Index, Result);
}

template <class T> Kompasltapi7_tlb::ITextItemPtr __fastcall
TCOMITextLineT<T>::get_TextItem(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextItemPtr Result;
  OLECHECK(this->get_TextItem(Index, (Kompasltapi7_tlb::ITextItemPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::Add(Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::ITextItemPtr __fastcall
TCOMITextLineT<T>::Add(void)
{
  Kompasltapi7_tlb::ITextItemPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::ITextItemPtr*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::AddBefore(long Index/*[in]*/, 
                             Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/)
{
  return (*this)->AddBefore(Index, Value);
}

template <class T> Kompasltapi7_tlb::ITextItemPtr __fastcall
TCOMITextLineT<T>::AddBefore(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextItemPtr Value;
  OLECHECK(this->AddBefore(Index, (Kompasltapi7_tlb::ITextItemPtr*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Str(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Str(PVal);
}

template <class T> BSTR __fastcall
TCOMITextLineT<T>::get_Str(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Str((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_Str(BSTR PVal/*[in]*/)
{
  return (*this)->set_Str(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::Clear(TOLEBOOL* Value/*[out,retval]*/)
{
  return (*this)->Clear(Value);
}

template <class T> TOLEBOOL __fastcall
TCOMITextLineT<T>::Clear(void)
{
  TOLEBOOL Value;
  OLECHECK(this->Clear((TOLEBOOL*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step(PVal);
}

template <class T> double __fastcall
TCOMITextLineT<T>::get_Step(void)
{
  double PVal;
  OLECHECK(this->get_Step((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_Step(double PVal/*[in]*/)
{
  return (*this)->set_Step(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Align(ksAlignEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Align(PVal);
}

template <class T> ksAlignEnum __fastcall
TCOMITextLineT<T>::get_Align(void)
{
  ksAlignEnum PVal;
  OLECHECK(this->get_Align((ksAlignEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_Align(ksAlignEnum PVal/*[in]*/)
{
  return (*this)->set_Align(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_IndentedLine(double* PVal/*[out,retval]*/)
{
  return (*this)->get_IndentedLine(PVal);
}

template <class T> double __fastcall
TCOMITextLineT<T>::get_IndentedLine(void)
{
  double PVal;
  OLECHECK(this->get_IndentedLine((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_IndentedLine(double PVal/*[in]*/)
{
  return (*this)->set_IndentedLine(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_StepBeforeParagraph(double* PVal/*[out,retval]*/)
{
  return (*this)->get_StepBeforeParagraph(PVal);
}

template <class T> double __fastcall
TCOMITextLineT<T>::get_StepBeforeParagraph(void)
{
  double PVal;
  OLECHECK(this->get_StepBeforeParagraph((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_StepBeforeParagraph(double PVal/*[in]*/)
{
  return (*this)->set_StepBeforeParagraph(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_StepAfterParagraph(double* PVal/*[out,retval]*/)
{
  return (*this)->get_StepAfterParagraph(PVal);
}

template <class T> double __fastcall
TCOMITextLineT<T>::get_StepAfterParagraph(void)
{
  double PVal;
  OLECHECK(this->get_StepAfterParagraph((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_StepAfterParagraph(double PVal/*[in]*/)
{
  return (*this)->set_StepAfterParagraph(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_LeftEdge(double* PVal/*[out,retval]*/)
{
  return (*this)->get_LeftEdge(PVal);
}

template <class T> double __fastcall
TCOMITextLineT<T>::get_LeftEdge(void)
{
  double PVal;
  OLECHECK(this->get_LeftEdge((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_LeftEdge(double PVal/*[in]*/)
{
  return (*this)->set_LeftEdge(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_RightEdge(double* PVal/*[out,retval]*/)
{
  return (*this)->get_RightEdge(PVal);
}

template <class T> double __fastcall
TCOMITextLineT<T>::get_RightEdge(void)
{
  double PVal;
  OLECHECK(this->get_RightEdge((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_RightEdge(double PVal/*[in]*/)
{
  return (*this)->set_RightEdge(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Tabulators(PVal);
}

template <class T> Kompasltapi7_tlb::ITabulatorsPtr __fastcall
TCOMITextLineT<T>::get_Tabulators(void)
{
  Kompasltapi7_tlb::ITabulatorsPtr PVal;
  OLECHECK(this->get_Tabulators((Kompasltapi7_tlb::ITabulatorsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Level(long* Result/*[out,retval]*/)
{
  return (*this)->get_Level(Result);
}

template <class T> long __fastcall
TCOMITextLineT<T>::get_Level(void)
{
  long Result;
  OLECHECK(this->get_Level((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_Level(long Result/*[in]*/)
{
  return (*this)->set_Level(Result);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_Numbering(ksTextNumberingEnum* Result/*[out,retval]*/)
{
  return (*this)->get_Numbering(Result);
}

template <class T> ksTextNumberingEnum __fastcall
TCOMITextLineT<T>::get_Numbering(void)
{
  ksTextNumberingEnum Result;
  OLECHECK(this->get_Numbering((ksTextNumberingEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_Numbering(ksTextNumberingEnum Result/*[in]*/)
{
  return (*this)->set_Numbering(Result);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::Delete(TOLEBOOL* Value/*[out,retval]*/)
{
  return (*this)->Delete(Value);
}

template <class T> TOLEBOOL __fastcall
TCOMITextLineT<T>::Delete(void)
{
  TOLEBOOL Value;
  OLECHECK(this->Delete((TOLEBOOL*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_TextLineType(ksTextLineType* Result/*[out,retval]*/)
{
  return (*this)->get_TextLineType(Result);
}

template <class T> ksTextLineType __fastcall
TCOMITextLineT<T>::get_TextLineType(void)
{
  ksTextLineType Result;
  OLECHECK(this->get_TextLineType((ksTextLineType*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_TextLineData(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_TextLineData(Result);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMITextLineT<T>::get_TextLineData(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  OLECHECK(this->get_TextLineData((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::get_NewPage(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_NewPage(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITextLineT<T>::get_NewPage(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_NewPage((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::set_NewPage(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_NewPage(Result);
}

template <class T> HRESULT __fastcall
TCOMITextLineT<T>::Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/, 
                          TOLEBOOL* Value/*[out,retval]*/)
{
  return (*this)->Assign(Other, Value);
}

template <class T> TOLEBOOL __fastcall
TCOMITextLineT<T>::Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/)
{
  TOLEBOOL Value;
  OLECHECK(this->Assign(Other, (TOLEBOOL*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ITextLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AAB72FE2-DEA3-4FB6-B0DD-B926249EF67C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextLineDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_TextItems(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextItems"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ITextLineDispT<T>::get_TextItems(void)
{
  TVariant Result;
  this->get_TextItems((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Count(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextLineDispT<T>::get_Count(void)
{
  long Result;
  this->get_Count((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_TextItem(long Index/*[in]*/, 
                                Kompasltapi7_tlb::ITextItemPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextItem"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextItem**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextItemPtr __fastcall
ITextLineDispT<T>::get_TextItem(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextItemPtr Result;
  this->get_TextItem(Index, (Kompasltapi7_tlb::ITextItemPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::Add(Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextItem**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextItemPtr __fastcall
ITextLineDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ITextItemPtr Value;
  this->Add((Kompasltapi7_tlb::ITextItemPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::AddBefore(long Index/*[in]*/, 
                             Kompasltapi7_tlb::ITextItemPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBefore"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextItem**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextItemPtr __fastcall
ITextLineDispT<T>::AddBefore(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ITextItemPtr Value;
  this->AddBefore(Index, (Kompasltapi7_tlb::ITextItemPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Str(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Str"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextLineDispT<T>::get_Str(void)
{
  BSTR PVal;
  this->get_Str((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_Str(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Str"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::Clear(TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextLineDispT<T>::Clear(void)
{
  TOLEBOOL Value;
  this->Clear((TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextLineDispT<T>::get_Step(void)
{
  double PVal;
  this->get_Step((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_Step(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Align(ksAlignEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAlignEnum __fastcall
ITextLineDispT<T>::get_Align(void)
{
  ksAlignEnum PVal;
  this->get_Align((ksAlignEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_Align(ksAlignEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_IndentedLine(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IndentedLine"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextLineDispT<T>::get_IndentedLine(void)
{
  double PVal;
  this->get_IndentedLine((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_IndentedLine(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IndentedLine"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_StepBeforeParagraph(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepBeforeParagraph"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextLineDispT<T>::get_StepBeforeParagraph(void)
{
  double PVal;
  this->get_StepBeforeParagraph((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_StepBeforeParagraph(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepBeforeParagraph"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_StepAfterParagraph(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepAfterParagraph"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextLineDispT<T>::get_StepAfterParagraph(void)
{
  double PVal;
  this->get_StepAfterParagraph((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_StepAfterParagraph(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepAfterParagraph"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_LeftEdge(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftEdge"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextLineDispT<T>::get_LeftEdge(void)
{
  double PVal;
  this->get_LeftEdge((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_LeftEdge(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftEdge"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_RightEdge(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightEdge"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ITextLineDispT<T>::get_RightEdge(void)
{
  double PVal;
  this->get_RightEdge((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_RightEdge(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightEdge"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Tabulators(Kompasltapi7_tlb::ITabulatorsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tabulators"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITabulators**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITabulatorsPtr __fastcall
ITextLineDispT<T>::get_Tabulators(void)
{
  Kompasltapi7_tlb::ITabulatorsPtr PVal;
  this->get_Tabulators((Kompasltapi7_tlb::ITabulatorsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Level(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Level"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextLineDispT<T>::get_Level(void)
{
  long Result;
  this->get_Level((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_Level(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Level"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Numbering(ksTextNumberingEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Numbering"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTextNumberingEnum __fastcall
ITextLineDispT<T>::get_Numbering(void)
{
  ksTextNumberingEnum Result;
  this->get_Numbering((ksTextNumberingEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_Numbering(ksTextNumberingEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Numbering"), DISPID(18));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::Delete(TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(19));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextLineDispT<T>::Delete(void)
{
  TOLEBOOL Value;
  this->Delete((TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_TextLineType(ksTextLineType* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextLineType"), DISPID(20));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTextLineType __fastcall
ITextLineDispT<T>::get_TextLineType(void)
{
  ksTextLineType Result;
  this->get_TextLineType((ksTextLineType*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_TextLineData(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextLineData"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITextLineDispT<T>::get_TextLineData(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_TextLineData((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_NewPage(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NewPage"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextLineDispT<T>::get_NewPage(void)
{
  TOLEBOOL Result;
  this->get_NewPage((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::set_NewPage(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NewPage"), DISPID(22));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/, 
                          TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Assign"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ITextLine*)Other /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextLineDispT<T>::Assign(Kompasltapi7_tlb::ITextLinePtr Other/*[in]*/)
{
  TOLEBOOL Value;
  this->Assign(Other, (TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITextLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITextLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITextLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITextLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITextItem
// Interface: ITextItem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITextItemT<T>::get_ItemType(ksTextItemEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ItemType(PVal);
}

template <class T> ksTextItemEnum __fastcall
TCOMITextItemT<T>::get_ItemType(void)
{
  ksTextItemEnum PVal;
  OLECHECK(this->get_ItemType((ksTextItemEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::set_ItemType(ksTextItemEnum PVal/*[in]*/)
{
  return (*this)->set_ItemType(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::get_Str(BSTR* Result/*[out,retval]*/)
{
  return (*this)->get_Str(Result);
}

template <class T> BSTR __fastcall
TCOMITextItemT<T>::get_Str(void)
{
  BSTR Result = 0;
  OLECHECK(this->get_Str((BSTR*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::set_Str(BSTR Result/*[in]*/)
{
  return (*this)->set_Str(Result);
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::get_SymbolFontName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_SymbolFontName(PVal);
}

template <class T> BSTR __fastcall
TCOMITextItemT<T>::get_SymbolFontName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_SymbolFontName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::set_SymbolFontName(BSTR PVal/*[in]*/)
{
  return (*this)->set_SymbolFontName(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::get_Number(long* Result/*[out,retval]*/)
{
  return (*this)->get_Number(Result);
}

template <class T> long __fastcall
TCOMITextItemT<T>::get_Number(void)
{
  long Result;
  OLECHECK(this->get_Number((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::set_Number(long Result/*[in]*/)
{
  return (*this)->set_Number(Result);
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::get_SizeFactor(ksTextSizeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SizeFactor(PVal);
}

template <class T> ksTextSizeEnum __fastcall
TCOMITextItemT<T>::get_SizeFactor(void)
{
  ksTextSizeEnum PVal;
  OLECHECK(this->get_SizeFactor((ksTextSizeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::set_SizeFactor(ksTextSizeEnum PVal/*[in]*/)
{
  return (*this)->set_SizeFactor(PVal);
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::get_NewLine(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_NewLine(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITextItemT<T>::get_NewLine(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_NewLine((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::set_NewLine(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_NewLine(Result);
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::Delete(TOLEBOOL* Value/*[out,retval]*/)
{
  return (*this)->Delete(Value);
}

template <class T> TOLEBOOL __fastcall
TCOMITextItemT<T>::Delete(void)
{
  TOLEBOOL Value;
  OLECHECK(this->Delete((TOLEBOOL*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMITextItemT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMITextItemT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

// *********************************************************************//
// DispIntf:  ITextItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1DE74AFB-5026-4B85-861F-F0CFDBD443E6}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_ItemType(ksTextItemEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemType"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTextItemEnum __fastcall
ITextItemDispT<T>::get_ItemType(void)
{
  ksTextItemEnum PVal;
  this->get_ItemType((ksTextItemEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::set_ItemType(ksTextItemEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemType"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_Str(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Str"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextItemDispT<T>::get_Str(void)
{
  BSTR Result;
  this->get_Str((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::set_Str(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Str"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_SymbolFontName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SymbolFontName"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextItemDispT<T>::get_SymbolFontName(void)
{
  BSTR PVal;
  this->get_SymbolFontName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::set_SymbolFontName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SymbolFontName"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_Number(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextItemDispT<T>::get_Number(void)
{
  long Result;
  this->get_Number((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::set_Number(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_SizeFactor(ksTextSizeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SizeFactor"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTextSizeEnum __fastcall
ITextItemDispT<T>::get_SizeFactor(void)
{
  ksTextSizeEnum PVal;
  this->get_SizeFactor((ksTextSizeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::set_SizeFactor(ksTextSizeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SizeFactor"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_NewLine(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NewLine"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextItemDispT<T>::get_NewLine(void)
{
  TOLEBOOL Result;
  this->get_NewLine((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::set_NewLine(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NewLine"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::Delete(TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextItemDispT<T>::Delete(void)
{
  TOLEBOOL Value;
  this->Delete((TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextItemDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITextItemDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITextItemDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITextItemDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITextItemDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextItemDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAttachedDocuments
// Interface: IAttachedDocuments
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAttachedDocumentsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall
TCOMIAttachedDocumentsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAttachedDocumentPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IAttachedDocumentPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttachedDocumentsT<T>::Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/, 
                                Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Name, Transmit, Result);
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall
TCOMIAttachedDocumentsT<T>::Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/)
{
  Kompasltapi7_tlb::IAttachedDocumentPtr Result;
  OLECHECK(this->Add(Name, Transmit, (Kompasltapi7_tlb::IAttachedDocumentPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IAttachedDocuments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {81FAB1C5-F566-4D06-8D3D-17FF01D3566F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttachedDocument**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall
IAttachedDocumentsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAttachedDocumentPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IAttachedDocumentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/, 
                                Kompasltapi7_tlb::IAttachedDocumentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Transmit /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttachedDocument**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentPtr __fastcall
IAttachedDocumentsDispT<T>::Add(BSTR Name/*[in]*/, TOLEBOOL Transmit/*[in]*/)
{
  Kompasltapi7_tlb::IAttachedDocumentPtr Result;
  this->Add(Name, Transmit, (Kompasltapi7_tlb::IAttachedDocumentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IAttachedDocumentsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttachedDocumentsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAttachedDocumentsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAttachedDocumentsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAttachedDocumentsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAttachedDocumentsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttachedDocumentsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAttachedDocument
// Interface: IAttachedDocument
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAttachedDocumentT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIAttachedDocumentT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAttachedDocumentT<T>::get_Transmit(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Transmit(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttachedDocumentT<T>::get_Transmit(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Transmit((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAttachedDocumentT<T>::set_Transmit(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Transmit(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAttachedDocumentT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Comment(PVal);
}

template <class T> BSTR __fastcall
TCOMIAttachedDocumentT<T>::get_Comment(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Comment((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAttachedDocumentT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  return (*this)->set_Comment(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAttachedDocumentT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttachedDocumentT<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAttachedDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {333E9E11-D161-49AE-9791-8BEDB58B4C78}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAttachedDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::get_Transmit(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transmit"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttachedDocumentDispT<T>::get_Transmit(void)
{
  TOLEBOOL PVal;
  this->get_Transmit((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::set_Transmit(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transmit"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAttachedDocumentDispT<T>::get_Comment(void)
{
  BSTR PVal;
  this->get_Comment((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttachedDocumentDispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAttachedDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAttachedDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAttachedDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAttachedDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttachedDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationCommentObjects
// Interface: ISpecificationCommentObjects
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationCommentObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall
TCOMISpecificationCommentObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationCommentObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationCommentObjectsT<T>::Add(long SectionNamb/*[in]*/, 
                                          Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(SectionNamb, Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall
TCOMISpecificationCommentObjectsT<T>::Add(long SectionNamb/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr Result;
  OLECHECK(this->Add(SectionNamb, (Kompasltapi7_tlb::ISpecificationCommentObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationCommentObjectsT<T>::Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Attach(PVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationCommentObjectsT<T>::Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Attach(PVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationCommentObjectsT<T>::Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Detach(PVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecificationCommentObjectsT<T>::Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Detach(PVal, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecificationCommentObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B8BD0FC7-AB2B-4E7A-8EC2-82060D7D29A7}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationCommentObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall
ISpecificationCommentObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ISpecificationCommentObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::Add(long SectionNamb/*[in]*/, 
                                          Kompasltapi7_tlb::ISpecificationCommentObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = SectionNamb /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationCommentObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationCommentObjectPtr __fastcall
ISpecificationCommentObjectsDispT<T>::Add(long SectionNamb/*[in]*/)
{
  Kompasltapi7_tlb::ISpecificationCommentObjectPtr Result;
  this->Add(SectionNamb, (Kompasltapi7_tlb::ISpecificationCommentObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/
                                             , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationCommentObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationCommentObjectsDispT<T>::Attach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  this->Attach(PVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/
                                             , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Detach"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationCommentObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationCommentObjectsDispT<T>::Detach(Kompasltapi7_tlb::ISpecificationCommentObjectPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  this->Detach(PVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISpecificationCommentObjectsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationCommentObjectsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationCommentObjectsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationCommentObjectsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationCommentObject
// Interface: ISpecificationCommentObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationCommentObjectT<T>::get_BaseObject(Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Result);
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall
TCOMISpecificationCommentObjectT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecificationCommentObjectT<T>::get_BlockNumber(long* PVal/*[out,retval]*/)
{
  return (*this)->get_BlockNumber(PVal);
}

template <class T> long __fastcall
TCOMISpecificationCommentObjectT<T>::get_BlockNumber(void)
{
  long PVal;
  OLECHECK(this->get_BlockNumber((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecificationCommentObjectT<T>::set_BlockNumber(long PVal/*[in]*/)
{
  return (*this)->set_BlockNumber(PVal);
}

// *********************************************************************//
// DispIntf:  ISpecificationCommentObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3B6B80CA-2145-4184-B786-0C571DF5ACD7}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_BaseObject(Kompasltapi7_tlb::ISpecificationBaseObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationBaseObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationBaseObjectPtr __fastcall
ISpecificationCommentObjectDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::ISpecificationBaseObjectPtr Result;
  this->get_BaseObject((Kompasltapi7_tlb::ISpecificationBaseObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_BlockNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockNumber"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_BlockNumber(void)
{
  long PVal;
  this->get_BlockNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_BlockNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockNumber"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_ObjectType(ksSpecificationObjectTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectType"), DISPID(100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationObjectTypeEnum __fastcall
ISpecificationCommentObjectDispT<T>::get_ObjectType(void)
{
  ksSpecificationObjectTypeEnum PVal;
  this->get_ObjectType((ksSpecificationObjectTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_Section(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Section"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_Section(void)
{
  long PVal;
  this->get_Section((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_Subsection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subsection"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_Subsection(void)
{
  long PVal;
  this->get_Subsection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_Subsection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Subsection"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_AdditionalSection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalSection"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_AdditionalSection(void)
{
  long PVal;
  this->get_AdditionalSection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_AdditionalSection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalSection"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_AdditionalBlock(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlock"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_AdditionalBlock(void)
{
  long PVal;
  this->get_AdditionalBlock((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_AdditionalBlock(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalBlock"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_NestedSection(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedSection"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_NestedSection(void)
{
  long PVal;
  this->get_NestedSection((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_NestedSection(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedSection"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_NestedBlock(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedBlock"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_NestedBlock(void)
{
  long PVal;
  this->get_NestedBlock((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_NestedBlock(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NestedBlock"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_BlockNumberByIndex(long Val/*[in]*/, 
                                                            long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlockNumberByIndex"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_BlockNumberByIndex(long Val/*[in]*/)
{
  long PVal;
  this->get_BlockNumberByIndex(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_UniqueNumber(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UniqueNumber"), DISPID(108));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecificationCommentObjectDispT<T>::get_UniqueNumber(void)
{
  double PVal;
  this->get_UniqueNumber((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_State(ksSpecificationObjectStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("State"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSpecificationObjectStateEnum __fastcall
ISpecificationCommentObjectDispT<T>::get_State(void)
{
  ksSpecificationObjectStateEnum PVal;
  this->get_State((ksSpecificationObjectStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_FirstOnSheet(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationCommentObjectDispT<T>::get_FirstOnSheet(void)
{
  TOLEBOOL PVal;
  this->get_FirstOnSheet((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_FirstOnSheet(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FirstOnSheet"), DISPID(110));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_IncrementPosition(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncrementPosition"), DISPID(111));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationCommentObjectDispT<T>::get_IncrementPosition(void)
{
  TOLEBOOL PVal;
  this->get_IncrementPosition((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::set_IncrementPosition(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IncrementPosition"), DISPID(111));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_Columns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Columns"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumns**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
ISpecificationCommentObjectDispT<T>::get_Columns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  this->get_Columns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_AdditionalColumns(Kompasltapi7_tlb::ISpecificationColumnsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalColumns"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationColumns**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationColumnsPtr __fastcall
ISpecificationCommentObjectDispT<T>::get_AdditionalColumns(void)
{
  Kompasltapi7_tlb::ISpecificationColumnsPtr PVal;
  this->get_AdditionalColumns((Kompasltapi7_tlb::ISpecificationColumnsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachedDocuments"), DISPID(114));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttachedDocuments**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall
ISpecificationCommentObjectDispT<T>::get_AttachedDocuments(void)
{
  Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
  this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(115));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationCommentObjectDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(116));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationCommentObjectDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::Edit(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edit"), DISPID(117));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationCommentObjectDispT<T>::Edit(void)
{
  TOLEBOOL PRes;
  this->Edit((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationCommentObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationCommentObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationCommentObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationCommentObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationCommentObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayoutSheets
// Interface: ILayoutSheets
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayoutSheetsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILayoutSheetPtr __fastcall
TCOMILayoutSheetsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayoutSheetPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ILayoutSheetPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetsT<T>::get_ItemByNumber(long Number/*[in]*/, 
                                        Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ItemByNumber(Number, Result);
}

template <class T> Kompasltapi7_tlb::ILayoutSheetPtr __fastcall
TCOMILayoutSheetsT<T>::get_ItemByNumber(long Number/*[in]*/)
{
  Kompasltapi7_tlb::ILayoutSheetPtr Result;
  OLECHECK(this->get_ItemByNumber(Number, (Kompasltapi7_tlb::ILayoutSheetPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetsT<T>::Add(Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ILayoutSheetPtr __fastcall
TCOMILayoutSheetsT<T>::Add(void)
{
  Kompasltapi7_tlb::ILayoutSheetPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ILayoutSheetPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILayoutSheets
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7AB54196-0B76-4B01-B769-7F47637173C4}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheet**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetPtr __fastcall
ILayoutSheetsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayoutSheetPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ILayoutSheetPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get_ItemByNumber(long Number/*[in]*/, 
                                        Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemByNumber"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Number /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheet**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetPtr __fastcall
ILayoutSheetsDispT<T>::get_ItemByNumber(long Number/*[in]*/)
{
  Kompasltapi7_tlb::ILayoutSheetPtr Result;
  this->get_ItemByNumber(Number, (Kompasltapi7_tlb::ILayoutSheetPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::Add(Kompasltapi7_tlb::ILayoutSheetPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheet**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetPtr __fastcall
ILayoutSheetsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ILayoutSheetPtr Result;
  this->Add((Kompasltapi7_tlb::ILayoutSheetPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILayoutSheetsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayoutSheetsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayoutSheetsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayoutSheetsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayoutSheetsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayoutSheetsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayoutSheetsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayoutSheet
// Interface: ILayoutSheet
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Format(PVal);
}

template <class T> Kompasltapi7_tlb::ISheetFormatPtr __fastcall
TCOMILayoutSheetT<T>::get_Format(void)
{
  Kompasltapi7_tlb::ISheetFormatPtr PVal;
  OLECHECK(this->get_Format((Kompasltapi7_tlb::ISheetFormatPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::get_LayoutLibraryFileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LayoutLibraryFileName(PVal);
}

template <class T> BSTR __fastcall
TCOMILayoutSheetT<T>::get_LayoutLibraryFileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LayoutLibraryFileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::set_LayoutLibraryFileName(BSTR PVal/*[in]*/)
{
  return (*this)->set_LayoutLibraryFileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::get_LayoutStyleNumber(double* PVal/*[out,retval]*/)
{
  return (*this)->get_LayoutStyleNumber(PVal);
}

template <class T> double __fastcall
TCOMILayoutSheetT<T>::get_LayoutStyleNumber(void)
{
  double PVal;
  OLECHECK(this->get_LayoutStyleNumber((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::set_LayoutStyleNumber(double PVal/*[in]*/)
{
  return (*this)->set_LayoutStyleNumber(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMILayoutSheetT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMILayoutSheetT<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayoutSheetT<T>::get_Stamp(Kompasltapi7_tlb::IStampPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Stamp(PVal);
}

template <class T> Kompasltapi7_tlb::IStampPtr __fastcall
TCOMILayoutSheetT<T>::get_Stamp(void)
{
  Kompasltapi7_tlb::IStampPtr PVal;
  OLECHECK(this->get_Stamp((Kompasltapi7_tlb::IStampPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILayoutSheet
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D87B5A80-CF52-4510-ADD9-D1344FFFFC07}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_Format(Kompasltapi7_tlb::ISheetFormatPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Format"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetFormat**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetFormatPtr __fastcall
ILayoutSheetDispT<T>::get_Format(void)
{
  Kompasltapi7_tlb::ISheetFormatPtr PVal;
  this->get_Format((Kompasltapi7_tlb::ISheetFormatPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_LayoutLibraryFileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutLibraryFileName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILayoutSheetDispT<T>::get_LayoutLibraryFileName(void)
{
  BSTR PVal;
  this->get_LayoutLibraryFileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::set_LayoutLibraryFileName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutLibraryFileName"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_LayoutStyleNumber(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutStyleNumber"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILayoutSheetDispT<T>::get_LayoutStyleNumber(void)
{
  double PVal;
  this->get_LayoutStyleNumber((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::set_LayoutStyleNumber(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutStyleNumber"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayoutSheetDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayoutSheetDispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_Stamp(Kompasltapi7_tlb::IStampPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stamp"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IStamp**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IStampPtr __fastcall
ILayoutSheetDispT<T>::get_Stamp(void)
{
  Kompasltapi7_tlb::IStampPtr PVal;
  this->get_Stamp((Kompasltapi7_tlb::IStampPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayoutSheetDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayoutSheetDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayoutSheetDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayoutSheetDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayoutSheetDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIStamp
// Interface: IStamp
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIStampT<T>::get_Text(long Id/*[in]*/, Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(Id, PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIStampT<T>::get_Text(long Id/*[in]*/)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text(Id, (Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIStampT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIStampT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIStampT<T>::Clear(long Id/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Clear(Id, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIStampT<T>::Clear(long Id/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->Clear(Id, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIStampT<T>::GetNextColumnId(long Id/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->GetNextColumnId(Id, PVal);
}

template <class T> long __fastcall
TCOMIStampT<T>::GetNextColumnId(long Id/*[in]*/)
{
  long PVal;
  OLECHECK(this->GetNextColumnId(Id, (long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IStamp
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {250CE350-7C21-47FD-8FF2-C44A9FF177DF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IStampDispT<T>::get_Text(long Id/*[in]*/, Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IStampDispT<T>::get_Text(long Id/*[in]*/)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text(Id, (Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStampDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStampDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IStampDispT<T>::Clear(long Id/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStampDispT<T>::Clear(long Id/*[in]*/)
{
  TOLEBOOL PRes;
  this->Clear(Id, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IStampDispT<T>::GetNextColumnId(long Id/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNextColumnId"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IStampDispT<T>::GetNextColumnId(long Id/*[in]*/)
{
  long PVal;
  this->GetNextColumnId(Id, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStampDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IStampDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStampDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IStampDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStampDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IStampDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IStampDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IStampDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIUserDataStoragesMng
// Interface: IUserDataStoragesMng
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIUserDataStoragesMngT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall
TCOMIUserDataStoragesMngT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragesPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IUserDataStoragesPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStoragesMngT<T>::Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                  Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Object, Result);
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall
TCOMIUserDataStoragesMngT<T>::Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragesPtr Result;
  OLECHECK(this->Add(Object, (Kompasltapi7_tlb::IUserDataStoragesPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStoragesMngT<T>::Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(Index, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIUserDataStoragesMngT<T>::Delete(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete(Index, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStoragesMngT<T>::Clear(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Clear(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIUserDataStoragesMngT<T>::Clear(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Clear((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IUserDataStoragesMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {77A6D4CA-6418-4DEE-B59C-400BFD052375}
// *********************************************************************//
template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStorages**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall
IUserDataStoragesMngDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragesPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IUserDataStoragesPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                  Kompasltapi7_tlb::IUserDataStoragesPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasAPIObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStorages**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesPtr __fastcall
IUserDataStoragesMngDispT<T>::Add(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragesPtr Result;
  this->Add(Object, (Kompasltapi7_tlb::IUserDataStoragesPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUserDataStoragesMngDispT<T>::Delete(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->Delete(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::Clear(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUserDataStoragesMngDispT<T>::Clear(void)
{
  TOLEBOOL PVal;
  this->Clear((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IUserDataStoragesMngDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStoragesMngDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IUserDataStoragesMngDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IUserDataStoragesMngDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IUserDataStoragesMngDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUserDataStoragesMngDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStoragesMngDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIUserDataStorages
// Interface: IUserDataStorages
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIUserDataStoragesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IUserDataStoragePtr __fastcall
TCOMIUserDataStoragesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragePtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IUserDataStoragePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStoragesT<T>::Add(BSTR StorageName/*[in]*/, 
                               Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(StorageName, Result);
}

template <class T> Kompasltapi7_tlb::IUserDataStoragePtr __fastcall
TCOMIUserDataStoragesT<T>::Add(BSTR StorageName/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragePtr Result;
  OLECHECK(this->Add(StorageName, (Kompasltapi7_tlb::IUserDataStoragePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStoragesT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/, 
                                  TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(Password, Index, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIUserDataStoragesT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete(Password, Index, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IUserDataStorages
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9DBFB4EB-BE9F-46EF-88FF-BB603A9E786B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStorage**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragePtr __fastcall
IUserDataStoragesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragePtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IUserDataStoragePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::Add(BSTR StorageName/*[in]*/, 
                               Kompasltapi7_tlb::IUserDataStoragePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = StorageName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStorage**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragePtr __fastcall
IUserDataStoragesDispT<T>::Add(BSTR StorageName/*[in]*/)
{
  Kompasltapi7_tlb::IUserDataStoragePtr Result;
  this->Add(StorageName, (Kompasltapi7_tlb::IUserDataStoragePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/, 
                                  TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUserDataStoragesDispT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->Delete(Password, Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IUserDataStoragesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStoragesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IUserDataStoragesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IUserDataStoragesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IUserDataStoragesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUserDataStoragesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStoragesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIUserDataStorage
// Interface: IUserDataStorage
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::get_Name(BSTR Pass/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(Pass, PVal);
}

template <class T> BSTR __fastcall
TCOMIUserDataStorageT<T>::get_Name(BSTR Pass/*[in]*/)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name(Pass, (BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::set_Name(BSTR Pass/*[in]*/, BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(Pass, PVal);
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPassword(OldPass, NewPass, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIUserDataStorageT<T>::SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPassword(OldPass, NewPass, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::get_Version(BSTR Pass/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->get_Version(Pass, PVal);
}

template <class T> long __fastcall
TCOMIUserDataStorageT<T>::get_Version(BSTR Pass/*[in]*/)
{
  long PVal;
  OLECHECK(this->get_Version(Pass, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::set_Version(BSTR Pass/*[in]*/, long PVal/*[in]*/)
{
  return (*this)->set_Version(Pass, PVal);
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                    long* Numb/*[out]*/, BSTR* Comment/*[out,retval]*/)
{
  return (*this)->GetObject(Index, Object, Numb, Comment);
}

template <class T> BSTR __fastcall
TCOMIUserDataStorageT<T>::GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                    long* Numb/*[out]*/)
{
  BSTR Comment = 0;
  OLECHECK(this->GetObject(Index, Object, Numb, (BSTR*)&Comment));
  return Comment;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/, 
                                    long* PVal/*[out,retval]*/)
{
  return (*this)->SetObject(Pass, Index, Object, Comment, PVal);
}

template <class T> long __fastcall
TCOMIUserDataStorageT<T>::SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/)
{
  long PVal;
  OLECHECK(this->SetObject(Pass, Index, Object, Comment, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                    BSTR Comment/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->AddObject(Pass, Object, Comment, PVal);
}

template <class T> long __fastcall
TCOMIUserDataStorageT<T>::AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                    BSTR Comment/*[in]*/)
{
  long PVal;
  OLECHECK(this->AddObject(Pass, Object, Comment, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                 TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(Pass, Index, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIUserDataStorageT<T>::Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete(Pass, Index, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUserDataStorageT<T>::Clear(BSTR Pass/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Pass, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIUserDataStorageT<T>::Clear(BSTR Pass/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear(Pass, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IUserDataStorage
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DD2AF5C4-D5B9-420D-B658-F935F80A8586}
// *********************************************************************//
template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::get_Name(BSTR Pass/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IUserDataStorageDispT<T>::get_Name(BSTR Pass/*[in]*/)
{
  BSTR PVal;
  this->get_Name(Pass, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::set_Name(BSTR Pass/*[in]*/, BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  _args[2] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPassword"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = OldPass /*[VT_BSTR:0]*/;
  _args[2] = NewPass /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUserDataStorageDispT<T>::SetPassword(BSTR OldPass/*[in]*/, BSTR NewPass/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPassword(OldPass, NewPass, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::get_Version(BSTR Pass/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Version"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStorageDispT<T>::get_Version(BSTR Pass/*[in]*/)
{
  long PVal;
  this->get_Version(Pass, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::set_Version(BSTR Pass/*[in]*/, long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Version"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  _args[2] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                    long* Numb/*[out]*/, BSTR* Comment/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetObject"), DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  _args[2] = Object /*[VT_VARIANT:1]*/;
  _args[3] = Numb /*[VT_I4:1]*/;
  return OutRetValSetterPtr(Comment /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IUserDataStorageDispT<T>::GetObject(TVariantInParam Index/*[in]*/, TVariant* Object/*[out]*/, 
                                    long* Numb/*[out]*/)
{
  BSTR Comment;
  this->GetObject(Index, Object, Numb, (BSTR*)&Comment);
  return Comment;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/, 
                                    long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetObject"), DISPID(5));
  TAutoArgs<4> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  _args[3] = Object /*[VT_VARIANT:0]*/;
  _args[4] = Comment /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStorageDispT<T>::SetObject(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                    TVariantInParam Object/*[in]*/, BSTR Comment/*[in]*/)
{
  long PVal;
  this->SetObject(Pass, Index, Object, Comment, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                    BSTR Comment/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddObject"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  _args[2] = Object /*[VT_VARIANT:0]*/;
  _args[3] = Comment /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStorageDispT<T>::AddObject(BSTR Pass/*[in]*/, TVariantInParam Object/*[in]*/, 
                                    BSTR Comment/*[in]*/)
{
  long PVal;
  this->AddObject(Pass, Object, Comment, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/, 
                                 TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUserDataStorageDispT<T>::Delete(BSTR Pass/*[in]*/, TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->Delete(Pass, Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::Clear(BSTR Pass/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Pass /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUserDataStorageDispT<T>::Clear(BSTR Pass/*[in]*/)
{
  TOLEBOOL Result;
  this->Clear(Pass, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IUserDataStorageDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IUserDataStorageDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IUserDataStorageDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUserDataStorageDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUserDataStorageDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIProcessParam
// Interface: IProcessParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::set_Caption(BSTR PVal/*[in]*/)
{
  return (*this)->set_Caption(PVal);
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Caption(PVal);
}

template <class T> BSTR __fastcall
TCOMIProcessParamT<T>::get_Caption(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Caption((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/)
{
  return (*this)->get_PropertyTabs(Tabs);
}

template <class T> Kompasltapi7_tlb::IPropertyTabsPtr __fastcall
TCOMIProcessParamT<T>::get_PropertyTabs(void)
{
  Kompasltapi7_tlb::IPropertyTabsPtr Tabs;
  OLECHECK(this->get_PropertyTabs((Kompasltapi7_tlb::IPropertyTabsPtr*)&Tabs));
  return Tabs;
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/)
{
  return (*this)->set_SpecToolbar(PVal);
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SpecToolbar(PVal);
}

template <class T> SpecPropertyToolBarEnum __fastcall
TCOMIProcessParamT<T>::get_SpecToolbar(void)
{
  SpecPropertyToolBarEnum PVal;
  OLECHECK(this->get_SpecToolbar((SpecPropertyToolBarEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::set_AutoReduce(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_AutoReduce(PVal);
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::get_AutoReduce(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoReduce(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIProcessParamT<T>::get_AutoReduce(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoReduce((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::set_DefaultControlFix(DefaultFixTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DefaultControlFix(PVal);
}

template <class T> HRESULT __fastcall
TCOMIProcessParamT<T>::get_DefaultControlFix(DefaultFixTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DefaultControlFix(PVal);
}

template <class T> DefaultFixTypeEnum __fastcall
TCOMIProcessParamT<T>::get_DefaultControlFix(void)
{
  DefaultFixTypeEnum PVal;
  OLECHECK(this->get_DefaultControlFix((DefaultFixTypeEnum*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IProcessParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CB5FDBC8-4DAE-4C4B-87D5-6FD1F2705C38}
// *********************************************************************//
template <class T> HRESULT __fastcall
IProcessParamDispT<T>::set_Caption(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProcessParamDispT<T>::get_Caption(void)
{
  BSTR PVal;
  this->get_Caption((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PropertyTabs"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyTabs**)Tabs /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyTabsPtr __fastcall
IProcessParamDispT<T>::get_PropertyTabs(void)
{
  Kompasltapi7_tlb::IPropertyTabsPtr Tabs;
  this->get_PropertyTabs((Kompasltapi7_tlb::IPropertyTabsPtr*)&Tabs);
  return Tabs;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecToolbar"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecToolbar"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> SpecPropertyToolBarEnum __fastcall
IProcessParamDispT<T>::get_SpecToolbar(void)
{
  SpecPropertyToolBarEnum PVal;
  this->get_SpecToolbar((SpecPropertyToolBarEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::set_AutoReduce(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoReduce"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_AutoReduce(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoReduce"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProcessParamDispT<T>::get_AutoReduce(void)
{
  TOLEBOOL PVal;
  this->get_AutoReduce((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::set_DefaultControlFix(DefaultFixTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultControlFix"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_DefaultControlFix(DefaultFixTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultControlFix"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DefaultFixTypeEnum __fastcall
IProcessParamDispT<T>::get_DefaultControlFix(void)
{
  DefaultFixTypeEnum PVal;
  this->get_DefaultControlFix((DefaultFixTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IProcessParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IProcessParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IProcessParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IProcessParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProcessParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyTabs
// Interface: IPropertyTabs
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyTabsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IPropertyTabPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
TCOMIPropertyTabsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyTabPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IPropertyTabPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabsT<T>::Add(BSTR Caption/*[in]*/, 
                           Kompasltapi7_tlb::IPropertyTabPtr* PTab/*[out,retval]*/)
{
  return (*this)->Add(Caption, PTab);
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
TCOMIPropertyTabsT<T>::Add(BSTR Caption/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyTabPtr PTab;
  OLECHECK(this->Add(Caption, (Kompasltapi7_tlb::IPropertyTabPtr*)&PTab));
  return PTab;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabsT<T>::Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(Index, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyTabsT<T>::Delete(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete(Index, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabsT<T>::get_Active(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/)
{
  return (*this)->get_Active(PDoc);
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
TCOMIPropertyTabsT<T>::get_Active(void)
{
  Kompasltapi7_tlb::IPropertyTabPtr PDoc;
  OLECHECK(this->get_Active((Kompasltapi7_tlb::IPropertyTabPtr*)&PDoc));
  return PDoc;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabsT<T>::get_SystemTab(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/)
{
  return (*this)->get_SystemTab(PDoc);
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
TCOMIPropertyTabsT<T>::get_SystemTab(void)
{
  Kompasltapi7_tlb::IPropertyTabPtr PDoc;
  OLECHECK(this->get_SystemTab((Kompasltapi7_tlb::IPropertyTabPtr*)&PDoc));
  return PDoc;
}

// *********************************************************************//
// DispIntf:  IPropertyTabs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5BA6324E-E555-490F-A0E2-68D3C6C88D92}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IPropertyTabPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyTab**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
IPropertyTabsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyTabPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IPropertyTabPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::Add(BSTR Caption/*[in]*/, 
                           Kompasltapi7_tlb::IPropertyTabPtr* PTab/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Caption /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyTab**)PTab /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
IPropertyTabsDispT<T>::Add(BSTR Caption/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyTabPtr PTab;
  this->Add(Caption, (Kompasltapi7_tlb::IPropertyTabPtr*)&PTab);
  return PTab;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyTabsDispT<T>::Delete(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->Delete(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_Active(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyTab**)PDoc /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
IPropertyTabsDispT<T>::get_Active(void)
{
  Kompasltapi7_tlb::IPropertyTabPtr PDoc;
  this->get_Active((Kompasltapi7_tlb::IPropertyTabPtr*)&PDoc);
  return PDoc;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_SystemTab(Kompasltapi7_tlb::IPropertyTabPtr* PDoc/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SystemTab"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyTab**)PDoc /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyTabPtr __fastcall
IPropertyTabsDispT<T>::get_SystemTab(void)
{
  Kompasltapi7_tlb::IPropertyTabPtr PDoc;
  this->get_SystemTab((Kompasltapi7_tlb::IPropertyTabPtr*)&PDoc);
  return PDoc;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IPropertyTabsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyTabsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyTabsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyTabsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyTabsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyTabsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyTabsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyTab
// Interface: IPropertyTab
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyTabT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::set_Caption(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_Caption(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Caption(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyTabT<T>::get_Caption(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Caption((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Active(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Active(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyTabT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Active((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::get_PropertyControls(Kompasltapi7_tlb::IPropertyControlsPtr* PControls/*[out,retval]*/)
{
  return (*this)->get_PropertyControls(PControls);
}

template <class T> Kompasltapi7_tlb::IPropertyControlsPtr __fastcall
TCOMIPropertyTabT<T>::get_PropertyControls(void)
{
  Kompasltapi7_tlb::IPropertyControlsPtr PControls;
  OLECHECK(this->get_PropertyControls((Kompasltapi7_tlb::IPropertyControlsPtr*)&PControls));
  return PControls;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  return (*this)->set_ResModule(HInstance);
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  return (*this)->get_ResModule(HInstance);
}

template <class T> TVariant __fastcall
TCOMIPropertyTabT<T>::get_ResModule(void)
{
  TVariant HInstance;
  OLECHECK(this->get_ResModule((TVariant*)&HInstance));
  return HInstance;
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::set_Image(TVariantInParam Bmp/*[in]*/)
{
  return (*this)->set_Image(Bmp);
}

template <class T> HRESULT __fastcall
TCOMIPropertyTabT<T>::get_Image(TVariant* Bmp/*[out,retval]*/)
{
  return (*this)->get_Image(Bmp);
}

template <class T> TVariant __fastcall
TCOMIPropertyTabT<T>::get_Image(void)
{
  TVariant Bmp;
  OLECHECK(this->get_Image((TVariant*)&Bmp));
  return Bmp;
}

// *********************************************************************//
// DispIntf:  IPropertyTab
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {45DE8E5B-BC2B-4584-8BA7-D3014D3A2397}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyTabDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::set_Caption(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyTabDispT<T>::get_Caption(void)
{
  BSTR PVal;
  this->get_Caption((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyTabDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_PropertyControls(Kompasltapi7_tlb::IPropertyControlsPtr* PControls/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PropertyControls"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyControls**)PControls /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyControlsPtr __fastcall
IPropertyTabDispT<T>::get_PropertyControls(void)
{
  Kompasltapi7_tlb::IPropertyControlsPtr PControls;
  this->get_PropertyControls((Kompasltapi7_tlb::IPropertyControlsPtr*)&PControls);
  return PControls;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = HInstance /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HInstance /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyTabDispT<T>::get_ResModule(void)
{
  TVariant HInstance;
  this->get_ResModule((TVariant*)&HInstance);
  return HInstance;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::set_Image(TVariantInParam Bmp/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Image"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Bmp /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Image(TVariant* Bmp/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Image"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Bmp /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyTabDispT<T>::get_Image(void)
{
  TVariant Bmp;
  this->get_Image((TVariant*)&Bmp);
  return Bmp;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyTabDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyTabDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyTabDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyTabDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyTabDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyControls
// Interface: IPropertyControls
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyControlsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IPropertyControlPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IPropertyControlPtr __fastcall
TCOMIPropertyControlsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyControlPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IPropertyControlPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPropertyControlsT<T>::Add(ControlTypeEnum Type/*[in]*/, 
                               Kompasltapi7_tlb::IPropertyControlPtr* PControl/*[out,retval]*/)
{
  return (*this)->Add(Type, PControl);
}

template <class T> Kompasltapi7_tlb::IPropertyControlPtr __fastcall
TCOMIPropertyControlsT<T>::Add(ControlTypeEnum Type/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyControlPtr PControl;
  OLECHECK(this->Add(Type, (Kompasltapi7_tlb::IPropertyControlPtr*)&PControl));
  return PControl;
}

template <class T> HRESULT __fastcall
TCOMIPropertyControlsT<T>::Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(Index, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyControlsT<T>::Delete(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete(Index, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyControls
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {548241BA-FDA8-4633-981E-94552BE38D6B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IPropertyControlPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyControl**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyControlPtr __fastcall
IPropertyControlsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyControlPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IPropertyControlPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::Add(ControlTypeEnum Type/*[in]*/, 
                               Kompasltapi7_tlb::IPropertyControlPtr* PControl/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyControl**)PControl /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyControlPtr __fastcall
IPropertyControlsDispT<T>::Add(ControlTypeEnum Type/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyControlPtr PControl;
  this->Add(Type, (Kompasltapi7_tlb::IPropertyControlPtr*)&PControl);
  return PControl;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::Delete(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyControlsDispT<T>::Delete(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->Delete(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IPropertyControlsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyControlsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyControlsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyControlsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyControlsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyControlsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyControlsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyControl
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E35F8FF8-03C6-460C-A2F1-294A3A29A029}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyControlDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyControlDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyControlDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyControlDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyControlDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyControlDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyControlDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyControlDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyControlDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyControlDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyControlDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyControlDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyControlDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyControlDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyManager
// Interface: IPropertyManager
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyManagerT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::set_Caption(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_Caption(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Caption(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyManagerT<T>::get_Caption(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Caption((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::set_Layout(PropertyManagerLayout PVal/*[in]*/)
{
  return (*this)->set_Layout(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/)
{
  return (*this)->get_Layout(PVal);
}

template <class T> PropertyManagerLayout __fastcall
TCOMIPropertyManagerT<T>::get_Layout(void)
{
  PropertyManagerLayout PVal;
  OLECHECK(this->get_Layout((PropertyManagerLayout*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/)
{
  return (*this)->get_PropertyTabs(Tabs);
}

template <class T> Kompasltapi7_tlb::IPropertyTabsPtr __fastcall
TCOMIPropertyManagerT<T>::get_PropertyTabs(void)
{
  Kompasltapi7_tlb::IPropertyTabsPtr Tabs;
  OLECHECK(this->get_PropertyTabs((Kompasltapi7_tlb::IPropertyTabsPtr*)&Tabs));
  return Tabs;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::SetGabaritRect(long Left/*[in]*/, long Top/*[in]*/, long Right/*[in]*/, 
                                         long Bottom/*[in]*/)
{
  return (*this)->SetGabaritRect(Left, Top, Right, Bottom);
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::GetGabaritRect(long* Left/*[out]*/, long* Top/*[out]*/, 
                                         long* Right/*[out]*/, long* Bottom/*[out]*/)
{
  return (*this)->GetGabaritRect(Left, Top, Right, Bottom);
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::ShowTabs(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->ShowTabs(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyManagerT<T>::ShowTabs(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->ShowTabs((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::UpdateTabs(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->UpdateTabs(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyManagerT<T>::UpdateTabs(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->UpdateTabs((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::HideTabs(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->HideTabs(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyManagerT<T>::HideTabs(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->HideTabs((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/)
{
  return (*this)->set_SpecToolbar(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SpecToolbar(PVal);
}

template <class T> SpecPropertyToolBarEnum __fastcall
TCOMIPropertyManagerT<T>::get_SpecToolbar(void)
{
  SpecPropertyToolBarEnum PVal;
  OLECHECK(this->get_SpecToolbar((SpecPropertyToolBarEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::RepeatCommand(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->RepeatCommand(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyManagerT<T>::RepeatCommand(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->RepeatCommand((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::set_AutoHideMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_AutoHideMode(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyManagerT<T>::get_AutoHideMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoHideMode(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyManagerT<T>::get_AutoHideMode(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoHideMode((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {34196EC3-58B2-436C-A353-427703740874}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyManagerDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::set_Caption(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyManagerDispT<T>::get_Caption(void)
{
  BSTR PVal;
  this->get_Caption((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::set_Layout(PropertyManagerLayout PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Layout"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Layout"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyManagerLayout __fastcall
IPropertyManagerDispT<T>::get_Layout(void)
{
  PropertyManagerLayout PVal;
  this->get_Layout((PropertyManagerLayout*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_PropertyTabs(Kompasltapi7_tlb::IPropertyTabsPtr* Tabs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PropertyTabs"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPropertyTabs**)Tabs /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyTabsPtr __fastcall
IPropertyManagerDispT<T>::get_PropertyTabs(void)
{
  Kompasltapi7_tlb::IPropertyTabsPtr Tabs;
  this->get_PropertyTabs((Kompasltapi7_tlb::IPropertyTabsPtr*)&Tabs);
  return Tabs;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::SetGabaritRect(long Left/*[in]*/, long Top/*[in]*/, long Right/*[in]*/, 
                                         long Bottom/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetGabaritRect"), DISPID(5));
  TAutoArgs<4> _args;
  _args[1] = Left /*[VT_I4:0]*/;
  _args[2] = Top /*[VT_I4:0]*/;
  _args[3] = Right /*[VT_I4:0]*/;
  _args[4] = Bottom /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::GetGabaritRect(long* Left/*[out]*/, long* Top/*[out]*/, 
                                         long* Right/*[out]*/, long* Bottom/*[out]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetGabaritRect"), DISPID(6));
  TAutoArgs<4> _args;
  _args[1] = Left /*[VT_I4:1]*/;
  _args[2] = Top /*[VT_I4:1]*/;
  _args[3] = Right /*[VT_I4:1]*/;
  _args[4] = Bottom /*[VT_I4:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::ShowTabs(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowTabs"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyManagerDispT<T>::ShowTabs(void)
{
  TOLEBOOL PVal;
  this->ShowTabs((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::UpdateTabs(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UpdateTabs"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyManagerDispT<T>::UpdateTabs(void)
{
  TOLEBOOL PVal;
  this->UpdateTabs((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::HideTabs(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideTabs"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyManagerDispT<T>::HideTabs(void)
{
  TOLEBOOL PVal;
  this->HideTabs((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::set_SpecToolbar(SpecPropertyToolBarEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecToolbar"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_SpecToolbar(SpecPropertyToolBarEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecToolbar"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> SpecPropertyToolBarEnum __fastcall
IPropertyManagerDispT<T>::get_SpecToolbar(void)
{
  SpecPropertyToolBarEnum PVal;
  this->get_SpecToolbar((SpecPropertyToolBarEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::RepeatCommand(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RepeatCommand"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyManagerDispT<T>::RepeatCommand(void)
{
  TOLEBOOL PVal;
  this->RepeatCommand((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::set_AutoHideMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoHideMode"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_AutoHideMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoHideMode"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyManagerDispT<T>::get_AutoHideMode(void)
{
  TOLEBOOL PVal;
  this->get_AutoHideMode((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyManagerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyManagerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyManagerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyManagerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyManagerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILibraryManager
// Interface: ILibraryManager
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_ProceduresLibraries(Kompasltapi7_tlb::IProceduresLibrariesPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ProceduresLibraries(Result);
}

template <class T> Kompasltapi7_tlb::IProceduresLibrariesPtr __fastcall
TCOMILibraryManagerT<T>::get_ProceduresLibraries(void)
{
  Kompasltapi7_tlb::IProceduresLibrariesPtr Result;
  OLECHECK(this->get_ProceduresLibraries((Kompasltapi7_tlb::IProceduresLibrariesPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_FragmentsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/)
{
  return (*this)->get_FragmentsLibraries(Result);
}

template <class T> Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall
TCOMILibraryManagerT<T>::get_FragmentsLibraries(void)
{
  Kompasltapi7_tlb::IInsertsLibrariesPtr Result;
  OLECHECK(this->get_FragmentsLibraries((Kompasltapi7_tlb::IInsertsLibrariesPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_ModelsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ModelsLibraries(Result);
}

template <class T> Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall
TCOMILibraryManagerT<T>::get_ModelsLibraries(void)
{
  Kompasltapi7_tlb::IInsertsLibrariesPtr Result;
  OLECHECK(this->get_ModelsLibraries((Kompasltapi7_tlb::IInsertsLibrariesPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMILibraryManagerT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::set_Visible(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/)
{
  return (*this)->get_Layout(PVal);
}

template <class T> PropertyManagerLayout __fastcall
TCOMILibraryManagerT<T>::get_Layout(void)
{
  PropertyManagerLayout PVal;
  OLECHECK(this->get_Layout((PropertyManagerLayout*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_ActiveFolder(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ActiveFolder(PVal);
}

template <class T> BSTR __fastcall
TCOMILibraryManagerT<T>::get_ActiveFolder(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ActiveFolder((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::set_ActiveFolder(BSTR PVal/*[in]*/)
{
  return (*this)->set_ActiveFolder(PVal);
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_ActiveFolderComment(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_ActiveFolderComment(PVal);
}

template <class T> TVariant __fastcall
TCOMILibraryManagerT<T>::get_ActiveFolderComment(void)
{
  TVariant PVal;
  OLECHECK(this->get_ActiveFolderComment((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::set_ActiveFolderComment(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_ActiveFolderComment(PVal);
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::AddFolder(BSTR PathFolder/*[in]*/)
{
  return (*this)->AddFolder(PathFolder);
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::RemoveFolder(BSTR PathFolder/*[in]*/)
{
  return (*this)->RemoveFolder(PathFolder);
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_SystemControlStartLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SystemControlStartLibrary(PVal);
}

template <class T> Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall
TCOMILibraryManagerT<T>::get_SystemControlStartLibrary(void)
{
  Kompasltapi7_tlb::IProceduresLibraryPtr PVal;
  OLECHECK(this->get_SystemControlStartLibrary((Kompasltapi7_tlb::IProceduresLibraryPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_CurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_CurrentLibrary(PVal);
}

template <class T> Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall
TCOMILibraryManagerT<T>::get_CurrentLibrary(void)
{
  Kompasltapi7_tlb::IProceduresLibraryPtr PVal;
  OLECHECK(this->get_CurrentLibrary((Kompasltapi7_tlb::IProceduresLibraryPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCurrentLibrary(PVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILibraryManagerT<T>::SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCurrentLibrary(PVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibraryManagerT<T>::get_SystemControlStartResult(ksSystemControlStartEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SystemControlStartResult(PVal);
}

template <class T> ksSystemControlStartEnum __fastcall
TCOMILibraryManagerT<T>::get_SystemControlStartResult(void)
{
  ksSystemControlStartEnum PVal;
  OLECHECK(this->get_SystemControlStartResult((ksSystemControlStartEnum*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILibraryManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {53CDC510-99EA-4736-8542-194F4D8FB32B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_ProceduresLibraries(Kompasltapi7_tlb::IProceduresLibrariesPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProceduresLibraries"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProceduresLibraries**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProceduresLibrariesPtr __fastcall
ILibraryManagerDispT<T>::get_ProceduresLibraries(void)
{
  Kompasltapi7_tlb::IProceduresLibrariesPtr Result;
  this->get_ProceduresLibraries((Kompasltapi7_tlb::IProceduresLibrariesPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_FragmentsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FragmentsLibraries"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertsLibraries**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall
ILibraryManagerDispT<T>::get_FragmentsLibraries(void)
{
  Kompasltapi7_tlb::IInsertsLibrariesPtr Result;
  this->get_FragmentsLibraries((Kompasltapi7_tlb::IInsertsLibrariesPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_ModelsLibraries(Kompasltapi7_tlb::IInsertsLibrariesPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelsLibraries"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertsLibraries**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertsLibrariesPtr __fastcall
ILibraryManagerDispT<T>::get_ModelsLibraries(void)
{
  Kompasltapi7_tlb::IInsertsLibrariesPtr Result;
  this->get_ModelsLibraries((Kompasltapi7_tlb::IInsertsLibrariesPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibraryManagerDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::set_Visible(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_Layout(PropertyManagerLayout* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Layout"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyManagerLayout __fastcall
ILibraryManagerDispT<T>::get_Layout(void)
{
  PropertyManagerLayout PVal;
  this->get_Layout((PropertyManagerLayout*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_ActiveFolder(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveFolder"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILibraryManagerDispT<T>::get_ActiveFolder(void)
{
  BSTR PVal;
  this->get_ActiveFolder((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::set_ActiveFolder(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveFolder"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_ActiveFolderComment(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveFolderComment"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ILibraryManagerDispT<T>::get_ActiveFolderComment(void)
{
  TVariant PVal;
  this->get_ActiveFolderComment((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::set_ActiveFolderComment(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveFolderComment"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::AddFolder(BSTR PathFolder/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddFolder"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PathFolder /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::RemoveFolder(BSTR PathFolder/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveFolder"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PathFolder /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_SystemControlStartLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SystemControlStartLibrary"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProceduresLibrary**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall
ILibraryManagerDispT<T>::get_SystemControlStartLibrary(void)
{
  Kompasltapi7_tlb::IProceduresLibraryPtr PVal;
  this->get_SystemControlStartLibrary((Kompasltapi7_tlb::IProceduresLibraryPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_CurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentLibrary"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProceduresLibrary**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall
ILibraryManagerDispT<T>::get_CurrentLibrary(void)
{
  Kompasltapi7_tlb::IProceduresLibraryPtr PVal;
  this->get_CurrentLibrary((Kompasltapi7_tlb::IProceduresLibraryPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCurrentLibrary"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IProceduresLibrary*)PVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibraryManagerDispT<T>::SetCurrentLibrary(Kompasltapi7_tlb::IProceduresLibraryPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCurrentLibrary(PVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_SystemControlStartResult(ksSystemControlStartEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SystemControlStartResult"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksSystemControlStartEnum __fastcall
ILibraryManagerDispT<T>::get_SystemControlStartResult(void)
{
  ksSystemControlStartEnum PVal;
  this->get_SystemControlStartResult((ksSystemControlStartEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILibraryManagerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILibraryManagerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILibraryManagerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILibraryManagerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILibraryManagerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIProceduresLibraries
// Interface: IProceduresLibraries
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIProceduresLibrariesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IProceduresLibraryPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall
TCOMIProceduresLibrariesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IProceduresLibraryPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IProceduresLibraryPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IProceduresLibraries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {80F95B5B-DB8A-46B7-8C22-605A0AECD597}
// *********************************************************************//
template <class T> HRESULT __fastcall
IProceduresLibrariesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IProceduresLibraryPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProceduresLibrary**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProceduresLibraryPtr __fastcall
IProceduresLibrariesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IProceduresLibraryPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IProceduresLibraryPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IProceduresLibrariesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IProceduresLibrariesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IProceduresLibrariesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProceduresLibrariesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibrariesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IProceduresLibrariesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibrariesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IProceduresLibrariesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibrariesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IProceduresLibrariesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IProceduresLibrariesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProceduresLibrariesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D6E9AE1-7DDF-4354-B8D0-E12023B186FA}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_LibraryManagerFolder(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryManagerFolder"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILibraryDispT<T>::get_LibraryManagerFolder(void)
{
  BSTR PVal;
  this->get_LibraryManagerFolder((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_Attach(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibraryDispT<T>::get_Attach(void)
{
  TOLEBOOL PVal;
  this->get_Attach((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::set_Attach(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_LibraryType(ksLibraryTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryType"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLibraryTypeEnum __fastcall
ILibraryDispT<T>::get_LibraryType(void)
{
  ksLibraryTypeEnum PVal;
  this->get_LibraryType((ksLibraryTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILibraryDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILibraryDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibraryDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/, 
                          TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Execute"), DISPID(2007));
  TAutoArgs<3> _args;
  _args[1] = Command /*[VT_I4:0]*/;
  _args[2] = External /*[VT_DISPATCH:0]*/;
  _args[3] = Post /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibraryDispT<T>::Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/)
{
  TOLEBOOL PVal;
  this->Execute(Command, External, Post, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILibraryDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILibraryDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILibraryDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILibraryDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILibraryDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIProceduresLibrary
// Interface: IProceduresLibrary
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_Style(ksLibraryStyleEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Style(PVal);
}

template <class T> ksLibraryStyleEnum __fastcall
TCOMIProceduresLibraryT<T>::get_Style(void)
{
  ksLibraryStyleEnum PVal;
  OLECHECK(this->get_Style((ksLibraryStyleEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::set_Style(ksLibraryStyleEnum PVal/*[in]*/)
{
  return (*this)->set_Style(PVal);
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_Procedures(Kompasltapi7_tlb::IProceduresPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Procedures(PVal);
}

template <class T> Kompasltapi7_tlb::IProceduresPtr __fastcall
TCOMIProceduresLibraryT<T>::get_Procedures(void)
{
  Kompasltapi7_tlb::IProceduresPtr PVal;
  OLECHECK(this->get_Procedures((Kompasltapi7_tlb::IProceduresPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_CurrentCommand(long* PVal/*[out,retval]*/)
{
  return (*this)->get_CurrentCommand(PVal);
}

template <class T> long __fastcall
TCOMIProceduresLibraryT<T>::get_CurrentCommand(void)
{
  long PVal;
  OLECHECK(this->get_CurrentCommand((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::SystemControlStop(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SystemControlStop(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIProceduresLibraryT<T>::SystemControlStop(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->SystemControlStop((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::SystemControlStart(BSTR menuCommand/*[in]*/, 
                                               ksSystemControlStartEnum* PVal/*[out,retval]*/)
{
  return (*this)->SystemControlStart(menuCommand, PVal);
}

template <class T> ksSystemControlStartEnum __fastcall
TCOMIProceduresLibraryT<T>::SystemControlStart(BSTR menuCommand/*[in]*/)
{
  ksSystemControlStartEnum PVal;
  OLECHECK(this->SystemControlStart(menuCommand, (ksSystemControlStartEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_UniqueId(long* PVal/*[out,retval]*/)
{
  return (*this)->get_UniqueId(PVal);
}

template <class T> long __fastcall
TCOMIProceduresLibraryT<T>::get_UniqueId(void)
{
  long PVal;
  OLECHECK(this->get_UniqueId((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_Executable(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Executable(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIProceduresLibraryT<T>::get_Executable(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Executable((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_AddIns(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AddIns(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIProceduresLibraryT<T>::get_AddIns(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AddIns((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_ExternalInterface(LPDISPATCH* PVal/*[out,retval]*/)
{
  return (*this)->get_ExternalInterface(PVal);
}

template <class T> LPDISPATCH __fastcall
TCOMIProceduresLibraryT<T>::get_ExternalInterface(void)
{
  LPDISPATCH PVal;
  OLECHECK(this->get_ExternalInterface((LPDISPATCH*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProceduresLibraryT<T>::get_LibraryName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LibraryName(PVal);
}

template <class T> BSTR __fastcall
TCOMIProceduresLibraryT<T>::get_LibraryName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LibraryName((BSTR*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IProceduresLibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1AECE59E-DE4C-4FB9-B62B-7967573AD3B1}
// *********************************************************************//
template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Style(ksLibraryStyleEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLibraryStyleEnum __fastcall
IProceduresLibraryDispT<T>::get_Style(void)
{
  ksLibraryStyleEnum PVal;
  this->get_Style((ksLibraryStyleEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::set_Style(ksLibraryStyleEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Procedures(Kompasltapi7_tlb::IProceduresPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Procedures"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProcedures**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProceduresPtr __fastcall
IProceduresLibraryDispT<T>::get_Procedures(void)
{
  Kompasltapi7_tlb::IProceduresPtr PVal;
  this->get_Procedures((Kompasltapi7_tlb::IProceduresPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_CurrentCommand(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentCommand"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProceduresLibraryDispT<T>::get_CurrentCommand(void)
{
  long PVal;
  this->get_CurrentCommand((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::SystemControlStop(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SystemControlStop"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProceduresLibraryDispT<T>::SystemControlStop(void)
{
  TOLEBOOL PVal;
  this->SystemControlStop((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::SystemControlStart(BSTR menuCommand/*[in]*/, 
                                               ksSystemControlStartEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SystemControlStart"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = menuCommand /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> ksSystemControlStartEnum __fastcall
IProceduresLibraryDispT<T>::SystemControlStart(BSTR menuCommand/*[in]*/)
{
  ksSystemControlStartEnum PVal;
  this->SystemControlStart(menuCommand, (ksSystemControlStartEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_UniqueId(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UniqueId"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProceduresLibraryDispT<T>::get_UniqueId(void)
{
  long PVal;
  this->get_UniqueId((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Executable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Executable"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProceduresLibraryDispT<T>::get_Executable(void)
{
  TOLEBOOL PVal;
  this->get_Executable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_AddIns(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddIns"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProceduresLibraryDispT<T>::get_AddIns(void)
{
  TOLEBOOL PVal;
  this->get_AddIns((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_ExternalInterface(LPDISPATCH* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExternalInterface"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IProceduresLibraryDispT<T>::get_ExternalInterface(void)
{
  LPDISPATCH PVal;
  this->get_ExternalInterface((LPDISPATCH*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_LibraryName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryName"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProceduresLibraryDispT<T>::get_LibraryName(void)
{
  BSTR PVal;
  this->get_LibraryName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_LibraryManagerFolder(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryManagerFolder"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProceduresLibraryDispT<T>::get_LibraryManagerFolder(void)
{
  BSTR PVal;
  this->get_LibraryManagerFolder((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Attach(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProceduresLibraryDispT<T>::get_Attach(void)
{
  TOLEBOOL PVal;
  this->get_Attach((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::set_Attach(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_LibraryType(ksLibraryTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryType"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLibraryTypeEnum __fastcall
IProceduresLibraryDispT<T>::get_LibraryType(void)
{
  ksLibraryTypeEnum PVal;
  this->get_LibraryType((ksLibraryTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProceduresLibraryDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProceduresLibraryDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProceduresLibraryDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                    TOLEBOOL Post/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Execute"), DISPID(2007));
  TAutoArgs<3> _args;
  _args[1] = Command /*[VT_I4:0]*/;
  _args[2] = External /*[VT_DISPATCH:0]*/;
  _args[3] = Post /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProceduresLibraryDispT<T>::Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                    TOLEBOOL Post/*[in]*/)
{
  TOLEBOOL PVal;
  this->Execute(Command, External, Post, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IProceduresLibraryDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IProceduresLibraryDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IProceduresLibraryDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IProceduresLibraryDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProceduresLibraryDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIProcedures
// Interface: IProcedures
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIProceduresT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IProcedurePtr __fastcall
TCOMIProceduresT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IProcedurePtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IProcedurePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIProceduresT<T>::get_ItemByID(long Id/*[in]*/, 
                                  Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/)
{
  return (*this)->get_ItemByID(Id, Result);
}

template <class T> Kompasltapi7_tlb::IProcedurePtr __fastcall
TCOMIProceduresT<T>::get_ItemByID(long Id/*[in]*/)
{
  Kompasltapi7_tlb::IProcedurePtr Result;
  OLECHECK(this->get_ItemByID(Id, (Kompasltapi7_tlb::IProcedurePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IProcedures
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1A77F076-2295-40F9-B1AA-2838C4CA0887}
// *********************************************************************//
template <class T> HRESULT __fastcall
IProceduresDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProcedure**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProcedurePtr __fastcall
IProceduresDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IProcedurePtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IProcedurePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IProceduresDispT<T>::get_ItemByID(long Id/*[in]*/, 
                                  Kompasltapi7_tlb::IProcedurePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemByID"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProcedure**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IProcedurePtr __fastcall
IProceduresDispT<T>::get_ItemByID(long Id/*[in]*/)
{
  Kompasltapi7_tlb::IProcedurePtr Result;
  this->get_ItemByID(Id, (Kompasltapi7_tlb::IProcedurePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IProceduresDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IProceduresDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IProceduresDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProceduresDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IProceduresDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IProceduresDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProceduresDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IProceduresDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IProceduresDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProceduresDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIProcedure
// Interface: IProcedure
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIProcedureT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIProcedureT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProcedureT<T>::get_LibraryFolder(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LibraryFolder(PVal);
}

template <class T> BSTR __fastcall
TCOMIProcedureT<T>::get_LibraryFolder(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LibraryFolder((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProcedureT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Id(PVal);
}

template <class T> long __fastcall
TCOMIProcedureT<T>::get_Id(void)
{
  long PVal;
  OLECHECK(this->get_Id((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIProcedureT<T>::Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/, 
                            TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Execute(External, Post, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIProcedureT<T>::Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->Execute(External, Post, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IProcedure
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7BF9DF08-D14D-4DA9-ABC2-FB458E7122D0}
// *********************************************************************//
template <class T> HRESULT __fastcall
IProcedureDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProcedureDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcedureDispT<T>::get_LibraryFolder(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryFolder"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProcedureDispT<T>::get_LibraryFolder(void)
{
  BSTR PVal;
  this->get_LibraryFolder((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcedureDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProcedureDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcedureDispT<T>::Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/, 
                            TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Execute"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = External /*[VT_DISPATCH:0]*/;
  _args[2] = Post /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProcedureDispT<T>::Execute(LPDISPATCH External/*[in]*/, TOLEBOOL Post/*[in]*/)
{
  TOLEBOOL PVal;
  this->Execute(External, Post, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcedureDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IProcedureDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcedureDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IProcedureDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcedureDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IProcedureDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IProcedureDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProcedureDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIInsertsLibraries
// Interface: IInsertsLibraries
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertsLibrariesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IInsertsLibraryPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IInsertsLibraryPtr __fastcall
TCOMIInsertsLibrariesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IInsertsLibraryPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IInsertsLibraryPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IInsertsLibraries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6E82D68-69D5-40C0-9A85-275B22219135}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertsLibrariesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IInsertsLibraryPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertsLibrary**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertsLibraryPtr __fastcall
IInsertsLibrariesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IInsertsLibraryPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IInsertsLibraryPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertsLibrariesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IInsertsLibrariesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IInsertsLibrariesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertsLibrariesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibrariesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertsLibrariesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibrariesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertsLibrariesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibrariesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertsLibrariesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertsLibrariesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertsLibrariesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIInsertsLibrary
// Interface: IInsertsLibrary
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertsLibraryT<T>::get_ActiveFolder(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ActiveFolder(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertsLibraryT<T>::get_ActiveFolder(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ActiveFolder((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertsLibraryT<T>::SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                         TOLEBOOL HaveLibName, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetActiveFolder(PathFolder, LastIsFile, HaveLibName, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIInsertsLibraryT<T>::SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                         TOLEBOOL HaveLibName)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetActiveFolder(PathFolder, LastIsFile, HaveLibName, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertsLibraryT<T>::get_Inserts(Kompasltapi7_tlb::IInsertsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Inserts(PVal);
}

template <class T> Kompasltapi7_tlb::IInsertsPtr __fastcall
TCOMIInsertsLibraryT<T>::get_Inserts(void)
{
  Kompasltapi7_tlb::IInsertsPtr PVal;
  OLECHECK(this->get_Inserts((Kompasltapi7_tlb::IInsertsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertsLibraryT<T>::AddFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->AddFolder(PathFolder, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIInsertsLibraryT<T>::AddFolder(BSTR PathFolder/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->AddFolder(PathFolder, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertsLibraryT<T>::RemoveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->RemoveFolder(PathFolder, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIInsertsLibraryT<T>::RemoveFolder(BSTR PathFolder/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->RemoveFolder(PathFolder, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsertsLibrary
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {885CAD68-B42B-45CF-8620-E0138558EFE3}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_ActiveFolder(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveFolder"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertsLibraryDispT<T>::get_ActiveFolder(void)
{
  BSTR PVal;
  this->get_ActiveFolder((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                         TOLEBOOL HaveLibName, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetActiveFolder"), DISPID(2));
  TAutoArgs<3> _args;
  _args[1] = PathFolder /*[VT_BSTR:0]*/;
  _args[2] = LastIsFile /*[VT_BOOL:0]*/;
  _args[3] = HaveLibName /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertsLibraryDispT<T>::SetActiveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL LastIsFile, 
                                         TOLEBOOL HaveLibName)
{
  TOLEBOOL PVal;
  this->SetActiveFolder(PathFolder, LastIsFile, HaveLibName, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Inserts(Kompasltapi7_tlb::IInsertsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Inserts"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInserts**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertsPtr __fastcall
IInsertsLibraryDispT<T>::get_Inserts(void)
{
  Kompasltapi7_tlb::IInsertsPtr PVal;
  this->get_Inserts((Kompasltapi7_tlb::IInsertsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::AddFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddFolder"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PathFolder /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertsLibraryDispT<T>::AddFolder(BSTR PathFolder/*[in]*/)
{
  TOLEBOOL PVal;
  this->AddFolder(PathFolder, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::RemoveFolder(BSTR PathFolder/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveFolder"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PathFolder /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertsLibraryDispT<T>::RemoveFolder(BSTR PathFolder/*[in]*/)
{
  TOLEBOOL PVal;
  this->RemoveFolder(PathFolder, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_LibraryManagerFolder(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryManagerFolder"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertsLibraryDispT<T>::get_LibraryManagerFolder(void)
{
  BSTR PVal;
  this->get_LibraryManagerFolder((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Attach(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertsLibraryDispT<T>::get_Attach(void)
{
  TOLEBOOL PVal;
  this->get_Attach((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::set_Attach(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_LibraryType(ksLibraryTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryType"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLibraryTypeEnum __fastcall
IInsertsLibraryDispT<T>::get_LibraryType(void)
{
  ksLibraryTypeEnum PVal;
  this->get_LibraryType((ksLibraryTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertsLibraryDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertsLibraryDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertsLibraryDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                 TOLEBOOL Post/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Execute"), DISPID(2007));
  TAutoArgs<3> _args;
  _args[1] = Command /*[VT_I4:0]*/;
  _args[2] = External /*[VT_DISPATCH:0]*/;
  _args[3] = Post /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertsLibraryDispT<T>::Execute(long Command/*[in]*/, LPDISPATCH External/*[in]*/, 
                                 TOLEBOOL Post/*[in]*/)
{
  TOLEBOOL PVal;
  this->Execute(Command, External, Post, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertsLibraryDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertsLibraryDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertsLibraryDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertsLibraryDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertsLibraryDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIInserts
// Interface: IInserts
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IInsertPtr __fastcall
TCOMIInsertsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IInsertPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IInsertPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIInsertsT<T>::Add(BSTR Name/*[in]*/, DocumentTypeEnum DocType, 
                      Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Name, DocType, Result);
}

template <class T> Kompasltapi7_tlb::IInsertPtr __fastcall
TCOMIInsertsT<T>::Add(BSTR Name/*[in]*/, DocumentTypeEnum DocType)
{
  Kompasltapi7_tlb::IInsertPtr Result;
  OLECHECK(this->Add(Name, DocType, (Kompasltapi7_tlb::IInsertPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IInserts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FCBF6340-119D-4736-BB95-F1EAB4BEF1B8}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsert**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertPtr __fastcall
IInsertsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IInsertPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IInsertPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertsDispT<T>::Add(BSTR Name/*[in]*/, DocumentTypeEnum DocType, 
                      Kompasltapi7_tlb::IInsertPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = (int)DocType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsert**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertPtr __fastcall
IInsertsDispT<T>::Add(BSTR Name/*[in]*/, DocumentTypeEnum DocType)
{
  Kompasltapi7_tlb::IInsertPtr Result;
  this->Add(Name, DocType, (Kompasltapi7_tlb::IInsertPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IInsertsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IInsertsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIInsert
// Interface: IInsert
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertT<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertT<T>::get_Comment(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Comment(PVal);
}

template <class T> TVariant __fastcall
TCOMIInsertT<T>::get_Comment(void)
{
  TVariant PVal;
  OLECHECK(this->get_Comment((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertT<T>::set_Comment(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Comment(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertT<T>::get_LibraryFolder(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LibraryFolder(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertT<T>::get_LibraryFolder(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LibraryFolder((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_PathName(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertT<T>::get_PathName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_PathName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertT<T>::Edit(Kompasltapi7_tlb::IKompasDocumentPtr* PVal/*[out,retval]*/)
{
  return (*this)->Edit(PVal);
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
TCOMIInsertT<T>::Edit(void)
{
  Kompasltapi7_tlb::IKompasDocumentPtr PVal;
  OLECHECK(this->Edit((Kompasltapi7_tlb::IKompasDocumentPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIInsertT<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsert
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D6A6D305-6B5C-4392-B61D-D669C092EEF2}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::get_Comment(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IInsertDispT<T>::get_Comment(void)
{
  TVariant PVal;
  this->get_Comment((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::set_Comment(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::get_LibraryFolder(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryFolder"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertDispT<T>::get_LibraryFolder(void)
{
  BSTR PVal;
  this->get_LibraryFolder((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::Edit(Kompasltapi7_tlb::IKompasDocumentPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edit"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocumentPtr __fastcall
IInsertDispT<T>::Edit(void)
{
  Kompasltapi7_tlb::IKompasDocumentPtr PVal;
  this->Edit((Kompasltapi7_tlb::IKompasDocumentPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertDispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIKompasError
// Interface: IKompasError
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIKompasErrorT<T>::get_Code(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Code(PVal);
}

template <class T> long __fastcall
TCOMIKompasErrorT<T>::get_Code(void)
{
  long PVal;
  OLECHECK(this->get_Code((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasErrorT<T>::get_Description(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Description(PVal);
}

template <class T> BSTR __fastcall
TCOMIKompasErrorT<T>::get_Description(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Description((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasErrorT<T>::get_Error3D(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Error3D(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasErrorT<T>::get_Error3D(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Error3D((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasErrorT<T>::Report(void)
{
  return (*this)->Report();
}

template <class T> HRESULT __fastcall
TCOMIKompasErrorT<T>::Clear(void)
{
  return (*this)->Clear();
}

// *********************************************************************//
// DispIntf:  IKompasError
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0A8B4CD1-7158-4CE6-96E0-885376F5DE1B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::get_Code(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Code"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasErrorDispT<T>::get_Code(void)
{
  long PVal;
  this->get_Code((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::get_Description(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Description"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasErrorDispT<T>::get_Description(void)
{
  BSTR PVal;
  this->get_Description((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::get_Error3D(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Error3D"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasErrorDispT<T>::get_Error3D(void)
{
  TOLEBOOL PVal;
  this->get_Error3D((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::Report()
{
  _TDispID _dispid(*this, OLETEXT("Report"), DISPID(4));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::Clear()
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(5));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasErrorDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IKompasErrorDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IKompasErrorDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasErrorDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasErrorDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIConverter
// Interface: IConverter
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIConverterT<T>::ConverterParameters(long Command/*[in]*/, LPUNKNOWN* PVal/*[out,retval]*/)
{
  return (*this)->ConverterParameters(Command, PVal);
}

template <class T> LPUNKNOWN __fastcall
TCOMIConverterT<T>::ConverterParameters(long Command/*[in]*/)
{
  LPUNKNOWN PVal;
  OLECHECK(this->ConverterParameters(Command, (LPUNKNOWN*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIConverterT<T>::GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, long* Command/*[out]*/, 
                              BSTR* Result/*[out,retval]*/)
{
  return (*this)->GetFilter(DocType, SaveAs, Command, Result);
}

template <class T> BSTR __fastcall
TCOMIConverterT<T>::GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, long* Command/*[out]*/)
{
  BSTR Result = 0;
  OLECHECK(this->GetFilter(DocType, SaveAs, Command, (BSTR*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIConverterT<T>::Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, long Command/*[in]*/, 
                            TOLEBOOL ShowParam/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->Convert(InputFile, Outfile, Command, ShowParam, Result);
}

template <class T> long __fastcall
TCOMIConverterT<T>::Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, long Command/*[in]*/, 
                            TOLEBOOL ShowParam/*[in]*/)
{
  long Result;
  OLECHECK(this->Convert(InputFile, Outfile, Command, ShowParam, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIConverterT<T>::VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, long Command/*[in]*/, 
                                           TOLEBOOL* Val/*[out,retval]*/)
{
  return (*this)->VisualEditConvertParam(ParentHwnd, Command, Val);
}

template <class T> TOLEBOOL __fastcall
TCOMIConverterT<T>::VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, long Command/*[in]*/)
{
  TOLEBOOL Val;
  OLECHECK(this->VisualEditConvertParam(ParentHwnd, Command, (TOLEBOOL*)&Val));
  return Val;
}

// *********************************************************************//
// DispIntf:  IConverter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {642D03AB-4798-48A5-B075-3CD9AFA18554}
// *********************************************************************//
template <class T> HRESULT __fastcall
IConverterDispT<T>::ConverterParameters(long Command/*[in]*/, LPUNKNOWN* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConverterParameters"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Command /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_UNKNOWN:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IConverterDispT<T>::ConverterParameters(long Command/*[in]*/)
{
  LPUNKNOWN PVal;
  this->ConverterParameters(Command, (LPUNKNOWN*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConverterDispT<T>::GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, long* Command/*[out]*/
                              , BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetFilter"), DISPID(2));
  TAutoArgs<3> _args;
  _args[1] = DocType /*[VT_I4:0]*/;
  _args[2] = SaveAs /*[VT_BOOL:0]*/;
  _args[3] = Command /*[VT_I4:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IConverterDispT<T>::GetFilter(long DocType/*[in]*/, TOLEBOOL SaveAs/*[in]*/, long* Command/*[out]*/)
{
  BSTR Result;
  this->GetFilter(DocType, SaveAs, Command, (BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConverterDispT<T>::Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, long Command/*[in]*/, 
                            TOLEBOOL ShowParam/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Convert"), DISPID(3));
  TAutoArgs<4> _args;
  _args[1] = InputFile /*[VT_BSTR:0]*/;
  _args[2] = Outfile /*[VT_BSTR:0]*/;
  _args[3] = Command /*[VT_I4:0]*/;
  _args[4] = ShowParam /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IConverterDispT<T>::Convert(BSTR InputFile/*[in]*/, BSTR Outfile/*[in]*/, long Command/*[in]*/, 
                            TOLEBOOL ShowParam/*[in]*/)
{
  long Result;
  this->Convert(InputFile, Outfile, Command, ShowParam, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConverterDispT<T>::VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, long Command/*[in]*/, 
                                           TOLEBOOL* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VisualEditConvertParam"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = ParentHwnd /*[VT_INT:0]*/;
  _args[2] = Command /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Val /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConverterDispT<T>::VisualEditConvertParam(OLE_HANDLE ParentHwnd/*[in]*/, long Command/*[in]*/)
{
  TOLEBOOL Val;
  this->VisualEditConvertParam(ParentHwnd, Command, (TOLEBOOL*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IConverterDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IConverterDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConverterDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IConverterDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConverterDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IConverterDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IConverterDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IConverterDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICheckSum
// Interface: ICheckSum
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::Add(TVariantInParam Value/*[in]*/, TOLEBOOL Com/*[in]*/)
{
  return (*this)->Add(Value, Com);
}

template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::get_Result(TVariant* Value/*[out,retval]*/)
{
  return (*this)->get_Result(Value);
}

template <class T> TVariant __fastcall
TCOMICheckSumT<T>::get_Result(void)
{
  TVariant Value;
  OLECHECK(this->get_Result((TVariant*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::get_StrResult(BSTR* StrVal/*[out,retval]*/)
{
  return (*this)->get_StrResult(StrVal);
}

template <class T> BSTR __fastcall
TCOMICheckSumT<T>::get_StrResult(void)
{
  BSTR StrVal = 0;
  OLECHECK(this->get_StrResult((BSTR*)&StrVal));
  return StrVal;
}

template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/, 
                                TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->AddInterface(Object, Com, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMICheckSumT<T>::AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->AddInterface(Object, Com, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, TOLEBOOL Com/*[in]*/, 
                                TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->AddReference(Object, Doc, Com, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMICheckSumT<T>::AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, TOLEBOOL Com/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->AddReference(Object, Doc, Com, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::Clear(void)
{
  return (*this)->Clear();
}

template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::get_Version(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Version(PVal);
}

template <class T> long __fastcall
TCOMICheckSumT<T>::get_Version(void)
{
  long PVal;
  OLECHECK(this->get_Version((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICheckSumT<T>::set_Version(long PVal/*[in]*/)
{
  return (*this)->set_Version(PVal);
}

// *********************************************************************//
// DispIntf:  ICheckSum
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2AA9F713-2328-4E8F-B996-9DFDABC67DC9}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICheckSumDispT<T>::Add(TVariantInParam Value/*[in]*/, TOLEBOOL Com/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = Value /*[VT_VARIANT:0]*/;
  _args[2] = Com /*[VT_BOOL:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::get_Result(TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Result"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ICheckSumDispT<T>::get_Result(void)
{
  TVariant Value;
  this->get_Result((TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::get_StrResult(BSTR* StrVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StrResult"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(StrVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ICheckSumDispT<T>::get_StrResult(void)
{
  BSTR StrVal;
  this->get_StrResult((BSTR*)&StrVal);
  return StrVal;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/, 
                                TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddInterface"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Object /*[VT_UNKNOWN:0]*/;
  _args[2] = Com /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICheckSumDispT<T>::AddInterface(LPUNKNOWN Object/*[in]*/, TOLEBOOL Com/*[in]*/)
{
  TOLEBOOL Res;
  this->AddInterface(Object, Com, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, TOLEBOOL Com/*[in]*/
                                , TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddReference"), DISPID(5));
  TAutoArgs<3> _args;
  _args[1] = Object /*[VT_I4:0]*/;
  _args[2] = Doc /*[VT_I4:0]*/;
  _args[3] = Com /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICheckSumDispT<T>::AddReference(long Object/*[in]*/, long Doc/*[in,def,opt]*/, TOLEBOOL Com/*[in]*/)
{
  TOLEBOOL Res;
  this->AddReference(Object, Doc, Com, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::Clear()
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(6));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::get_Version(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Version"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICheckSumDispT<T>::get_Version(void)
{
  long PVal;
  this->get_Version((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::set_Version(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Version"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICheckSumDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICheckSumDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICheckSumDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICheckSumDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICheckSumDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIProgressBarIndicator
// Interface: IProgressBarIndicator
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIProgressBarIndicatorT<T>::Start(long MinVal/*[in]*/, long MaxVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                     TOLEBOOL ResetVal/*[in]*/)
{
  return (*this)->Start(MinVal, MaxVal, TextVal, ResetVal);
}

template <class T> HRESULT __fastcall
TCOMIProgressBarIndicatorT<T>::SetProgress(long CurrentVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                           TOLEBOOL ResetVal/*[in]*/)
{
  return (*this)->SetProgress(CurrentVal, TextVal, ResetVal);
}

template <class T> HRESULT __fastcall
TCOMIProgressBarIndicatorT<T>::SetText(BSTR TextVal/*[in]*/)
{
  return (*this)->SetText(TextVal);
}

template <class T> HRESULT __fastcall
TCOMIProgressBarIndicatorT<T>::Stop(BSTR TextVal/*[in]*/, TOLEBOOL ResetVal/*[in]*/)
{
  return (*this)->Stop(TextVal, ResetVal);
}

// *********************************************************************//
// DispIntf:  IProgressBarIndicator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BE125ABA-EAB2-4A22-99D7-108C84B6DCC5}
// *********************************************************************//
template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::Start(long MinVal/*[in]*/, long MaxVal/*[in]*/, BSTR TextVal/*[in]*/
                                     , TOLEBOOL ResetVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Start"), DISPID(8001));
  TAutoArgs<4> _args;
  _args[1] = MinVal /*[VT_I4:0]*/;
  _args[2] = MaxVal /*[VT_I4:0]*/;
  _args[3] = TextVal /*[VT_BSTR:0]*/;
  _args[4] = ResetVal /*[VT_BOOL:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::SetProgress(long CurrentVal/*[in]*/, BSTR TextVal/*[in]*/, 
                                           TOLEBOOL ResetVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetProgress"), DISPID(8002));
  TAutoArgs<3> _args;
  _args[1] = CurrentVal /*[VT_I4:0]*/;
  _args[2] = TextVal /*[VT_BSTR:0]*/;
  _args[3] = ResetVal /*[VT_BOOL:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::SetText(BSTR TextVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetText"), DISPID(8003));
  TAutoArgs<1> _args;
  _args[1] = TextVal /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::Stop(BSTR TextVal/*[in]*/, TOLEBOOL ResetVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stop"), DISPID(8004));
  TAutoArgs<2> _args;
  _args[1] = TextVal /*[VT_BSTR:0]*/;
  _args[2] = ResetVal /*[VT_BOOL:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IProgressBarIndicatorDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IProgressBarIndicatorDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IProgressBarIndicatorDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IProgressBarIndicatorDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProgressBarIndicatorDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISystemSettings
// Interface: ISystemSettings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::set_FilesAutoSaveSwitchOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_FilesAutoSaveSwitchOn(PVal);
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::get_FilesAutoSaveSwitchOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FilesAutoSaveSwitchOn(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISystemSettingsT<T>::get_FilesAutoSaveSwitchOn(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FilesAutoSaveSwitchOn((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::set_FilesBackupPrevCopySwitchOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_FilesBackupPrevCopySwitchOn(PVal);
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::get_FilesBackupPrevCopySwitchOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FilesBackupPrevCopySwitchOn(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISystemSettingsT<T>::get_FilesBackupPrevCopySwitchOn(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FilesBackupPrevCopySwitchOn((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::set_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ModelLocalCSCreateInAbsoluteCS(PVal);
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::get_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ModelLocalCSCreateInAbsoluteCS(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISystemSettingsT<T>::get_ModelLocalCSCreateInAbsoluteCS(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ModelLocalCSCreateInAbsoluteCS((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::set_ModelLocalCSSetActive(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ModelLocalCSSetActive(PVal);
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::get_ModelLocalCSSetActive(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ModelLocalCSSetActive(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISystemSettingsT<T>::get_ModelLocalCSSetActive(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ModelLocalCSSetActive((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::set_ModelSmoothMotion(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ModelSmoothMotion(PVal);
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::get_ModelSmoothMotion(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ModelSmoothMotion(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISystemSettingsT<T>::get_ModelSmoothMotion(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ModelSmoothMotion((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISystemSettingsT<T>::get_ReportStyleListSettings(Kompasltapi7_tlb::ILibArraySettingsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_ReportStyleListSettings(PVal);
}

template <class T> Kompasltapi7_tlb::ILibArraySettingsPtr __fastcall
TCOMISystemSettingsT<T>::get_ReportStyleListSettings(void)
{
  Kompasltapi7_tlb::ILibArraySettingsPtr PVal;
  OLECHECK(this->get_ReportStyleListSettings((Kompasltapi7_tlb::ILibArraySettingsPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISystemSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FFB66332-17FF-47EB-AC43-32084F8F6077}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::set_FilesAutoSaveSwitchOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilesAutoSaveSwitchOn"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_FilesAutoSaveSwitchOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilesAutoSaveSwitchOn"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISystemSettingsDispT<T>::get_FilesAutoSaveSwitchOn(void)
{
  TOLEBOOL PVal;
  this->get_FilesAutoSaveSwitchOn((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::set_FilesBackupPrevCopySwitchOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilesBackupPrevCopySwitchOn"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_FilesBackupPrevCopySwitchOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilesBackupPrevCopySwitchOn"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISystemSettingsDispT<T>::get_FilesBackupPrevCopySwitchOn(void)
{
  TOLEBOOL PVal;
  this->get_FilesBackupPrevCopySwitchOn((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::set_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelLocalCSCreateInAbsoluteCS"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_ModelLocalCSCreateInAbsoluteCS(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelLocalCSCreateInAbsoluteCS"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISystemSettingsDispT<T>::get_ModelLocalCSCreateInAbsoluteCS(void)
{
  TOLEBOOL PVal;
  this->get_ModelLocalCSCreateInAbsoluteCS((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::set_ModelLocalCSSetActive(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelLocalCSSetActive"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_ModelLocalCSSetActive(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelLocalCSSetActive"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISystemSettingsDispT<T>::get_ModelLocalCSSetActive(void)
{
  TOLEBOOL PVal;
  this->get_ModelLocalCSSetActive((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::set_ModelSmoothMotion(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelSmoothMotion"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_ModelSmoothMotion(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelSmoothMotion"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISystemSettingsDispT<T>::get_ModelSmoothMotion(void)
{
  TOLEBOOL PVal;
  this->get_ModelSmoothMotion((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_ReportStyleListSettings(Kompasltapi7_tlb::ILibArraySettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReportStyleListSettings"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILibArraySettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILibArraySettingsPtr __fastcall
ISystemSettingsDispT<T>::get_ReportStyleListSettings(void)
{
  Kompasltapi7_tlb::ILibArraySettingsPtr PVal;
  this->get_ReportStyleListSettings((Kompasltapi7_tlb::ILibArraySettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISystemSettingsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISystemSettingsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISystemSettingsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISystemSettingsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISystemSettingsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILibArraySettings
// Interface: ILibArraySettings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILibArraySettingsT<T>::get_LibraryCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_LibraryCount(Count);
}

template <class T> long __fastcall
TCOMILibArraySettingsT<T>::get_LibraryCount(void)
{
  long Count;
  OLECHECK(this->get_LibraryCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMILibArraySettingsT<T>::GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                      BSTR* Result/*[out,retval]*/)
{
  return (*this)->GetLibrary(Index, Use, Result);
}

template <class T> BSTR __fastcall
TCOMILibArraySettingsT<T>::GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/)
{
  BSTR Result = 0;
  OLECHECK(this->GetLibrary(Index, Use, (BSTR*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibArraySettingsT<T>::SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetLibraryUse(Index, Use, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILibArraySettingsT<T>::SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetLibraryUse(Index, Use, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibArraySettingsT<T>::GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetLibrarys(FileNames, Uses, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILibArraySettingsT<T>::GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetLibrarys(FileNames, Uses, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibArraySettingsT<T>::AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddLibrary(FileName, Use, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILibArraySettingsT<T>::AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddLibrary(FileName, Use, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILibArraySettingsT<T>::RemoveLibrary(TVariantInParam Index/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->RemoveLibrary(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILibArraySettingsT<T>::RemoveLibrary(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->RemoveLibrary(Index, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILibArraySettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {76D9033D-5F87-41CC-A3E8-55EFEE94B677}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::get_LibraryCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryCount"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILibArraySettingsDispT<T>::get_LibraryCount(void)
{
  long Count;
  this->get_LibraryCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                      BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLibrary"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Use /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
ILibArraySettingsDispT<T>::GetLibrary(long Index/*[in]*/, TOLEBOOL* Use/*[out]*/)
{
  BSTR Result;
  this->GetLibrary(Index, Use, (BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetLibraryUse"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  _args[2] = Use /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibArraySettingsDispT<T>::SetLibraryUse(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/)
{
  TOLEBOOL Result;
  this->SetLibraryUse(Index, Use, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLibrarys"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = FileNames /*[VT_VARIANT:1]*/;
  _args[2] = Uses /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibArraySettingsDispT<T>::GetLibrarys(TVariant* FileNames/*[out]*/, TVariant* Uses/*[out]*/)
{
  TOLEBOOL Result;
  this->GetLibrarys(FileNames, Uses, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddLibrary"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = Use /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibArraySettingsDispT<T>::AddLibrary(BSTR FileName/*[in]*/, TOLEBOOL Use/*[in]*/)
{
  TOLEBOOL Result;
  this->AddLibrary(FileName, Use, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::RemoveLibrary(TVariantInParam Index/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveLibrary"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibArraySettingsDispT<T>::RemoveLibrary(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL Result;
  this->RemoveLibrary(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILibArraySettingsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILibArraySettingsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILibArraySettingsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILibArraySettingsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILibArraySettingsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IMath2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0409EC8F-88F7-4242-81E7-965ABEAE932C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMath2DDispT<T>::Line(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                      Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Line"), DISPID(1));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::Line(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->Line(X, Y, Angle, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::LineSeg(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, double Y2/*[in]*/
                         , Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineSeg"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = X1 /*[VT_R8:0]*/;
  _args[2] = Y1 /*[VT_R8:0]*/;
  _args[3] = X2 /*[VT_R8:0]*/;
  _args[4] = Y2 /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::LineSeg(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, double Y2/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->LineSeg(X1, Y1, X2, Y2, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::Arc(double Xc/*[in]*/, double Yc/*[in]*/, double Radius/*[in]*/, 
                     double Angle1/*[in]*/, double Angle2/*[in]*/, TOLEBOOL Direction/*[in]*/, 
                     Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Arc"), DISPID(3));
  TAutoArgs<6> _args;
  _args[1] = Xc /*[VT_R8:0]*/;
  _args[2] = Yc /*[VT_R8:0]*/;
  _args[3] = Radius /*[VT_R8:0]*/;
  _args[4] = Angle1 /*[VT_R8:0]*/;
  _args[5] = Angle2 /*[VT_R8:0]*/;
  _args[6] = Direction /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::Arc(double Xc/*[in]*/, double Yc/*[in]*/, double Radius/*[in]*/, 
                     double Angle1/*[in]*/, double Angle2/*[in]*/, TOLEBOOL Direction/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->Arc(Xc, Yc, Radius, Angle1, Angle2, Direction, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::Circle(double Xc/*[in]*/, double Yc/*[in]*/, double Radius/*[in]*/, 
                        Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Circle"), DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = Xc /*[VT_R8:0]*/;
  _args[2] = Yc /*[VT_R8:0]*/;
  _args[3] = Radius /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::Circle(double Xc/*[in]*/, double Yc/*[in]*/, double Radius/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->Circle(Xc, Yc, Radius, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::PolyLine(TVariantInParam Points/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                          Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PolyLine"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = Points /*[VT_VARIANT:0]*/;
  _args[2] = Closed /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::PolyLine(TVariantInParam Points/*[in]*/, TOLEBOOL Closed/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->PolyLine(Points, Closed, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::Ellipse(double Xc/*[in]*/, double Yc/*[in]*/, double A/*[in]*/, double B/*[in]*/, 
                         double Angle/*[in]*/, Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ellipse"), DISPID(6));
  TAutoArgs<5> _args;
  _args[1] = Xc /*[VT_R8:0]*/;
  _args[2] = Yc /*[VT_R8:0]*/;
  _args[3] = A /*[VT_R8:0]*/;
  _args[4] = B /*[VT_R8:0]*/;
  _args[5] = Angle /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::Ellipse(double Xc/*[in]*/, double Yc/*[in]*/, double A/*[in]*/, double B/*[in]*/, 
                         double Angle/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->Ellipse(Xc, Yc, A, B, Angle, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::EllipseArc(double Xc/*[in]*/, double Yc/*[in]*/, double A/*[in]*/, double B/*[in]*/
                            , double Angle/*[in]*/, double Angle1/*[in]*/, double Angle2/*[in]*/, 
                            TOLEBOOL Direction/*[in]*/, 
                            Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EllipseArc"), DISPID(7));
  TAutoArgs<8> _args;
  _args[1] = Xc /*[VT_R8:0]*/;
  _args[2] = Yc /*[VT_R8:0]*/;
  _args[3] = A /*[VT_R8:0]*/;
  _args[4] = B /*[VT_R8:0]*/;
  _args[5] = Angle /*[VT_R8:0]*/;
  _args[6] = Angle1 /*[VT_R8:0]*/;
  _args[7] = Angle2 /*[VT_R8:0]*/;
  _args[8] = Direction /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::EllipseArc(double Xc/*[in]*/, double Yc/*[in]*/, double A/*[in]*/, double B/*[in]*/, 
                            double Angle/*[in]*/, double Angle1/*[in]*/, double Angle2/*[in]*/, 
                            TOLEBOOL Direction/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->EllipseArc(Xc, Yc, A, B, Angle, Angle1, Angle2, Direction, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::Bezier(TOLEBOOL Closed/*[in]*/, TOLEBOOL AllPoints/*[in]*/, 
                        TVariantInParam Points/*[in]*/, 
                        Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bezier"), DISPID(8));
  TAutoArgs<3> _args;
  _args[1] = Closed /*[VT_BOOL:0]*/;
  _args[2] = AllPoints /*[VT_BOOL:0]*/;
  _args[3] = Points /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::Bezier(TOLEBOOL Closed/*[in]*/, TOLEBOOL AllPoints/*[in]*/, 
                        TVariantInParam Points/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->Bezier(Closed, AllPoints, Points, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::Nurbs(TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, TVariantInParam Points/*[in]*/
                       , TVariantInParam Weights/*[in]*/, TVariantInParam Knots/*[in]*/, 
                       Kompasltapi7_tlb::ICurve2DPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Nurbs"), DISPID(9));
  TAutoArgs<5> _args;
  _args[1] = Closed /*[VT_BOOL:0]*/;
  _args[2] = Degree /*[VT_I4:0]*/;
  _args[3] = Points /*[VT_VARIANT:0]*/;
  _args[4] = Weights /*[VT_VARIANT:0]*/;
  _args[5] = Knots /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)PRes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IMath2DDispT<T>::Nurbs(TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, TVariantInParam Points/*[in]*/, 
                       TVariantInParam Weights/*[in]*/, TVariantInParam Knots/*[in]*/)
{
  Kompasltapi7_tlb::ICurve2DPtr PRes;
  this->Nurbs(Closed, Degree, Points, Weights, Knots, (Kompasltapi7_tlb::ICurve2DPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::Symmetry(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                          Kompasltapi7_tlb::ICurve2DPtr Curve/*[in]*/, 
                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symmetry"), DISPID(10));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = (LPDISPATCH)(Kompasltapi7_tlb::ICurve2D*)Curve /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMath2DDispT<T>::Symmetry(double* X/*[in,out]*/, double* Y/*[in,out]*/, 
                          Kompasltapi7_tlb::ICurve2DPtr Curve/*[in]*/)
{
  TOLEBOOL Result;
  this->Symmetry(X, Y, Curve, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::Rotate(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Xc/*[in]*/, 
                        double Yc/*[in]*/, double Angle/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rotate"), DISPID(11));
  TAutoArgs<5> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Xc /*[VT_R8:0]*/;
  _args[4] = Yc /*[VT_R8:0]*/;
  _args[5] = Angle /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMath2DDispT<T>::Rotate(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Xc/*[in]*/, 
                        double Yc/*[in]*/, double Angle/*[in]*/)
{
  TOLEBOOL Result;
  this->Rotate(X, Y, Xc, Yc, Angle, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Angle/*[in]*/, 
                           double Len/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MovePoint"), DISPID(12));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  _args[4] = Len /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMath2DDispT<T>::MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Angle/*[in]*/, 
                           double Len/*[in]*/)
{
  TOLEBOOL Result;
  this->MovePoint(X, Y, Angle, Len, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMath2DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMath2DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMath2DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMath2DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMath2DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICurve2D
// Interface: ICurve2D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                            TVariant* Result/*[out,retval]*/)
{
  return (*this)->Intersect(Curve2, Result);
}

template <class T> TVariant __fastcall
TCOMICurve2DT<T>::Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->Intersect(Curve2, (TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                          TVariant* Curve1Points/*[out]*/, TVariant* Curve2Points/*[out]*/, 
                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Tangent(Curve2, Curve1Points, Curve2Points, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICurve2DT<T>::Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                          TVariant* Curve1Points/*[out]*/, TVariant* Curve2Points/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Tangent(Curve2, Curve1Points, Curve2Points, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::TangentLinePoint(double X/*[in]*/, double Y/*[in]*/, 
                                   TVariant* Result/*[out,retval]*/)
{
  return (*this)->TangentLinePoint(X, Y, Result);
}

template <class T> TVariant __fastcall
TCOMICurve2DT<T>::TangentLinePoint(double X/*[in]*/, double Y/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->TangentLinePoint(X, Y, (TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                   double Radius/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  return (*this)->CouplingCurvCurv(Curve2, Radius, Result);
}

template <class T> TVariant __fastcall
TCOMICurve2DT<T>::CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                   double Radius/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->CouplingCurvCurv(Curve2, Radius, (TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                  double* Ky/*[out]*/, double* T/*[out]*/, double* Angle/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->PointProjection(X, Y, Kx, Ky, T, Angle, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICurve2DT<T>::PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                  double* Ky/*[out]*/, double* T/*[out]*/, double* Angle/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->PointProjection(X, Y, Kx, Ky, T, Angle, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::CalculatePolygonByStep(double Step/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  return (*this)->CalculatePolygonByStep(Step, Result);
}

template <class T> TVariant __fastcall
TCOMICurve2DT<T>::CalculatePolygonByStep(double Step/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->CalculatePolygonByStep(Step, (TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Lenght/*[in]*/, 
                            TOLEBOOL Direction/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->MovePoint(X, Y, Lenght, Direction, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICurve2DT<T>::MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Lenght/*[in]*/, 
                            TOLEBOOL Direction/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->MovePoint(X, Y, Lenght, Direction, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::get_Length(double* Result/*[out,retval]*/)
{
  return (*this)->get_Length(Result);
}

template <class T> double __fastcall
TCOMICurve2DT<T>::get_Length(void)
{
  double Result;
  OLECHECK(this->get_Length((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                        double Y2/*[in]*/, double* Result/*[out,retval]*/)
{
  return (*this)->GetDistancePointPoint(X1, Y1, X2, Y2, Result);
}

template <class T> double __fastcall
TCOMICurve2DT<T>::GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                        double Y2/*[in]*/)
{
  double Result;
  OLECHECK(this->GetDistancePointPoint(X1, Y1, X2, Y2, (double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/, 
                                     double* Result/*[out,retval]*/)
{
  return (*this)->GetDistanceToPoint(X, Y, Result);
}

template <class T> double __fastcall
TCOMICurve2DT<T>::GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/)
{
  double Result;
  OLECHECK(this->GetDistanceToPoint(X, Y, (double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->PointOn(T, X, Y, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICurve2DT<T>::PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->PointOn(T, X, Y, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::GetMetricLength(double T1/*[in]*/, double T2/*[in]*/, 
                                  double* Result/*[out,retval]*/)
{
  return (*this)->GetMetricLength(T1, T2, Result);
}

template <class T> double __fastcall
TCOMICurve2DT<T>::GetMetricLength(double T1/*[in]*/, double T2/*[in]*/)
{
  double Result;
  OLECHECK(this->GetMetricLength(T1, T2, (double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::get_ParamMin(double* Result/*[out,retval]*/)
{
  return (*this)->get_ParamMin(Result);
}

template <class T> double __fastcall
TCOMICurve2DT<T>::get_ParamMin(void)
{
  double Result;
  OLECHECK(this->get_ParamMin((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::get_ParamMax(double* Result/*[out,retval]*/)
{
  return (*this)->get_ParamMax(Result);
}

template <class T> double __fastcall
TCOMICurve2DT<T>::get_ParamMax(void)
{
  double Result;
  OLECHECK(this->get_ParamMax((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::get_IsClosed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_IsClosed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICurve2DT<T>::get_IsClosed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_IsClosed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurve2DT<T>::GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                 TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                 double* TMin/*[out]*/, double* TMax/*[out]*/, 
                                 TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetNurbsParams(Closed, Points, Weights, Knots, TMin, TMax, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICurve2DT<T>::GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                 TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                 double* TMin/*[out]*/, double* TMax/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetNurbsParams(Closed, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ICurve2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {65C82884-C41B-47A1-8C07-E8820D6718EA}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICurve2DDispT<T>::Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                            TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Intersect"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ICurve2D*)Curve2 /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ICurve2DDispT<T>::Intersect(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/)
{
  TVariant Result;
  this->Intersect(Curve2, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                          TVariant* Curve1Points/*[out]*/, TVariant* Curve2Points/*[out]*/, 
                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tangent"), DISPID(2));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ICurve2D*)Curve2 /*[VT_USERDEFINED:1]*/;
  _args[2] = Curve1Points /*[VT_VARIANT:1]*/;
  _args[3] = Curve2Points /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurve2DDispT<T>::Tangent(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                          TVariant* Curve1Points/*[out]*/, TVariant* Curve2Points/*[out]*/)
{
  TOLEBOOL Result;
  this->Tangent(Curve2, Curve1Points, Curve2Points, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::TangentLinePoint(double X/*[in]*/, double Y/*[in]*/, 
                                   TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TangentLinePoint"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ICurve2DDispT<T>::TangentLinePoint(double X/*[in]*/, double Y/*[in]*/)
{
  TVariant Result;
  this->TangentLinePoint(X, Y, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                   double Radius/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CouplingCurvCurv"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ICurve2D*)Curve2 /*[VT_USERDEFINED:1]*/;
  _args[2] = Radius /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ICurve2DDispT<T>::CouplingCurvCurv(Kompasltapi7_tlb::ICurve2DPtr Curve2/*[in]*/, 
                                   double Radius/*[in]*/)
{
  TVariant Result;
  this->CouplingCurvCurv(Curve2, Radius, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                  double* Ky/*[out]*/, double* T/*[out]*/, double* Angle/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointProjection"), DISPID(5));
  TAutoArgs<6> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Kx /*[VT_R8:1]*/;
  _args[4] = Ky /*[VT_R8:1]*/;
  _args[5] = T /*[VT_R8:1]*/;
  _args[6] = Angle /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurve2DDispT<T>::PointProjection(double X/*[in]*/, double Y/*[in]*/, double* Kx/*[out]*/, 
                                  double* Ky/*[out]*/, double* T/*[out]*/, double* Angle/*[out]*/)
{
  TOLEBOOL Result;
  this->PointProjection(X, Y, Kx, Ky, T, Angle, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::CalculatePolygonByStep(double Step/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CalculatePolygonByStep"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Step /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ICurve2DDispT<T>::CalculatePolygonByStep(double Step/*[in]*/)
{
  TVariant Result;
  this->CalculatePolygonByStep(Step, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Lenght/*[in]*/, 
                            TOLEBOOL Direction/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MovePoint"), DISPID(8));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Lenght /*[VT_R8:0]*/;
  _args[4] = Direction /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurve2DDispT<T>::MovePoint(double* X/*[in,out]*/, double* Y/*[in,out]*/, double Lenght/*[in]*/, 
                            TOLEBOOL Direction/*[in]*/)
{
  TOLEBOOL Result;
  this->MovePoint(X, Y, Lenght, Direction, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_Length(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurve2DDispT<T>::get_Length(void)
{
  double Result;
  this->get_Length((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                        double Y2/*[in]*/, double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetDistancePointPoint"), DISPID(10));
  TAutoArgs<4> _args;
  _args[1] = X1 /*[VT_R8:0]*/;
  _args[2] = Y1 /*[VT_R8:0]*/;
  _args[3] = X2 /*[VT_R8:0]*/;
  _args[4] = Y2 /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> double __fastcall
ICurve2DDispT<T>::GetDistancePointPoint(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                        double Y2/*[in]*/)
{
  double Result;
  this->GetDistancePointPoint(X1, Y1, X2, Y2, (double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/, 
                                     double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetDistanceToPoint"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> double __fastcall
ICurve2DDispT<T>::GetDistanceToPoint(double X/*[in]*/, double Y/*[in]*/)
{
  double Result;
  this->GetDistanceToPoint(X, Y, (double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointOn"), DISPID(12));
  TAutoArgs<3> _args;
  _args[1] = T /*[VT_R8:0]*/;
  _args[2] = X /*[VT_R8:1]*/;
  _args[3] = Y /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurve2DDispT<T>::PointOn(double T/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL Result;
  this->PointOn(T, X, Y, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::GetMetricLength(double T1/*[in]*/, double T2/*[in]*/, 
                                  double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetMetricLength"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = T1 /*[VT_R8:0]*/;
  _args[2] = T2 /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> double __fastcall
ICurve2DDispT<T>::GetMetricLength(double T1/*[in]*/, double T2/*[in]*/)
{
  double Result;
  this->GetMetricLength(T1, T2, (double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_ParamMin(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParamMin"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurve2DDispT<T>::get_ParamMin(void)
{
  double Result;
  this->get_ParamMin((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_ParamMax(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParamMax"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurve2DDispT<T>::get_ParamMax(void)
{
  double Result;
  this->get_ParamMax((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_IsClosed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsClosed"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurve2DDispT<T>::get_IsClosed(void)
{
  TOLEBOOL Result;
  this->get_IsClosed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                 TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                 double* TMin/*[out]*/, double* TMax/*[out]*/, 
                                 TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNurbsParams"), DISPID(18));
  TAutoArgs<6> _args;
  _args[1] = Closed /*[VT_BOOL:0]*/;
  _args[2] = Points /*[VT_VARIANT:1]*/;
  _args[3] = Weights /*[VT_VARIANT:1]*/;
  _args[4] = Knots /*[VT_VARIANT:1]*/;
  _args[5] = TMin /*[VT_R8:1]*/;
  _args[6] = TMax /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurve2DDispT<T>::GetNurbsParams(TOLEBOOL Closed/*[in]*/, TVariant* Points/*[out]*/, 
                                 TVariant* Weights/*[out]*/, TVariant* Knots/*[out]*/, 
                                 double* TMin/*[out]*/, double* TMax/*[out]*/)
{
  TOLEBOOL Result;
  this->GetNurbsParams(Closed, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICurve2DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICurve2DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICurve2DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICurve2DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICurve2DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPrintJob
// Interface: IPrintJob
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::Clear(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::ShowPreviewWindow(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ShowPreviewWindow(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::ShowPreviewWindow(void)
{
  TOLEBOOL Result;
  OLECHECK(this->ShowPreviewWindow((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/, 
                        TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Load(FileName, Errors, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Load(FileName, Errors, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::Save(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Save(FileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::Save(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Save(FileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::Execute(BSTR OutputFileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Execute(OutputFileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::Execute(BSTR OutputFileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Execute(OutputFileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                             ksSheetsRangeEnum Range/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddSheets(FileName, Sheets, Range, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                             ksSheetsRangeEnum Range/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddSheets(FileName, Sheets, Range, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::get_SheetsCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_SheetsCount(Count);
}

template <class T> long __fastcall
TCOMIPrintJobT<T>::get_SheetsCount(void)
{
  long Count;
  OLECHECK(this->get_SheetsCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::get_Sheet(long Index/*[in]*/, 
                             Kompasltapi7_tlb::IPrintJob_SheetPtr* Sheet/*[out,retval]*/)
{
  return (*this)->get_Sheet(Index, Sheet);
}

template <class T> Kompasltapi7_tlb::IPrintJob_SheetPtr __fastcall
TCOMIPrintJobT<T>::get_Sheet(long Index/*[in]*/)
{
  Kompasltapi7_tlb::IPrintJob_SheetPtr Sheet;
  OLECHECK(this->get_Sheet(Index, (Kompasltapi7_tlb::IPrintJob_SheetPtr*)&Sheet));
  return Sheet;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::RemoveSheets(TVariantInParam Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->RemoveSheets(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::RemoveSheets(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->RemoveSheets(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::get_PagesCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_PagesCount(Count);
}

template <class T> long __fastcall
TCOMIPrintJobT<T>::get_PagesCount(void)
{
  long Count;
  OLECHECK(this->get_PagesCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPageGabarites(Width, Height, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPageGabarites(Width, Height, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::GetPagesMapGabarites(long* WPageCount/*[out]*/, long* HPageCount/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPagesMapGabarites(WPageCount, HPageCount, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::GetPagesMapGabarites(long* WPageCount/*[out]*/, long* HPageCount/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPagesMapGabarites(WPageCount, HPageCount, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_PagePrintableFlag(WPage, HPage, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJobT<T>::get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->get_PagePrintableFlag(WPage, HPage, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJobT<T>::set_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                         TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_PagePrintableFlag(WPage, HPage, Result);
}

// *********************************************************************//
// DispIntf:  IPrintJob
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D86880B-C004-475D-8221-B786FD5A228B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPrintJobDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::ShowPreviewWindow(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPreviewWindow"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::ShowPreviewWindow(void)
{
  TOLEBOOL Result;
  this->ShowPreviewWindow((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/, 
                        TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Load"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = Errors /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::Load(BSTR FileName/*[in]*/, TVariant* Errors/*[out]*/)
{
  TOLEBOOL Result;
  this->Load(FileName, Errors, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::Save(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::Save(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  this->Save(FileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::Execute(BSTR OutputFileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Execute"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = OutputFileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::Execute(BSTR OutputFileName/*[in]*/)
{
  TOLEBOOL Result;
  this->Execute(OutputFileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                             ksSheetsRangeEnum Range/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddSheets"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = Sheets /*[VT_VARIANT:0]*/;
  _args[3] = (int)Range /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::AddSheets(BSTR FileName/*[in]*/, TVariantInParam Sheets/*[in]*/, 
                             ksSheetsRangeEnum Range/*[in]*/)
{
  TOLEBOOL Result;
  this->AddSheets(FileName, Sheets, Range, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_SheetsCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetsCount"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJobDispT<T>::get_SheetsCount(void)
{
  long Count;
  this->get_SheetsCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_Sheet(long Index/*[in]*/, 
                             Kompasltapi7_tlb::IPrintJob_SheetPtr* Sheet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sheet"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPrintJob_Sheet**)Sheet /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPrintJob_SheetPtr __fastcall
IPrintJobDispT<T>::get_Sheet(long Index/*[in]*/)
{
  Kompasltapi7_tlb::IPrintJob_SheetPtr Sheet;
  this->get_Sheet(Index, (Kompasltapi7_tlb::IPrintJob_SheetPtr*)&Sheet);
  return Sheet;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::RemoveSheets(TVariantInParam Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveSheets"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::RemoveSheets(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL Result;
  this->RemoveSheets(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_PagesCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PagesCount"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJobDispT<T>::get_PagesCount(void)
{
  long Count;
  this->get_PagesCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPageGabarites"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = Width /*[VT_R8:1]*/;
  _args[2] = Height /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::GetPageGabarites(double* Width/*[out]*/, double* Height/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPageGabarites(Width, Height, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::GetPagesMapGabarites(long* WPageCount/*[out]*/, long* HPageCount/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPagesMapGabarites"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = WPageCount /*[VT_I4:1]*/;
  _args[2] = HPageCount /*[VT_I4:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::GetPagesMapGabarites(long* WPageCount/*[out]*/, long* HPageCount/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPagesMapGabarites(WPageCount, HPageCount, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PagePrintableFlag"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = WPage /*[VT_I4:0]*/;
  _args[2] = HPage /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJobDispT<T>::get_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/)
{
  TOLEBOOL Result;
  this->get_PagePrintableFlag(WPage, HPage, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::set_PagePrintableFlag(long WPage/*[in]*/, long HPage/*[in]*/, 
                                         TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PagePrintableFlag"), DISPID(13));
  TAutoArgs<3> _args;
  _args[1] = WPage /*[VT_I4:0]*/;
  _args[2] = HPage /*[VT_I4:0]*/;
  _args[3] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPrintJobDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPrintJobDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPrintJobDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPrintJobDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJobDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPrintJob_Sheet
// Interface: IPrintJob_Sheet
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::get_DocumentName(BSTR* DocumentName/*[out,retval]*/)
{
  return (*this)->get_DocumentName(DocumentName);
}

template <class T> BSTR __fastcall
TCOMIPrintJob_SheetT<T>::get_DocumentName(void)
{
  BSTR DocumentName = 0;
  OLECHECK(this->get_DocumentName((BSTR*)&DocumentName));
  return DocumentName;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::get_Number(long* Number/*[out,retval]*/)
{
  return (*this)->get_Number(Number);
}

template <class T> long __fastcall
TCOMIPrintJob_SheetT<T>::get_Number(void)
{
  long Number;
  OLECHECK(this->get_Number((long*)&Number));
  return Number;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetGabarites(Width, Height, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJob_SheetT<T>::GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetGabarites(Width, Height, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::get_Orientation(ksAngleEnum* Value/*[out,retval]*/)
{
  return (*this)->get_Orientation(Value);
}

template <class T> ksAngleEnum __fastcall
TCOMIPrintJob_SheetT<T>::get_Orientation(void)
{
  ksAngleEnum Value;
  OLECHECK(this->get_Orientation((ksAngleEnum*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::set_Orientation(ksAngleEnum Value/*[in]*/)
{
  return (*this)->set_Orientation(Value);
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMIPrintJob_SheetT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMIPrintJob_SheetT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::set_Scale(double PVal/*[in]*/)
{
  return (*this)->set_Scale(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Scale(PVal);
}

template <class T> double __fastcall
TCOMIPrintJob_SheetT<T>::get_Scale(void)
{
  double PVal;
  OLECHECK(this->get_Scale((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::get_ClipFlag(TOLEBOOL* Flag/*[out,retval]*/)
{
  return (*this)->get_ClipFlag(Flag);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJob_SheetT<T>::get_ClipFlag(void)
{
  TOLEBOOL Flag;
  OLECHECK(this->get_ClipFlag((TOLEBOOL*)&Flag));
  return Flag;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::set_ClipFlag(TOLEBOOL Flag/*[in]*/)
{
  return (*this)->set_ClipFlag(Flag);
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                               double* Right/*[out]*/, double* Top/*[out]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetClipFrameGabarites(Left, Bottom, Right, Top, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJob_SheetT<T>::GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                               double* Right/*[out]*/, double* Top/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetClipFrameGabarites(Left, Bottom, Right, Top, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPrintJob_SheetT<T>::SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                               double Right/*[in]*/, double Top/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetClipFrameGabarites(Left, Bottom, Right, Top, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPrintJob_SheetT<T>::SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                               double Right/*[in]*/, double Top/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetClipFrameGabarites(Left, Bottom, Right, Top, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPrintJob_Sheet
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0EC985BC-81FC-498E-BF15-03DDC870AA33}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_DocumentName(BSTR* DocumentName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentName"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DocumentName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPrintJob_SheetDispT<T>::get_DocumentName(void)
{
  BSTR DocumentName;
  this->get_DocumentName((BSTR*)&DocumentName);
  return DocumentName;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Number(long* Number/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Number /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJob_SheetDispT<T>::get_Number(void)
{
  long Number;
  this->get_Number((long*)&Number);
  return Number;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetGabarites"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Width /*[VT_R8:1]*/;
  _args[2] = Height /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_SheetDispT<T>::GetGabarites(double* Width/*[out]*/, double* Height/*[out]*/)
{
  TOLEBOOL Result;
  this->GetGabarites(Width, Height, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Orientation(ksAngleEnum* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Orientation"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Value /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAngleEnum __fastcall
IPrintJob_SheetDispT<T>::get_Orientation(void)
{
  ksAngleEnum Value;
  this->get_Orientation((ksAngleEnum*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::set_Orientation(ksAngleEnum Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Orientation"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (int)Value /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPrintJob_SheetDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPrintJob_SheetDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPrintJob_SheetDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_ClipFlag(TOLEBOOL* Flag/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClipFlag"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Flag /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_SheetDispT<T>::get_ClipFlag(void)
{
  TOLEBOOL Flag;
  this->get_ClipFlag((TOLEBOOL*)&Flag);
  return Flag;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::set_ClipFlag(TOLEBOOL Flag/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClipFlag"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Flag /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                               double* Right/*[out]*/, double* Top/*[out]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetClipFrameGabarites"), DISPID(9));
  TAutoArgs<4> _args;
  _args[1] = Left /*[VT_R8:1]*/;
  _args[2] = Bottom /*[VT_R8:1]*/;
  _args[3] = Right /*[VT_R8:1]*/;
  _args[4] = Top /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_SheetDispT<T>::GetClipFrameGabarites(double* Left/*[out]*/, double* Bottom/*[out]*/, 
                                               double* Right/*[out]*/, double* Top/*[out]*/)
{
  TOLEBOOL Result;
  this->GetClipFrameGabarites(Left, Bottom, Right, Top, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                               double Right/*[in]*/, double Top/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetClipFrameGabarites"), DISPID(10));
  TAutoArgs<4> _args;
  _args[1] = Left /*[VT_R8:0]*/;
  _args[2] = Bottom /*[VT_R8:0]*/;
  _args[3] = Right /*[VT_R8:0]*/;
  _args[4] = Top /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_SheetDispT<T>::SetClipFrameGabarites(double Left/*[in]*/, double Bottom/*[in]*/, 
                                               double Right/*[in]*/, double Top/*[in]*/)
{
  TOLEBOOL Result;
  this->SetClipFrameGabarites(Left, Bottom, Right, Top, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPrintJob_SheetDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPrintJob_SheetDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPrintJob_SheetDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPrintJob_SheetDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJob_SheetDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IKompasDocument2D
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {096E62B3-7184-4998-9925-74BB710D8D8E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_ViewsAndLayersManager(Kompasltapi7_tlb::IViewsAndLayersManagerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewsAndLayersManager"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IViewsAndLayersManager**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewsAndLayersManagerPtr __fastcall
IKompasDocument2DDispT<T>::get_ViewsAndLayersManager(void)
{
  Kompasltapi7_tlb::IViewsAndLayersManagerPtr Result;
  this->get_ViewsAndLayersManager((Kompasltapi7_tlb::IViewsAndLayersManagerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::GetDrawingObjectNotifyResult(LPDISPATCH* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetDrawingObjectNotifyResult"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IKompasDocument2DDispT<T>::GetDrawingObjectNotifyResult(void)
{
  LPDISPATCH Result;
  this->GetDrawingObjectNotifyResult((LPDISPATCH*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
IKompasDocument2DDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
IKompasDocument2DDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                 TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2DDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocument2DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocument2DDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocument2DDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2DDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2DDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2DDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2DDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
IKompasDocument2DDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IKompasDocument2DDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
IKompasDocument2DDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
IKompasDocument2DDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasDocument2DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IKompasDocument2DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IKompasDocument2DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasDocument2DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasDocument2DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIViewsAndLayersManager
// Interface: IViewsAndLayersManager
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIViewsAndLayersManagerT<T>::get_Views(Kompasltapi7_tlb::IViewsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Views(PVal);
}

template <class T> Kompasltapi7_tlb::IViewsPtr __fastcall
TCOMIViewsAndLayersManagerT<T>::get_Views(void)
{
  Kompasltapi7_tlb::IViewsPtr PVal;
  OLECHECK(this->get_Views((Kompasltapi7_tlb::IViewsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewsAndLayersManagerT<T>::get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_LayerGroups(PVal);
}

template <class T> Kompasltapi7_tlb::ILayerGroupsPtr __fastcall
TCOMIViewsAndLayersManagerT<T>::get_LayerGroups(void)
{
  Kompasltapi7_tlb::ILayerGroupsPtr PVal;
  OLECHECK(this->get_LayerGroups((Kompasltapi7_tlb::ILayerGroupsPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IViewsAndLayersManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A4737593-578B-4187-8CAD-E1056EB5404B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IViewsAndLayersManagerDispT<T>::get_Views(Kompasltapi7_tlb::IViewsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Views"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IViews**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewsPtr __fastcall
IViewsAndLayersManagerDispT<T>::get_Views(void)
{
  Kompasltapi7_tlb::IViewsPtr PVal;
  this->get_Views((Kompasltapi7_tlb::IViewsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewsAndLayersManagerDispT<T>::get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerGroups"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerGroups**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerGroupsPtr __fastcall
IViewsAndLayersManagerDispT<T>::get_LayerGroups(void)
{
  Kompasltapi7_tlb::ILayerGroupsPtr PVal;
  this->get_LayerGroups((Kompasltapi7_tlb::ILayerGroupsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewsAndLayersManagerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IViewsAndLayersManagerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewsAndLayersManagerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IViewsAndLayersManagerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewsAndLayersManagerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IViewsAndLayersManagerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewsAndLayersManagerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewsAndLayersManagerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingObjects
// Interface: IDrawingObjects
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIDrawingObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IDrawingObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3DD7F97B-59CB-4297-A1BA-04E5A7FFF448}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IDrawingObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingObjectsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDrawingObjectsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDrawingObjectsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingObjectsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingObjectsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingObjectsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingObjectsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingObjectsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingObjectsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingObjectsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingObjectsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingObjectsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIViews
// Interface: IViews
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIViewsT<T>::get_View(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  return (*this)->get_View(Index, Result);
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
TCOMIViewsT<T>::get_View(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IViewPtr Result;
  OLECHECK(this->get_View(Index, (Kompasltapi7_tlb::IViewPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewsT<T>::get_ViewByNumber(long Numb/*[in]*/, 
                                 Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ViewByNumber(Numb, Result);
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
TCOMIViewsT<T>::get_ViewByNumber(long Numb/*[in]*/)
{
  Kompasltapi7_tlb::IViewPtr Result;
  OLECHECK(this->get_ViewByNumber(Numb, (Kompasltapi7_tlb::IViewPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewsT<T>::Add(LtViewType ViewType/*[in]*/, 
                    Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(ViewType, Result);
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
TCOMIViewsT<T>::Add(LtViewType ViewType/*[in]*/)
{
  Kompasltapi7_tlb::IViewPtr Result;
  OLECHECK(this->Add(ViewType, (Kompasltapi7_tlb::IViewPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewsT<T>::get_ActiveView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ActiveView(Result);
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
TCOMIViewsT<T>::get_ActiveView(void)
{
  Kompasltapi7_tlb::IViewPtr Result;
  OLECHECK(this->get_ActiveView((Kompasltapi7_tlb::IViewPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewsT<T>::AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                 TVariantInParam ProjectionsTypes/*[in]*/, double X/*[in]*/, 
                                 double Y/*[in]*/, double Scale/*[in]*/, double DX/*[in]*/, 
                                 double DY/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddStandartViews(FileName, ProjectionName, ProjectionsTypes, X, Y, Scale, DX, DY, 
                                   Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIViewsT<T>::AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                 TVariantInParam ProjectionsTypes/*[in]*/, double X/*[in]*/, 
                                 double Y/*[in]*/, double Scale/*[in]*/, double DX/*[in]*/, 
                                 double DY/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddStandartViews(FileName, ProjectionName, ProjectionsTypes, X, Y, Scale, DX, DY, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IViews
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CD1B5E6-C1A2-4910-8D0C-97080B14AA3D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IViewsDispT<T>::get_View(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("View"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IView**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
IViewsDispT<T>::get_View(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IViewPtr Result;
  this->get_View(Index, (Kompasltapi7_tlb::IViewPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_ViewByNumber(long Numb/*[in]*/, 
                                 Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewByNumber"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Numb /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IView**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
IViewsDispT<T>::get_ViewByNumber(long Numb/*[in]*/)
{
  Kompasltapi7_tlb::IViewPtr Result;
  this->get_ViewByNumber(Numb, (Kompasltapi7_tlb::IViewPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::Add(LtViewType ViewType/*[in]*/, 
                    Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)ViewType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IView**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
IViewsDispT<T>::Add(LtViewType ViewType/*[in]*/)
{
  Kompasltapi7_tlb::IViewPtr Result;
  this->Add(ViewType, (Kompasltapi7_tlb::IViewPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_ActiveView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveView"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IView**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
IViewsDispT<T>::get_ActiveView(void)
{
  Kompasltapi7_tlb::IViewPtr Result;
  this->get_ActiveView((Kompasltapi7_tlb::IViewPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                 TVariantInParam ProjectionsTypes/*[in]*/, double X/*[in]*/, 
                                 double Y/*[in]*/, double Scale/*[in]*/, double DX/*[in]*/, 
                                 double DY/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddStandartViews"), DISPID(5));
  TAutoArgs<8> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = ProjectionName /*[VT_BSTR:0]*/;
  _args[3] = ProjectionsTypes /*[VT_VARIANT:0]*/;
  _args[4] = X /*[VT_R8:0]*/;
  _args[5] = Y /*[VT_R8:0]*/;
  _args[6] = Scale /*[VT_R8:0]*/;
  _args[7] = DX /*[VT_R8:0]*/;
  _args[8] = DY /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewsDispT<T>::AddStandartViews(BSTR FileName/*[in]*/, BSTR ProjectionName/*[in]*/, 
                                 TVariantInParam ProjectionsTypes/*[in]*/, double X/*[in]*/, 
                                 double Y/*[in]*/, double Scale/*[in]*/, double DX/*[in]*/, 
                                 double DY/*[in]*/)
{
  TOLEBOOL Result;
  this->AddStandartViews(FileName, ProjectionName, ProjectionsTypes, X, Y, Scale, DX, DY, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IViewsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IViewsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IViewsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IViewsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IViewsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingObject
// Interface: IDrawingObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  return (*this)->get_DrawingObjectType(Type);
}

template <class T> DrawingObjectTypeEnum __fastcall
TCOMIDrawingObjectT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  OLECHECK(this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  return (*this)->get_LayerNumber(PVal);
}

template <class T> long __fastcall
TCOMIDrawingObjectT<T>::get_LayerNumber(void)
{
  long PVal;
  OLECHECK(this->get_LayerNumber((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  return (*this)->set_LayerNumber(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  return (*this)->get_Temp(Type);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingObjectT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  OLECHECK(this->get_Temp((TOLEBOOL*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  return (*this)->get_Valid(Type);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingObjectT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  OLECHECK(this->get_Valid((TOLEBOOL*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingObjectT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingObjectT<T>::Delete(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DrawingObjectParamType(PVal);
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
TCOMIDrawingObjectT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  OLECHECK(this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingObjectT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DrawingObjectParamType(PVal);
}

// *********************************************************************//
// DispIntf:  IDrawingObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {07EF021F-11C1-4015-8D87-4DC94A2A71B0}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IDrawingObjectDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingObjectDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObjectDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObjectDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObjectDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObjectDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IDrawingObjectDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIView
// Interface: IView
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Number(long PVal/*[in]*/)
{
  return (*this)->set_Number(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> long __fastcall
TCOMIViewT<T>::get_Number(void)
{
  long PVal;
  OLECHECK(this->get_Number((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIViewT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Background(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Background(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Background(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Background(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIViewT<T>::get_Background(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Background((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIViewT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Current(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Current(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Current(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Current(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIViewT<T>::get_Current(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Current((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Color(long PVal/*[in]*/)
{
  return (*this)->set_Color(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Color(PVal);
}

template <class T> long __fastcall
TCOMIViewT<T>::get_Color(void)
{
  long PVal;
  OLECHECK(this->get_Color((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  return (*this)->set_Comment(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Comment(PVal);
}

template <class T> BSTR __fastcall
TCOMIViewT<T>::get_Comment(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Comment((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_ObjectCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_ObjectCount(PVal);
}

template <class T> long __fastcall
TCOMIViewT<T>::get_ObjectCount(void)
{
  long PVal;
  OLECHECK(this->get_ObjectCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMIViewT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMIViewT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Scale(double PVal/*[in]*/)
{
  return (*this)->set_Scale(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Scale(PVal);
}

template <class T> double __fastcall
TCOMIViewT<T>::get_Scale(void)
{
  double PVal;
  OLECHECK(this->get_Scale((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIViewT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_ViewType(LtViewType* PVal/*[out,retval]*/)
{
  return (*this)->get_ViewType(PVal);
}

template <class T> LtViewType __fastcall
TCOMIViewT<T>::get_ViewType(void)
{
  LtViewType PVal;
  OLECHECK(this->get_ViewType((LtViewType*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Layers(Kompasltapi7_tlb::ILayersPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Layers(PVal);
}

template <class T> Kompasltapi7_tlb::ILayersPtr __fastcall
TCOMIViewT<T>::get_Layers(void)
{
  Kompasltapi7_tlb::ILayersPtr PVal;
  OLECHECK(this->get_Layers((Kompasltapi7_tlb::ILayersPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Variables(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_Variables(Result);
}

template <class T> TVariant __fastcall
TCOMIViewT<T>::get_Variables(void)
{
  TVariant Result;
  OLECHECK(this->get_Variables((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_Variable(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/)
{
  return (*this)->get_Variable(Index, Result);
}

template <class T> Kompasltapi7_tlb::IVariable7Ptr __fastcall
TCOMIViewT<T>::get_Variable(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IVariable7Ptr Result;
  OLECHECK(this->get_Variable(Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewT<T>::get_VariablesCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_VariablesCount(Result);
}

template <class T> long __fastcall
TCOMIViewT<T>::get_VariablesCount(void)
{
  long Result;
  OLECHECK(this->get_VariablesCount((long*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {21A7BA87-1C8B-41B4-8247-CDD593546F37}
// *********************************************************************//
template <class T> HRESULT __fastcall
IViewDispT<T>::set_Number(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IViewDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Background(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Background(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDispT<T>::get_Background(void)
{
  TOLEBOOL PVal;
  this->get_Background((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Current(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Current(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDispT<T>::get_Current(void)
{
  TOLEBOOL PVal;
  this->get_Current((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Color(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewDispT<T>::get_Color(void)
{
  long PVal;
  this->get_Color((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IViewDispT<T>::get_Comment(void)
{
  BSTR PVal;
  this->get_Comment((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_ObjectCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectCount"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewDispT<T>::get_ObjectCount(void)
{
  long PVal;
  this->get_ObjectCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_ViewType(LtViewType* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewType"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LtViewType __fastcall
IViewDispT<T>::get_ViewType(void)
{
  LtViewType PVal;
  this->get_ViewType((LtViewType*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Layers(Kompasltapi7_tlb::ILayersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Layers"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayersPtr __fastcall
IViewDispT<T>::get_Layers(void)
{
  Kompasltapi7_tlb::ILayersPtr PVal;
  this->get_Layers((Kompasltapi7_tlb::ILayersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Variables(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variables"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IViewDispT<T>::get_Variables(void)
{
  TVariant Result;
  this->get_Variables((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Variable(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variable"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariable7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariable7Ptr __fastcall
IViewDispT<T>::get_Variable(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IVariable7Ptr Result;
  this->get_Variable(Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_VariablesCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VariablesCount"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewDispT<T>::get_VariablesCount(void)
{
  long Result;
  this->get_VariablesCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IViewDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IViewDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IViewDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IViewDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IViewDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayers
// Interface: ILayers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayersT<T>::get_Layer(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Layer(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILayerPtr __fastcall
TCOMILayersT<T>::get_Layer(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayerPtr Result;
  OLECHECK(this->get_Layer(Index, (Kompasltapi7_tlb::ILayerPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayersT<T>::get_LayerByNumber(long Number/*[in]*/, 
                                   Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/)
{
  return (*this)->get_LayerByNumber(Number, Result);
}

template <class T> Kompasltapi7_tlb::ILayerPtr __fastcall
TCOMILayersT<T>::get_LayerByNumber(long Number/*[in]*/)
{
  Kompasltapi7_tlb::ILayerPtr Result;
  OLECHECK(this->get_LayerByNumber(Number, (Kompasltapi7_tlb::ILayerPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayersT<T>::Add(Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ILayerPtr __fastcall
TCOMILayersT<T>::Add(void)
{
  Kompasltapi7_tlb::ILayerPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ILayerPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayersT<T>::Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Attach(PVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILayersT<T>::Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Attach(PVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayersT<T>::Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Detach(PVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILayersT<T>::Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Detach(PVal, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILayers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6DC2898-D596-4418-A21A-D15AE07B9A40}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayersDispT<T>::get_Layer(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Layer"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayer**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerPtr __fastcall
ILayersDispT<T>::get_Layer(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayerPtr Result;
  this->get_Layer(Index, (Kompasltapi7_tlb::ILayerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get_LayerByNumber(long Number/*[in]*/, 
                                   Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerByNumber"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Number /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayer**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerPtr __fastcall
ILayersDispT<T>::get_LayerByNumber(long Number/*[in]*/)
{
  Kompasltapi7_tlb::ILayerPtr Result;
  this->get_LayerByNumber(Number, (Kompasltapi7_tlb::ILayerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::Add(Kompasltapi7_tlb::ILayerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayer**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerPtr __fastcall
ILayersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ILayerPtr Result;
  this->Add((Kompasltapi7_tlb::ILayerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayer*)PVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayersDispT<T>::Attach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  this->Attach(PVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Detach"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayer*)PVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayersDispT<T>::Detach(Kompasltapi7_tlb::ILayerPtr PVal/*[in]*/)
{
  TOLEBOOL Result;
  this->Detach(PVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                          Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ILayersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILayersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayer
// Interface: ILayer
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayerT<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMILayerT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::set_Background(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Background(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::get_Background(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Background(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerT<T>::get_Background(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Background((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Visible((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::set_Current(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Current(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::get_Current(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Current(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerT<T>::get_Current(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Current((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::set_Color(long PVal/*[in]*/)
{
  return (*this)->set_Color(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Color(PVal);
}

template <class T> long __fastcall
TCOMILayerT<T>::get_Color(void)
{
  long PVal;
  OLECHECK(this->get_Color((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  return (*this)->set_Comment(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Comment(PVal);
}

template <class T> BSTR __fastcall
TCOMILayerT<T>::get_Comment(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Comment((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerT<T>::get_ObjectCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_ObjectCount(PVal);
}

template <class T> long __fastcall
TCOMILayerT<T>::get_ObjectCount(void)
{
  long PVal;
  OLECHECK(this->get_ObjectCount((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILayer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9AD76C38-CC48-4901-AEE5-27B48F51563C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayerDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILayerDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::set_Background(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Background(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerDispT<T>::get_Background(void)
{
  TOLEBOOL PVal;
  this->get_Background((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::set_Current(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Current(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerDispT<T>::get_Current(void)
{
  TOLEBOOL PVal;
  this->get_Current((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::set_Color(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerDispT<T>::get_Color(void)
{
  long PVal;
  this->get_Color((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILayerDispT<T>::get_Comment(void)
{
  BSTR PVal;
  this->get_Comment((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_ObjectCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectCount"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerDispT<T>::get_ObjectCount(void)
{
  long PVal;
  this->get_ObjectCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ILayerDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ILayerDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIVariable7
// Interface: IVariable7
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIVariable7T<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::set_Note(BSTR PVal/*[in]*/)
{
  return (*this)->set_Note(PVal);
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_Note(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Note(PVal);
}

template <class T> BSTR __fastcall
TCOMIVariable7T<T>::get_Note(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Note((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::set_Value(double PVal/*[in]*/)
{
  return (*this)->set_Value(PVal);
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_Value(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Value(PVal);
}

template <class T> double __fastcall
TCOMIVariable7T<T>::get_Value(void)
{
  double PVal;
  OLECHECK(this->get_Value((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::set_External(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_External(PVal);
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_External(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_External(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariable7T<T>::get_External(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_External((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::set_Information(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Information(PVal);
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_Information(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Information(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariable7T<T>::get_Information(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Information((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::set_Expression(BSTR PVal/*[in]*/)
{
  return (*this)->set_Expression(PVal);
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_Expression(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Expression(PVal);
}

template <class T> BSTR __fastcall
TCOMIVariable7T<T>::get_Expression(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Expression((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_ParameterNote(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ParameterNote(PVal);
}

template <class T> BSTR __fastcall
TCOMIVariable7T<T>::get_ParameterNote(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ParameterNote((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_DisplayName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_DisplayName(PVal);
}

template <class T> BSTR __fastcall
TCOMIVariable7T<T>::get_DisplayName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_DisplayName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_LinkVariableName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LinkVariableName(PVal);
}

template <class T> BSTR __fastcall
TCOMIVariable7T<T>::get_LinkVariableName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LinkVariableName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_LinkDocumentName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LinkDocumentName(PVal);
}

template <class T> BSTR __fastcall
TCOMIVariable7T<T>::get_LinkDocumentName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LinkDocumentName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/, 
                            TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetLink(DocumentName, VariableName, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariable7T<T>::SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetLink(DocumentName, VariableName, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariable7T<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::set_ReadOnly(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIVariable7T<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariable7T<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IVariable7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BAB52D9-8EF6-43A6-A1B8-AF42D5961A94}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariable7DispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::set_Note(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Note"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Note(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Note"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariable7DispT<T>::get_Note(void)
{
  BSTR PVal;
  this->get_Note((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::set_Value(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Value(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IVariable7DispT<T>::get_Value(void)
{
  double PVal;
  this->get_Value((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::set_External(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("External"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_External(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("External"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariable7DispT<T>::get_External(void)
{
  TOLEBOOL PVal;
  this->get_External((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::set_Information(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Information"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Information(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Information"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariable7DispT<T>::get_Information(void)
{
  TOLEBOOL PVal;
  this->get_Information((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::set_Expression(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Expression"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Expression(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Expression"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariable7DispT<T>::get_Expression(void)
{
  BSTR PVal;
  this->get_Expression((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_ParameterNote(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterNote"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariable7DispT<T>::get_ParameterNote(void)
{
  BSTR PVal;
  this->get_ParameterNote((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_DisplayName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayName"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariable7DispT<T>::get_DisplayName(void)
{
  BSTR PVal;
  this->get_DisplayName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_LinkVariableName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LinkVariableName"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariable7DispT<T>::get_LinkVariableName(void)
{
  BSTR PVal;
  this->get_LinkVariableName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_LinkDocumentName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LinkDocumentName"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariable7DispT<T>::get_LinkDocumentName(void)
{
  BSTR PVal;
  this->get_LinkDocumentName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/, 
                            TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetLink"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = DocumentName /*[VT_BSTR:0]*/;
  _args[2] = VariableName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariable7DispT<T>::SetLink(BSTR DocumentName/*[in]*/, BSTR VariableName/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetLink(DocumentName, VariableName, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariable7DispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariable7DispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IVariable7DispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IVariable7DispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IVariable7DispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IVariable7DispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IVariable7DispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayerGroups
// Interface: ILayerGroups
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayerGroupsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILayerGroupPtr __fastcall
TCOMILayerGroupsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayerGroupPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ILayerGroupPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupsT<T>::Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, TOLEBOOL Dinamic/*[in]*/, 
                          Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Owner, Dinamic, Result);
}

template <class T> Kompasltapi7_tlb::ILayerGroupPtr __fastcall
TCOMILayerGroupsT<T>::Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, TOLEBOOL Dinamic/*[in]*/)
{
  Kompasltapi7_tlb::ILayerGroupPtr Result;
  OLECHECK(this->Add(Owner, Dinamic, (Kompasltapi7_tlb::ILayerGroupPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupsT<T>::Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Attach(PGroup, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerGroupsT<T>::Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Attach(PGroup, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupsT<T>::Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Detach(PGroup, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerGroupsT<T>::Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Detach(PGroup, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILayerGroups
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DBFF6D98-8F79-453E-9B8B-81E40A6D8027}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerGroup**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerGroupPtr __fastcall
ILayerGroupsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayerGroupPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ILayerGroupPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, TOLEBOOL Dinamic/*[in]*/, 
                          Kompasltapi7_tlb::ILayerGroupPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IView*)Owner /*[VT_USERDEFINED:1]*/;
  _args[2] = Dinamic /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerGroup**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerGroupPtr __fastcall
ILayerGroupsDispT<T>::Add(Kompasltapi7_tlb::IViewPtr Owner/*[in]*/, TOLEBOOL Dinamic/*[in]*/)
{
  Kompasltapi7_tlb::ILayerGroupPtr Result;
  this->Add(Owner, Dinamic, (Kompasltapi7_tlb::ILayerGroupPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attach"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayerGroup*)PGroup /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerGroupsDispT<T>::Attach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/)
{
  TOLEBOOL Result;
  this->Attach(PGroup, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Detach"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayerGroup*)PGroup /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerGroupsDispT<T>::Detach(Kompasltapi7_tlb::ILayerGroupPtr PGroup/*[in]*/)
{
  TOLEBOOL Result;
  this->Detach(PGroup, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILayerGroupsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerGroupsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayerGroupsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayerGroupsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayerGroupsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerGroupsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerGroupsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayerGroup
// Interface: ILayerGroup
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_OwnerGroup(Kompasltapi7_tlb::ILayerGroupPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_OwnerGroup(PVal);
}

template <class T> Kompasltapi7_tlb::ILayerGroupPtr __fastcall
TCOMILayerGroupT<T>::get_OwnerGroup(void)
{
  Kompasltapi7_tlb::ILayerGroupPtr PVal;
  OLECHECK(this->get_OwnerGroup((Kompasltapi7_tlb::ILayerGroupPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* Result/*[out,retval]*/)
{
  return (*this)->get_LayerGroups(Result);
}

template <class T> Kompasltapi7_tlb::ILayerGroupsPtr __fastcall
TCOMILayerGroupT<T>::get_LayerGroups(void)
{
  Kompasltapi7_tlb::ILayerGroupsPtr Result;
  OLECHECK(this->get_LayerGroups((Kompasltapi7_tlb::ILayerGroupsPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_Layers(Kompasltapi7_tlb::ILayersPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Layers(Result);
}

template <class T> Kompasltapi7_tlb::ILayersPtr __fastcall
TCOMILayerGroupT<T>::get_Layers(void)
{
  Kompasltapi7_tlb::ILayersPtr Result;
  OLECHECK(this->get_Layers((Kompasltapi7_tlb::ILayersPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMILayerGroupT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_LayerFilterConditions(Kompasltapi7_tlb::ILayerFilterConditionsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_LayerFilterConditions(PVal);
}

template <class T> Kompasltapi7_tlb::ILayerFilterConditionsPtr __fastcall
TCOMILayerGroupT<T>::get_LayerFilterConditions(void)
{
  Kompasltapi7_tlb::ILayerFilterConditionsPtr PVal;
  OLECHECK(this->get_LayerFilterConditions((Kompasltapi7_tlb::ILayerFilterConditionsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::GetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL* Visible/*[out]*/, 
                                    TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                    long* Color/*[out]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->GetLayerStates(LayerIndex, Visible, Background, Curent, Color, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerGroupT<T>::GetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL* Visible/*[out]*/, 
                                    TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                    long* Color/*[out]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->GetLayerStates(LayerIndex, Visible, Background, Curent, Color, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::SetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL Visible/*[in]*/, 
                                    TOLEBOOL Background/*[in]*/, TOLEBOOL Curent/*[in]*/, 
                                    long Color/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->SetLayerStates(LayerIndex, Visible, Background, Curent, Color, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerGroupT<T>::SetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL Visible/*[in]*/, 
                                    TOLEBOOL Background/*[in]*/, TOLEBOOL Curent/*[in]*/, 
                                    long Color/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->SetLayerStates(LayerIndex, Visible, Background, Curent, Color, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::set_Current(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Current(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_Current(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Current(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerGroupT<T>::get_Current(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Current((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMILayerGroupT<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_OwnerView(Kompasltapi7_tlb::IViewPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_OwnerView(PVal);
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
TCOMILayerGroupT<T>::get_OwnerView(void)
{
  Kompasltapi7_tlb::IViewPtr PVal;
  OLECHECK(this->get_OwnerView((Kompasltapi7_tlb::IViewPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::set_OwnerView(Kompasltapi7_tlb::IViewPtr PVal/*[in,def,opt]*/)
{
  return (*this)->set_OwnerView(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerGroupT<T>::get_UniqueId(double* PVal/*[out,retval]*/)
{
  return (*this)->get_UniqueId(PVal);
}

template <class T> double __fastcall
TCOMILayerGroupT<T>::get_UniqueId(void)
{
  double PVal;
  OLECHECK(this->get_UniqueId((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILayerGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {265BBB5A-7B8A-4AA5-A0BB-FF64D23BE62B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_OwnerGroup(Kompasltapi7_tlb::ILayerGroupPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OwnerGroup"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerGroup**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerGroupPtr __fastcall
ILayerGroupDispT<T>::get_OwnerGroup(void)
{
  Kompasltapi7_tlb::ILayerGroupPtr PVal;
  this->get_OwnerGroup((Kompasltapi7_tlb::ILayerGroupPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_LayerGroups(Kompasltapi7_tlb::ILayerGroupsPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerGroups"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerGroups**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerGroupsPtr __fastcall
ILayerGroupDispT<T>::get_LayerGroups(void)
{
  Kompasltapi7_tlb::ILayerGroupsPtr Result;
  this->get_LayerGroups((Kompasltapi7_tlb::ILayerGroupsPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_Layers(Kompasltapi7_tlb::ILayersPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Layers"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayers**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayersPtr __fastcall
ILayerGroupDispT<T>::get_Layers(void)
{
  Kompasltapi7_tlb::ILayersPtr Result;
  this->get_Layers((Kompasltapi7_tlb::ILayersPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILayerGroupDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_LayerFilterConditions(Kompasltapi7_tlb::ILayerFilterConditionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerFilterConditions"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerFilterConditions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerFilterConditionsPtr __fastcall
ILayerGroupDispT<T>::get_LayerFilterConditions(void)
{
  Kompasltapi7_tlb::ILayerFilterConditionsPtr PVal;
  this->get_LayerFilterConditions((Kompasltapi7_tlb::ILayerFilterConditionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::GetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL* Visible/*[out]*/, 
                                    TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                    long* Color/*[out]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLayerStates"), DISPID(6));
  TAutoArgs<5> _args;
  _args[1] = LayerIndex /*[VT_VARIANT:0]*/;
  _args[2] = Visible /*[VT_BOOL:1]*/;
  _args[3] = Background /*[VT_BOOL:1]*/;
  _args[4] = Curent /*[VT_BOOL:1]*/;
  _args[5] = Color /*[VT_I4:1]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerGroupDispT<T>::GetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL* Visible/*[out]*/, 
                                    TOLEBOOL* Background/*[out]*/, TOLEBOOL* Curent/*[out]*/, 
                                    long* Color/*[out]*/)
{
  TOLEBOOL PRes;
  this->GetLayerStates(LayerIndex, Visible, Background, Curent, Color, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::SetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL Visible/*[in]*/, 
                                    TOLEBOOL Background/*[in]*/, TOLEBOOL Curent/*[in]*/, 
                                    long Color/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetLayerStates"), DISPID(7));
  TAutoArgs<5> _args;
  _args[1] = LayerIndex /*[VT_VARIANT:0]*/;
  _args[2] = Visible /*[VT_BOOL:0]*/;
  _args[3] = Background /*[VT_BOOL:0]*/;
  _args[4] = Curent /*[VT_BOOL:0]*/;
  _args[5] = Color /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerGroupDispT<T>::SetLayerStates(TVariantInParam LayerIndex/*[in]*/, TOLEBOOL Visible/*[in]*/, 
                                    TOLEBOOL Background/*[in]*/, TOLEBOOL Curent/*[in]*/, 
                                    long Color/*[in]*/)
{
  TOLEBOOL PRes;
  this->SetLayerStates(LayerIndex, Visible, Background, Curent, Color, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::set_Current(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_Current(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerGroupDispT<T>::get_Current(void)
{
  TOLEBOOL PVal;
  this->get_Current((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILayerGroupDispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_OwnerView(Kompasltapi7_tlb::IViewPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OwnerView"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IView**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
ILayerGroupDispT<T>::get_OwnerView(void)
{
  Kompasltapi7_tlb::IViewPtr PVal;
  this->get_OwnerView((Kompasltapi7_tlb::IViewPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::set_OwnerView(Kompasltapi7_tlb::IViewPtr PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("OwnerView"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IView*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_UniqueId(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UniqueId"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILayerGroupDispT<T>::get_UniqueId(void)
{
  double PVal;
  this->get_UniqueId((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayerGroupDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayerGroupDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayerGroupDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerGroupDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerGroupDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayerFilterConditions
// Interface: ILayerFilterConditions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayerFilterConditionsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall
TCOMILayerFilterConditionsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayerFilterConditionPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::ILayerFilterConditionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionsT<T>::Add(Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall
TCOMILayerFilterConditionsT<T>::Add(void)
{
  Kompasltapi7_tlb::ILayerFilterConditionPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ILayerFilterConditionPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILayerFilterConditions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BCA22E27-AB60-4BA6-87EE-92158AA6D366}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerFilterCondition**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall
ILayerFilterConditionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILayerFilterConditionPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::ILayerFilterConditionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::Add(Kompasltapi7_tlb::ILayerFilterConditionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayerFilterCondition**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayerFilterConditionPtr __fastcall
ILayerFilterConditionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ILayerFilterConditionPtr Result;
  this->Add((Kompasltapi7_tlb::ILayerFilterConditionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILayerFilterConditionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerFilterConditionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayerFilterConditionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayerFilterConditionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayerFilterConditionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerFilterConditionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILayerFilterCondition
// Interface: ILayerFilterCondition
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::set_Number(BSTR PVal/*[in]*/)
{
  return (*this)->set_Number(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::get_Number(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Number(PVal);
}

template <class T> BSTR __fastcall
TCOMILayerFilterConditionT<T>::get_Number(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Number((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMILayerFilterConditionT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::set_Background(FilterCondotionStateEnum PVal/*[in]*/)
{
  return (*this)->set_Background(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::get_Background(FilterCondotionStateEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Background(PVal);
}

template <class T> FilterCondotionStateEnum __fastcall
TCOMILayerFilterConditionT<T>::get_Background(void)
{
  FilterCondotionStateEnum PVal;
  OLECHECK(this->get_Background((FilterCondotionStateEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::set_Visible(FilterCondotionStateEnum PVal/*[in]*/)
{
  return (*this)->set_Visible(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::get_Visible(FilterCondotionStateEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Visible(PVal);
}

template <class T> FilterCondotionStateEnum __fastcall
TCOMILayerFilterConditionT<T>::get_Visible(void)
{
  FilterCondotionStateEnum PVal;
  OLECHECK(this->get_Visible((FilterCondotionStateEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::set_HaveObjects(FilterCondotionStateEnum PVal/*[in]*/)
{
  return (*this)->set_HaveObjects(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::get_HaveObjects(FilterCondotionStateEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_HaveObjects(PVal);
}

template <class T> FilterCondotionStateEnum __fastcall
TCOMILayerFilterConditionT<T>::get_HaveObjects(void)
{
  FilterCondotionStateEnum PVal;
  OLECHECK(this->get_HaveObjects((FilterCondotionStateEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::set_Color(long PVal/*[in]*/)
{
  return (*this)->set_Color(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Color(PVal);
}

template <class T> long __fastcall
TCOMILayerFilterConditionT<T>::get_Color(void)
{
  long PVal;
  OLECHECK(this->get_Color((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  return (*this)->set_Comment(PVal);
}

template <class T> HRESULT __fastcall
TCOMILayerFilterConditionT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Comment(PVal);
}

template <class T> BSTR __fastcall
TCOMILayerFilterConditionT<T>::get_Comment(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Comment((BSTR*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILayerFilterCondition
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D743BC12-82A9-4E8F-85B2-7154A356ACC0}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::set_Number(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Number(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILayerFilterConditionDispT<T>::get_Number(void)
{
  BSTR PVal;
  this->get_Number((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILayerFilterConditionDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::set_Background(FilterCondotionStateEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Background(FilterCondotionStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> FilterCondotionStateEnum __fastcall
ILayerFilterConditionDispT<T>::get_Background(void)
{
  FilterCondotionStateEnum PVal;
  this->get_Background((FilterCondotionStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::set_Visible(FilterCondotionStateEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Visible(FilterCondotionStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> FilterCondotionStateEnum __fastcall
ILayerFilterConditionDispT<T>::get_Visible(void)
{
  FilterCondotionStateEnum PVal;
  this->get_Visible((FilterCondotionStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::set_HaveObjects(FilterCondotionStateEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HaveObjects"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_HaveObjects(FilterCondotionStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HaveObjects"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> FilterCondotionStateEnum __fastcall
ILayerFilterConditionDispT<T>::get_HaveObjects(void)
{
  FilterCondotionStateEnum PVal;
  this->get_HaveObjects((FilterCondotionStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::set_Color(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerFilterConditionDispT<T>::get_Color(void)
{
  long PVal;
  this->get_Color((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILayerFilterConditionDispT<T>::get_Comment(void)
{
  BSTR PVal;
  this->get_Comment((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILayerFilterConditionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILayerFilterConditionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILayerFilterConditionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILayerFilterConditionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILayerFilterConditionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIKompasDocument3D
// Interface: IKompasDocument3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  return (*this)->get_TopPart(Result);
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
TCOMIKompasDocument3DT<T>::get_TopPart(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  OLECHECK(this->get_TopPart((Kompasltapi7_tlb::IPart7Ptr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllPlanes(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllPlanes(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllPlanes(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllPlanes((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllAxis(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllAxis(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllAxis(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllAxis((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllSketches(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllSketches(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllSketches(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllSketches((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllPlaces(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllPlaces(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllPlaces(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllPlaces((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllSurfaces(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllSurfaces(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllSurfaces(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllSurfaces((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllThreads(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllThreads(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllThreads(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllThreads((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllCurves(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllCurves(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllCurves(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllCurves((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllControlPoints(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllControlPoints(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllControlPoints(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllControlPoints((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Perspective(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_Perspective(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Perspective(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_Perspective(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Perspective((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_DrawMode(long PVal/*[in]*/)
{
  return (*this)->set_DrawMode(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_DrawMode(long* PVal/*[out,retval]*/)
{
  return (*this)->get_DrawMode(PVal);
}

template <class T> long __fastcall
TCOMIKompasDocument3DT<T>::get_DrawMode(void)
{
  long PVal;
  OLECHECK(this->get_DrawMode((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_ShadedWireframe(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ShadedWireframe(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ShadedWireframe(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_ShadedWireframe(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ShadedWireframe((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CreateObjectsInCurrentLocalCS(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CreateObjectsInCurrentLocalCS(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_CreateObjectsInCurrentLocalCS(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CreateObjectsInCurrentLocalCS((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllDimensions(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllDimensions(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllDimensions(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllDimensions((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllDesignations(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllDesignations(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllDesignations(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllDesignations((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideAllAuxiliaryGeom(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideAllAuxiliaryGeom(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideAllAuxiliaryGeom(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideAllAuxiliaryGeom((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HideInComponentsMode(PVal);
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HideInComponentsMode(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIKompasDocument3DT<T>::get_HideInComponentsMode(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HideInComponentsMode((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SelectionManager(PVal);
}

template <class T> Kompasltapi7_tlb::ISelectionManagerPtr __fastcall
TCOMIKompasDocument3DT<T>::get_SelectionManager(void)
{
  Kompasltapi7_tlb::ISelectionManagerPtr PVal;
  OLECHECK(this->get_SelectionManager((Kompasltapi7_tlb::ISelectionManagerPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_ChooseManager(PVal);
}

template <class T> Kompasltapi7_tlb::IChooseManagerPtr __fastcall
TCOMIKompasDocument3DT<T>::get_ChooseManager(void)
{
  Kompasltapi7_tlb::IChooseManagerPtr PVal;
  OLECHECK(this->get_ChooseManager((Kompasltapi7_tlb::IChooseManagerPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                        Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/)
{
  return (*this)->CreateAttrEx(AttrID, Libname, Objects, SourcePart, Result);
}

template <class T> Kompasltapi7_tlb::IAttributePtr __fastcall
TCOMIKompasDocument3DT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  Kompasltapi7_tlb::IAttributePtr Result;
  OLECHECK(this->CreateAttrEx(AttrID, Libname, Objects, SourcePart, (Kompasltapi7_tlb::IAttributePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIKompasDocument3DT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                            long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/, 
                                            Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                            TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_AttributesEx(Key1, Key2, Key3, Key4, Numb, Objects, SourcePart, Result);
}

template <class T> TVariant __fastcall
TCOMIKompasDocument3DT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                            long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/, 
                                            Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->get_AttributesEx(Key1, Key2, Key3, Key4, Numb, Objects, SourcePart, (TVariant*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IKompasDocument3D
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7B60E769-06C3-4FDC-9677-7B5EF5180308}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TopPart"), DISPID(5002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IKompasDocument3DDispT<T>::get_TopPart(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_TopPart((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlanes"), DISPID(5003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlanes"), DISPID(5003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllPlanes(void)
{
  TOLEBOOL PVal;
  this->get_HideAllPlanes((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAxis"), DISPID(5004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAxis"), DISPID(5004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllAxis(void)
{
  TOLEBOOL PVal;
  this->get_HideAllAxis((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSketches"), DISPID(5005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSketches"), DISPID(5005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllSketches(void)
{
  TOLEBOOL PVal;
  this->get_HideAllSketches((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlaces"), DISPID(5006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlaces"), DISPID(5006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllPlaces(void)
{
  TOLEBOOL PVal;
  this->get_HideAllPlaces((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSurfaces"), DISPID(5007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSurfaces"), DISPID(5007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllSurfaces(void)
{
  TOLEBOOL PVal;
  this->get_HideAllSurfaces((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllThreads"), DISPID(5008));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllThreads"), DISPID(5008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllThreads(void)
{
  TOLEBOOL PVal;
  this->get_HideAllThreads((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllCurves"), DISPID(5009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllCurves"), DISPID(5009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllCurves(void)
{
  TOLEBOOL PVal;
  this->get_HideAllCurves((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllControlPoints"), DISPID(5010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllControlPoints"), DISPID(5010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllControlPoints(void)
{
  TOLEBOOL PVal;
  this->get_HideAllControlPoints((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Perspective"), DISPID(5011));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Perspective(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Perspective"), DISPID(5011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_Perspective(void)
{
  TOLEBOOL PVal;
  this->get_Perspective((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_DrawMode(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawMode"), DISPID(5012));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_DrawMode(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawMode"), DISPID(5012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasDocument3DDispT<T>::get_DrawMode(void)
{
  long PVal;
  this->get_DrawMode((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_ShadedWireframe(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShadedWireframe"), DISPID(5013));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShadedWireframe"), DISPID(5013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_ShadedWireframe(void)
{
  TOLEBOOL PVal;
  this->get_ShadedWireframe((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateObjectsInCurrentLocalCS"), DISPID(5014));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateObjectsInCurrentLocalCS"), DISPID(5014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_CreateObjectsInCurrentLocalCS(void)
{
  TOLEBOOL PVal;
  this->get_CreateObjectsInCurrentLocalCS((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDimensions"), DISPID(5015));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDimensions"), DISPID(5015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllDimensions(void)
{
  TOLEBOOL PVal;
  this->get_HideAllDimensions((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDesignations"), DISPID(5016));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDesignations"), DISPID(5016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllDesignations(void)
{
  TOLEBOOL PVal;
  this->get_HideAllDesignations((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAuxiliaryGeom"), DISPID(5017));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAuxiliaryGeom"), DISPID(5017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideAllAuxiliaryGeom(void)
{
  TOLEBOOL PVal;
  this->get_HideAllAuxiliaryGeom((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideInComponentsMode"), DISPID(5018));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideInComponentsMode"), DISPID(5018));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_HideInComponentsMode(void)
{
  TOLEBOOL PVal;
  this->get_HideInComponentsMode((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectionManager"), DISPID(5019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISelectionManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISelectionManagerPtr __fastcall
IKompasDocument3DDispT<T>::get_SelectionManager(void)
{
  Kompasltapi7_tlb::ISelectionManagerPtr PVal;
  this->get_SelectionManager((Kompasltapi7_tlb::ISelectionManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChooseManager"), DISPID(5020));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IChooseManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IChooseManagerPtr __fastcall
IKompasDocument3DDispT<T>::get_ChooseManager(void)
{
  Kompasltapi7_tlb::IChooseManagerPtr PVal;
  this->get_ChooseManager((Kompasltapi7_tlb::IChooseManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                        Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateAttrEx"), DISPID(5021));
  TAutoArgs<4> _args;
  _args[1] = AttrID /*[VT_R8:0]*/;
  _args[2] = Libname /*[VT_BSTR:0]*/;
  _args[3] = Objects /*[VT_VARIANT:0]*/;
  _args[4] = (LPDISPATCH)(Kompasltapi7_tlb::IPart7*)SourcePart /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttribute**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributePtr __fastcall
IKompasDocument3DDispT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  Kompasltapi7_tlb::IAttributePtr Result;
  this->CreateAttrEx(AttrID, Libname, Objects, SourcePart, (Kompasltapi7_tlb::IAttributePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/
                                            , long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/, 
                                            Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                            TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributesEx"), DISPID(5022));
  TAutoArgs<7> _args;
  _args[1] = Key1 /*[VT_I4:0]*/;
  _args[2] = Key2 /*[VT_I4:0]*/;
  _args[3] = Key3 /*[VT_I4:0]*/;
  _args[4] = Key4 /*[VT_I4:0]*/;
  _args[5] = Numb /*[VT_R8:0]*/;
  _args[6] = Objects /*[VT_VARIANT:0]*/;
  _args[7] = (LPDISPATCH)(Kompasltapi7_tlb::IPart7*)SourcePart /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IKompasDocument3DDispT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                            long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/, 
                                            Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  TVariant Result;
  this->get_AttributesEx(Key1, Key2, Key3, Key4, Numb, Objects, SourcePart, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
IKompasDocument3DDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
IKompasDocument3DDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                 TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocument3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocument3DDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IKompasDocument3DDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument3DDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
IKompasDocument3DDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IKompasDocument3DDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
IKompasDocument3DDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
IKompasDocument3DDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasDocument3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IKompasDocument3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IKompasDocument3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IKompasDocument3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasDocument3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIModelObject
// Interface: IModelObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIModelObjectT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Hidden(PVal);
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Hidden(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIModelObjectT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Hidden((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->_Update(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIModelObjectT<T>::_Update(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->_Update((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Valid(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIModelObjectT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Valid((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  return (*this)->get_Part(Result);
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
TCOMIModelObjectT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  OLECHECK(this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  return (*this)->get_ModelObjectType(Type);
}

template <class T> ksObj3dTypeEnum __fastcall
TCOMIModelObjectT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  OLECHECK(this->get_ModelObjectType((ksObj3dTypeEnum*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOMIModelObjectT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  return (*this)->get_Owner(PVal);
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
TCOMIModelObjectT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  OLECHECK(this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IModelObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E37256D4-9021-47AC-8FAF-3713FB2A50C3}
// *********************************************************************//
template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IModelObjectDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IModelObjectDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IModelObjectDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IModelObjectDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IModelObjectDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IModelObjectDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IModelObjectDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IModelObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IModelObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IModelObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IModelObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IModelObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPart7
// Interface: IPart7
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Marking(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Marking(PVal);
}

template <class T> BSTR __fastcall
TCOMIPart7T<T>::get_Marking(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Marking((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::set_Marking(BSTR PVal/*[in]*/)
{
  return (*this)->set_Marking(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIPart7T<T>::get_FileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::set_FileName(BSTR PVal/*[in]*/)
{
  return (*this)->set_FileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::set_Standard(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Standard(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Standard(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Standard(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPart7T<T>::get_Standard(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Standard((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::set_Fixed(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Fixed(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Fixed(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Fixed(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPart7T<T>::get_Fixed(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Fixed((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Detail(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Detail(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPart7T<T>::get_Detail(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Detail((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Mass(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Mass(PVal);
}

template <class T> double __fastcall
TCOMIPart7T<T>::get_Mass(void)
{
  double PVal;
  OLECHECK(this->get_Mass((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Density(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Density(PVal);
}

template <class T> double __fastcall
TCOMIPart7T<T>::get_Density(void)
{
  double PVal;
  OLECHECK(this->get_Density((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Material(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Material(PVal);
}

template <class T> BSTR __fastcall
TCOMIPart7T<T>::get_Material(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Material((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                            TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetMaterial(Name, Density, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPart7T<T>::SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetMaterial(Name, Density, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_Parts(Kompasltapi7_tlb::IParts7Ptr* Result/*[out,retval]*/)
{
  return (*this)->get_Parts(Result);
}

template <class T> Kompasltapi7_tlb::IParts7Ptr __fastcall
TCOMIPart7T<T>::get_Parts(void)
{
  Kompasltapi7_tlb::IParts7Ptr Result;
  OLECHECK(this->get_Parts((Kompasltapi7_tlb::IParts7Ptr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/)
{
  return (*this)->get_VariableTable(Result);
}

template <class T> Kompasltapi7_tlb::IVariableTablePtr __fastcall
TCOMIPart7T<T>::get_VariableTable(void)
{
  Kompasltapi7_tlb::IVariableTablePtr Result;
  OLECHECK(this->get_VariableTable((Kompasltapi7_tlb::IVariableTablePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_PartsEx(TVariantInParam PartCollectionType/*[in]*/, 
                            TVariant* Objects/*[out,retval]*/)
{
  return (*this)->get_PartsEx(PartCollectionType, Objects);
}

template <class T> TVariant __fastcall
TCOMIPart7T<T>::get_PartsEx(TVariantInParam PartCollectionType/*[in]*/)
{
  TVariant Objects;
  OLECHECK(this->get_PartsEx(PartCollectionType, (TVariant*)&Objects));
  return Objects;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/, 
                                  long* Count/*[out,retval]*/)
{
  return (*this)->get_InstanceCount(Part, Count);
}

template <class T> long __fastcall
TCOMIPart7T<T>::get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/)
{
  long Count;
  OLECHECK(this->get_InstanceCount(Part, (long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                              double Z/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  return (*this)->SelectByPoint(Objects, X, Y, Z, Result);
}

template <class T> TVariant __fastcall
TCOMIPart7T<T>::SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                              double Z/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->SelectByPoint(Objects, X, Y, Z, (TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::TransferObjects(TVariantInParam Objects/*[in]*/, 
                                Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                TOLEBOOL holdPosition/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->TransferObjects(Objects, Lcs, holdPosition, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPart7T<T>::TransferObjects(TVariantInParam Objects/*[in]*/, 
                                Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                TOLEBOOL holdPosition/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->TransferObjects(Objects, Lcs, holdPosition, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::Load(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Load(Full, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPart7T<T>::Load(TOLEBOOL Full/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Load(Full, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::Unload(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Unload(Full, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPart7T<T>::Unload(TOLEBOOL Full/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Unload(Full, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_LoadState(ksLoadStateEnum* Type/*[out,retval]*/)
{
  return (*this)->get_LoadState(Type);
}

template <class T> ksLoadStateEnum __fastcall
TCOMIPart7T<T>::get_LoadState(void)
{
  ksLoadStateEnum Type;
  OLECHECK(this->get_LoadState((ksLoadStateEnum*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOMIPart7T<T>::get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DefaultObject(Type, Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPart7T<T>::get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_DefaultObject(Type, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPart7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA4A5FDE-A08C-4F5A-8C04-98395BA44307}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Marking(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Marking"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPart7DispT<T>::get_Marking(void)
{
  BSTR PVal;
  this->get_Marking((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::set_Marking(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Marking"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPart7DispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::set_FileName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::set_Standard(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Standard"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Standard(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Standard"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::get_Standard(void)
{
  TOLEBOOL PVal;
  this->get_Standard((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::set_Fixed(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Fixed"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Fixed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Fixed"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::get_Fixed(void)
{
  TOLEBOOL PVal;
  this->get_Fixed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Detail(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Detail"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::get_Detail(void)
{
  TOLEBOOL PVal;
  this->get_Detail((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Mass(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mass"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPart7DispT<T>::get_Mass(void)
{
  double PVal;
  this->get_Mass((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Density(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Density"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPart7DispT<T>::get_Density(void)
{
  double PVal;
  this->get_Density((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Material(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Material"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPart7DispT<T>::get_Material(void)
{
  BSTR PVal;
  this->get_Material((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                            TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetMaterial"), DISPID(9));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Density /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetMaterial(Name, Density, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Parts(Kompasltapi7_tlb::IParts7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parts"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IParts7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IParts7Ptr __fastcall
IPart7DispT<T>::get_Parts(void)
{
  Kompasltapi7_tlb::IParts7Ptr Result;
  this->get_Parts((Kompasltapi7_tlb::IParts7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VariableTable"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariableTable**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariableTablePtr __fastcall
IPart7DispT<T>::get_VariableTable(void)
{
  Kompasltapi7_tlb::IVariableTablePtr Result;
  this->get_VariableTable((Kompasltapi7_tlb::IVariableTablePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_PartsEx(TVariantInParam PartCollectionType/*[in]*/, 
                            TVariant* Objects/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PartsEx"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PartCollectionType /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Objects /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPart7DispT<T>::get_PartsEx(TVariantInParam PartCollectionType/*[in]*/)
{
  TVariant Objects;
  this->get_PartsEx(PartCollectionType, (TVariant*)&Objects);
  return Objects;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/, 
                                  long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InstanceCount"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPart7*)Part /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPart7DispT<T>::get_InstanceCount(Kompasltapi7_tlb::IPart7Ptr Part/*[in]*/)
{
  long Count;
  this->get_InstanceCount(Part, (long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                              double Z/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectByPoint"), DISPID(14));
  TAutoArgs<4> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  _args[4] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IPart7DispT<T>::SelectByPoint(TVariantInParam Objects/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                              double Z/*[in]*/)
{
  TVariant Result;
  this->SelectByPoint(Objects, X, Y, Z, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::TransferObjects(TVariantInParam Objects/*[in]*/, 
                                Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                TOLEBOOL holdPosition/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TransferObjects"), DISPID(15));
  TAutoArgs<3> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::ILocalCoordinateSystem*)Lcs /*[VT_USERDEFINED:1]*/;
  _args[3] = holdPosition /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::TransferObjects(TVariantInParam Objects/*[in]*/, 
                                Kompasltapi7_tlb::ILocalCoordinateSystemPtr Lcs/*[in]*/, 
                                TOLEBOOL holdPosition/*[in]*/)
{
  TOLEBOOL Result;
  this->TransferObjects(Objects, Lcs, holdPosition, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::Load(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Load"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = Full /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::Load(TOLEBOOL Full/*[in]*/)
{
  TOLEBOOL Result;
  this->Load(Full, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::Unload(TOLEBOOL Full/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Unload"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = Full /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::Unload(TOLEBOOL Full/*[in]*/)
{
  TOLEBOOL Result;
  this->Unload(Full, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_LoadState(ksLoadStateEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LoadState"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLoadStateEnum __fastcall
IPart7DispT<T>::get_LoadState(void)
{
  ksLoadStateEnum Type;
  this->get_LoadState((ksLoadStateEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultObject"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPart7DispT<T>::get_DefaultObject(ksObj3dTypeEnum Type/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_DefaultObject(Type, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPart7DispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPart7DispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IPart7DispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IPart7DispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IPart7DispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPart7DispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPart7DispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPart7DispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPart7DispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPart7DispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IFeature7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EF4343FA-985D-4FE9-AD5F-439BC8F92958}
// *********************************************************************//
template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IFeature7DispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_UpdateStamp(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UpdateStamp"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IFeature7DispT<T>::get_UpdateStamp(void)
{
  long PVal;
  this->get_UpdateStamp((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_OwnerFeature(Kompasltapi7_tlb::IFeature7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OwnerFeature"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IFeature7DispT<T>::get_OwnerFeature(void)
{
  Kompasltapi7_tlb::IFeature7Ptr Result;
  this->get_OwnerFeature((Kompasltapi7_tlb::IFeature7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFeature7DispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::set_Excluded(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Excluded"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_Excluded(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Excluded"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFeature7DispT<T>::get_Excluded(void)
{
  TOLEBOOL PVal;
  this->get_Excluded((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_ModelObjects(TVariantInParam ObjType/*[in]*/, 
                                    TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjects"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = ObjType /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IFeature7DispT<T>::get_ModelObjects(TVariantInParam ObjType/*[in]*/)
{
  TVariant Result;
  this->get_ModelObjects(ObjType, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_FeatureType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FeatureType"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IFeature7DispT<T>::get_FeatureType(void)
{
  ksObj3dTypeEnum Type;
  this->get_FeatureType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFeature7DispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_SubFeatures(ksTreeTypeEnum TreeType/*[in]*/, 
                                   TOLEBOOL Through/*[in]*/, TOLEBOOL LibObject/*[in]*/, 
                                   TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SubFeatures"), DISPID(2009));
  TAutoArgs<3> _args;
  _args[1] = (int)TreeType /*[VT_USERDEFINED:0]*/;
  _args[2] = Through /*[VT_BOOL:0]*/;
  _args[3] = LibObject /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IFeature7DispT<T>::get_SubFeatures(ksTreeTypeEnum TreeType/*[in]*/, 
                                   TOLEBOOL Through/*[in]*/, TOLEBOOL LibObject/*[in]*/)
{
  TVariant Result;
  this->get_SubFeatures(TreeType, Through, LibObject, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFeature7DispT<T>::get_ResultBodies(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResultBodies"), DISPID(2010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IFeature7DispT<T>::get_ResultBodies(void)
{
  TVariant Result;
  this->get_ResultBodies((TVariant*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMIModelObjects
// Interface: IModelObjects
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIModelObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIModelObjectsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IModelObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {125CB096-639E-479F-98DE-F27FAB23838A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IModelObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IModelObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IModelObjectsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IModelObjectsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IModelObjectsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IModelObjectsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IModelObjectsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IModelObjectsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IModelObjectsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IModelObjectsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IModelObjectsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIParts7
// Interface: IParts7
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIParts7T<T>::get_Part(TVariantInParam Index/*[in]*/, 
                          Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  return (*this)->get_Part(Index, Result);
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
TCOMIParts7T<T>::get_Part(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  OLECHECK(this->get_Part(Index, (Kompasltapi7_tlb::IPart7Ptr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIParts7T<T>::AddFromFile(BSTR FileName/*[in]*/, TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                             TOLEBOOL Redraw/*[in,def,opt]*/, 
                             Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  return (*this)->AddFromFile(FileName, ExternalFile, Redraw, Result);
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
TCOMIParts7T<T>::AddFromFile(BSTR FileName/*[in]*/, TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                             TOLEBOOL Redraw/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  OLECHECK(this->AddFromFile(FileName, ExternalFile, Redraw, (Kompasltapi7_tlb::IPart7Ptr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIParts7T<T>::Add(BSTR FileName/*[in]*/, Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/, 
                     Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  return (*this)->Add(FileName, Plane, Result);
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
TCOMIParts7T<T>::Add(BSTR FileName/*[in]*/, Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  OLECHECK(this->Add(FileName, Plane, (Kompasltapi7_tlb::IPart7Ptr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IParts7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42F8FCEF-E56F-466C-8814-BEBAC0719AE6}
// *********************************************************************//
template <class T> HRESULT __fastcall
IParts7DispT<T>::get_Part(TVariantInParam Index/*[in]*/, 
                          Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IParts7DispT<T>::get_Part(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part(Index, (Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::AddFromFile(BSTR FileName/*[in]*/, TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                             TOLEBOOL Redraw/*[in,def,opt]*/, 
                             Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddFromFile"), DISPID(2));
  TAutoArgs<3> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = ExternalFile /*[VT_BOOL:0]*/;
  _args[3] = Redraw /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IParts7DispT<T>::AddFromFile(BSTR FileName/*[in]*/, TOLEBOOL ExternalFile/*[in,def,opt]*/, 
                             TOLEBOOL Redraw/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->AddFromFile(FileName, ExternalFile, Redraw, (Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::Add(BSTR FileName/*[in]*/, Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/, 
                     Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Plane /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IParts7DispT<T>::Add(BSTR FileName/*[in]*/, Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->Add(FileName, Plane, (Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                          Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IParts7DispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IParts7DispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IParts7DispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IParts7DispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IParts7DispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IParts7DispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IParts7DispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IParts7DispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIVariableTable
// Interface: IVariableTable
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_RowsCount(long* Val/*[out,retval]*/)
{
  return (*this)->get_RowsCount(Val);
}

template <class T> long __fastcall
TCOMIVariableTableT<T>::get_RowsCount(void)
{
  long Val;
  OLECHECK(this->get_RowsCount((long*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_ColumnsCount(long* Val/*[out,retval]*/)
{
  return (*this)->get_ColumnsCount(Val);
}

template <class T> long __fastcall
TCOMIVariableTableT<T>::get_ColumnsCount(void)
{
  long Val;
  OLECHECK(this->get_ColumnsCount((long*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_VarName(long Column/*[in]*/, BSTR* Val/*[out,retval]*/)
{
  return (*this)->get_VarName(Column, Val);
}

template <class T> BSTR __fastcall
TCOMIVariableTableT<T>::get_VarName(long Column/*[in]*/)
{
  BSTR Val = 0;
  OLECHECK(this->get_VarName(Column, (BSTR*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::set_VarName(long Column/*[in]*/, BSTR Val/*[in]*/)
{
  return (*this)->set_VarName(Column, Val);
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_VarNames(TVariant* Val/*[out,retval]*/)
{
  return (*this)->get_VarNames(Val);
}

template <class T> TVariant __fastcall
TCOMIVariableTableT<T>::get_VarNames(void)
{
  TVariant Val;
  OLECHECK(this->get_VarNames((TVariant*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::set_VarNames(TVariantInParam Val/*[in]*/)
{
  return (*this)->set_VarNames(Val);
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_Comment(long Val/*[in]*/, BSTR* BstrVal/*[out,retval]*/)
{
  return (*this)->get_Comment(Val, BstrVal);
}

template <class T> BSTR __fastcall
TCOMIVariableTableT<T>::get_Comment(long Val/*[in]*/)
{
  BSTR BstrVal = 0;
  OLECHECK(this->get_Comment(Val, (BSTR*)&BstrVal));
  return BstrVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::set_Comment(long Val/*[in]*/, BSTR BstrVal/*[in]*/)
{
  return (*this)->set_Comment(Val, BstrVal);
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_TableRow(TVariantInParam Index/*[in]*/, TVariant* Val/*[out,retval]*/)
{
  return (*this)->get_TableRow(Index, Val);
}

template <class T> TVariant __fastcall
TCOMIVariableTableT<T>::get_TableRow(TVariantInParam Index/*[in]*/)
{
  TVariant Val;
  OLECHECK(this->get_TableRow(Index, (TVariant*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::set_TableRow(TVariantInParam Index/*[in]*/, TVariantInParam Val/*[in]*/)
{
  return (*this)->set_TableRow(Index, Val);
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                 double* Val/*[out,retval]*/)
{
  return (*this)->get_Cell(RowIndexVal, ColIndex, Val);
}

template <class T> double __fastcall
TCOMIVariableTableT<T>::get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/)
{
  double Val;
  OLECHECK(this->get_Cell(RowIndexVal, ColIndex, (double*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::set_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, double Val/*[in]*/)
{
  return (*this)->set_Cell(RowIndexVal, ColIndex, Val);
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::ApplyVars(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->ApplyVars(Index, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariableTableT<T>::ApplyVars(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->ApplyVars(Index, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/, 
                                        long* PVal/*[out,retval]*/)
{
  return (*this)->get_VisualTable(WinVal, Select, PVal);
}

template <class T> long __fastcall
TCOMIVariableTableT<T>::get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/)
{
  long PVal;
  OLECHECK(this->get_VisualTable(WinVal, Select, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::AddColumn(BSTR Val/*[in]*/, long* ColVal/*[out,retval]*/)
{
  return (*this)->AddColumn(Val, ColVal);
}

template <class T> long __fastcall
TCOMIVariableTableT<T>::AddColumn(BSTR Val/*[in]*/)
{
  long ColVal;
  OLECHECK(this->AddColumn(Val, (long*)&ColVal));
  return ColVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::DeleteColumn(TVariantInParam ColVal/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->DeleteColumn(ColVal, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariableTableT<T>::DeleteColumn(TVariantInParam ColVal/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->DeleteColumn(ColVal, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::AddRow(BSTR Val/*[in]*/, long* RowVal/*[out,retval]*/)
{
  return (*this)->AddRow(Val, RowVal);
}

template <class T> long __fastcall
TCOMIVariableTableT<T>::AddRow(BSTR Val/*[in]*/)
{
  long RowVal;
  OLECHECK(this->AddRow(Val, (long*)&RowVal));
  return RowVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::DeleteRow(TVariantInParam RowVal/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->DeleteRow(RowVal, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariableTableT<T>::DeleteRow(TVariantInParam RowVal/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->DeleteRow(RowVal, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::Clear(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Clear(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIVariableTableT<T>::Clear(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Clear((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIVariableTableT<T>::FindColumnIndex(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->FindColumnIndex(Val, PVal);
}

template <class T> long __fastcall
TCOMIVariableTableT<T>::FindColumnIndex(BSTR Val/*[in]*/)
{
  long PVal;
  OLECHECK(this->FindColumnIndex(Val, (long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IVariableTable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2B8B154E-ED76-4FF0-B3E4-FEE691D014A4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_RowsCount(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowsCount"), DISPID(7001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IVariableTableDispT<T>::get_RowsCount(void)
{
  long Val;
  this->get_RowsCount((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_ColumnsCount(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnsCount"), DISPID(7002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IVariableTableDispT<T>::get_ColumnsCount(void)
{
  long Val;
  this->get_ColumnsCount((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_VarName(long Column/*[in]*/, BSTR* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VarName"), DISPID(7003));
  TAutoArgs<1> _args;
  _args[1] = Column /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Val /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariableTableDispT<T>::get_VarName(long Column/*[in]*/)
{
  BSTR Val;
  this->get_VarName(Column, (BSTR*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::set_VarName(long Column/*[in]*/, BSTR Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VarName"), DISPID(7003));
  TAutoArgs<2> _args;
  _args[1] = Column /*[VT_I4:0]*/;
  _args[2] = Val /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_VarNames(TVariant* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VarNames"), DISPID(7004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IVariableTableDispT<T>::get_VarNames(void)
{
  TVariant Val;
  this->get_VarNames((TVariant*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::set_VarNames(TVariantInParam Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VarNames"), DISPID(7004));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_Comment(long Val/*[in]*/, BSTR* BstrVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7005));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OutRetValSetterPtr(BstrVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVariableTableDispT<T>::get_Comment(long Val/*[in]*/)
{
  BSTR BstrVal;
  this->get_Comment(Val, (BSTR*)&BstrVal);
  return BstrVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::set_Comment(long Val/*[in]*/, BSTR BstrVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7005));
  TAutoArgs<2> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  _args[2] = BstrVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_TableRow(TVariantInParam Index/*[in]*/, TVariant* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TableRow"), DISPID(7006));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Val /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IVariableTableDispT<T>::get_TableRow(TVariantInParam Index/*[in]*/)
{
  TVariant Val;
  this->get_TableRow(Index, (TVariant*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::set_TableRow(TVariantInParam Index/*[in]*/, TVariantInParam Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TableRow"), DISPID(7006));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  _args[2] = Val /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, 
                                 double* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cell"), DISPID(7007));
  TAutoArgs<2> _args;
  _args[1] = RowIndexVal /*[VT_I4:0]*/;
  _args[2] = ColIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Val /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IVariableTableDispT<T>::get_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/)
{
  double Val;
  this->get_Cell(RowIndexVal, ColIndex, (double*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::set_Cell(long RowIndexVal/*[in]*/, long ColIndex/*[in]*/, double Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cell"), DISPID(7007));
  TAutoArgs<3> _args;
  _args[1] = RowIndexVal /*[VT_I4:0]*/;
  _args[2] = ColIndex /*[VT_I4:0]*/;
  _args[3] = Val /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::ApplyVars(TVariantInParam Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ApplyVars"), DISPID(7008));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariableTableDispT<T>::ApplyVars(TVariantInParam Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->ApplyVars(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/, 
                                        long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VisualTable"), DISPID(7009));
  TAutoArgs<2> _args;
  _args[1] = WinVal /*[VT_INT:0]*/;
  _args[2] = Select /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IVariableTableDispT<T>::get_VisualTable(OLE_HANDLE WinVal/*[in]*/, TOLEBOOL Select/*[in]*/)
{
  long PVal;
  this->get_VisualTable(WinVal, Select, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::AddColumn(BSTR Val/*[in]*/, long* ColVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddColumn"), DISPID(7010));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(ColVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IVariableTableDispT<T>::AddColumn(BSTR Val/*[in]*/)
{
  long ColVal;
  this->AddColumn(Val, (long*)&ColVal);
  return ColVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::DeleteColumn(TVariantInParam ColVal/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteColumn"), DISPID(7011));
  TAutoArgs<1> _args;
  _args[1] = ColVal /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariableTableDispT<T>::DeleteColumn(TVariantInParam ColVal/*[in]*/)
{
  TOLEBOOL PVal;
  this->DeleteColumn(ColVal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::AddRow(BSTR Val/*[in]*/, long* RowVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddRow"), DISPID(7012));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(RowVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IVariableTableDispT<T>::AddRow(BSTR Val/*[in]*/)
{
  long RowVal;
  this->AddRow(Val, (long*)&RowVal);
  return RowVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::DeleteRow(TVariantInParam RowVal/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteRow"), DISPID(7013));
  TAutoArgs<1> _args;
  _args[1] = RowVal /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariableTableDispT<T>::DeleteRow(TVariantInParam RowVal/*[in]*/)
{
  TOLEBOOL PVal;
  this->DeleteRow(RowVal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::Clear(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(7014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVariableTableDispT<T>::Clear(void)
{
  TOLEBOOL PVal;
  this->Clear((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::FindColumnIndex(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FindColumnIndex"), DISPID(7015));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IVariableTableDispT<T>::FindColumnIndex(BSTR Val/*[in]*/)
{
  long PVal;
  this->FindColumnIndex(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IVariableTableDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IVariableTableDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IVariableTableDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IVariableTableDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IVariableTableDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint3D
// Interface: IPoint3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::set_Z(double PVal/*[in]*/)
{
  return (*this)->set_Z(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::get_Z(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Z(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DT<T>::get_Z(void)
{
  double PVal;
  OLECHECK(this->get_Z((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetAssociationObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetAssociationObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AssociationObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DT<T>::get_AssociationObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_AssociationObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/)
{
  return (*this)->set_Symbol(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Symbol(PVal);
}

template <class T> ksAnnotationSymbolEnum __fastcall
TCOMIPoint3DT<T>::get_Symbol(void)
{
  ksAnnotationSymbolEnum PVal;
  OLECHECK(this->get_Symbol((ksAnnotationSymbolEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/)
{
  return (*this)->set_ParameterType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ParameterType(PVal);
}

template <class T> ksPoint3DTypeEnum __fastcall
TCOMIPoint3DT<T>::get_ParameterType(void)
{
  ksPoint3DTypeEnum PVal;
  OLECHECK(this->get_ParameterType((ksPoint3DTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DT<T>::get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Parameters(Result);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMIPoint3DT<T>::get_Parameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  OLECHECK(this->get_Parameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPoint3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D71AEDBE-01D4-4C7D-96DC-94981F2A1C37}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoint3DDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::set_Z(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Z(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DDispT<T>::get_Z(void)
{
  double PVal;
  this->get_Z((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAssociationObject"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAssociationObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DDispT<T>::get_AssociationObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_AssociationObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAnnotationSymbolEnum __fastcall
IPoint3DDispT<T>::get_Symbol(void)
{
  ksAnnotationSymbolEnum PVal;
  this->get_Symbol((ksAnnotationSymbolEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPoint3DTypeEnum __fastcall
IPoint3DDispT<T>::get_ParameterType(void)
{
  ksPoint3DTypeEnum PVal;
  this->get_ParameterType((ksPoint3DTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parameters"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DDispT<T>::get_Parameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_Parameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPoint3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IPoint3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IPoint3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IPoint3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoint3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoint3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILocalCoordinateSystem
// Interface: ILocalCoordinateSystem
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                      double NewVal/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetDisplacementByAxis(Axis, NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemT<T>::SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                      double NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetDisplacementByAxis(Axis, NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::set_OrientationType(ksOrientationTypeEnum Result/*[in]*/)
{
  return (*this)->set_OrientationType(Result);
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::get_OrientationType(ksOrientationTypeEnum* Result/*[out,retval]*/)
{
  return (*this)->get_OrientationType(Result);
}

template <class T> ksOrientationTypeEnum __fastcall
TCOMILocalCoordinateSystemT<T>::get_OrientationType(void)
{
  ksOrientationTypeEnum Result;
  OLECHECK(this->get_OrientationType((ksOrientationTypeEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ReadFromFile(FileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemT<T>::ReadFromFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ReadFromFile(FileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->WriteToFile(FileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemT<T>::WriteToFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->WriteToFile(FileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::SetStartingOrientation(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetStartingOrientation(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemT<T>::SetStartingOrientation(void)
{
  TOLEBOOL Result;
  OLECHECK(this->SetStartingOrientation((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                          double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetVector(Axis, X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemT<T>::GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                          double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetVector(Axis, X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::get_LocalCSParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_LocalCSParameters(Result);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMILocalCoordinateSystemT<T>::get_LocalCSParameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  OLECHECK(this->get_LocalCSParameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::set_Current(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Current(Result);
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::get_Current(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Current(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemT<T>::get_Current(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Current((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/, 
                                                  Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DefaultObject(Val, Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMILocalCoordinateSystemT<T>::get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_DefaultObject(Val, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemT<T>::InitByMatrix3D(TVariantInParam mtr/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->InitByMatrix3D(mtr, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemT<T>::InitByMatrix3D(TVariantInParam mtr/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->InitByMatrix3D(mtr, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILocalCoordinateSystem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BA6395F5-3506-4483-8864-4EEC220AF316}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/
                                                      , double NewVal/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetDisplacementByAxis"), DISPID(3001));
  TAutoArgs<2> _args;
  _args[1] = (int)Axis /*[VT_USERDEFINED:0]*/;
  _args[2] = NewVal /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::SetDisplacementByAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                      double NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetDisplacementByAxis(Axis, NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_OrientationType(ksOrientationTypeEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OrientationType"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_OrientationType(ksOrientationTypeEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OrientationType"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksOrientationTypeEnum __fastcall
ILocalCoordinateSystemDispT<T>::get_OrientationType(void)
{
  ksOrientationTypeEnum Result;
  this->get_OrientationType((ksOrientationTypeEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadFromFile"), DISPID(3003));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::ReadFromFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  this->ReadFromFile(FileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WriteToFile"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::WriteToFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  this->WriteToFile(FileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::SetStartingOrientation(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetStartingOrientation"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::SetStartingOrientation(void)
{
  TOLEBOOL Result;
  this->SetStartingOrientation((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                          double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetVector"), DISPID(3006));
  TAutoArgs<4> _args;
  _args[1] = (int)Axis /*[VT_USERDEFINED:0]*/;
  _args[2] = X /*[VT_R8:1]*/;
  _args[3] = Y /*[VT_R8:1]*/;
  _args[4] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::GetVector(ksObj3dTypeEnum Axis/*[in]*/, 
                                          double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetVector(Axis, X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_LocalCSParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LocalCSParameters"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILocalCoordinateSystemDispT<T>::get_LocalCSParameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_LocalCSParameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_Current(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(3008));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Current(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::get_Current(void)
{
  TOLEBOOL Result;
  this->get_Current((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/
                                                  , 
                                                  Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultObject"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILocalCoordinateSystemDispT<T>::get_DefaultObject(ksObj3dTypeEnum Val/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_DefaultObject(Val, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::InitByMatrix3D(TVariantInParam mtr/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InitByMatrix3D"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = mtr /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::InitByMatrix3D(TVariantInParam mtr/*[in]*/)
{
  TOLEBOOL Result;
  this->InitByMatrix3D(mtr, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILocalCoordinateSystemDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILocalCoordinateSystemDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_Z(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Z(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILocalCoordinateSystemDispT<T>::get_Z(void)
{
  double PVal;
  this->get_Z((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/
                                                     , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAssociationObject"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAssociationObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILocalCoordinateSystemDispT<T>::get_AssociationObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_AssociationObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAnnotationSymbolEnum __fastcall
ILocalCoordinateSystemDispT<T>::get_Symbol(void)
{
  ksAnnotationSymbolEnum PVal;
  this->get_Symbol((ksAnnotationSymbolEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPoint3DTypeEnum __fastcall
ILocalCoordinateSystemDispT<T>::get_ParameterType(void)
{
  ksPoint3DTypeEnum PVal;
  this->get_ParameterType((ksPoint3DTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parameters"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILocalCoordinateSystemDispT<T>::get_Parameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_Parameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILocalCoordinateSystemDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ILocalCoordinateSystemDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ILocalCoordinateSystemDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ILocalCoordinateSystemDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILocalCoordinateSystemDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILocalCoordinateSystemDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILocalCoordinateSystemDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILocalCoordinateSystemDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISelectionManager
// Interface: ISelectionManager
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISelectionManagerT<T>::Select(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Select(Objects, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISelectionManagerT<T>::Select(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Select(Objects, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISelectionManagerT<T>::Unselect(TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Unselect(Objects, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISelectionManagerT<T>::Unselect(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Unselect(Objects, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISelectionManagerT<T>::UnselectAll(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->UnselectAll(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISelectionManagerT<T>::UnselectAll(void)
{
  TOLEBOOL Result;
  OLECHECK(this->UnselectAll((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISelectionManagerT<T>::IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->IsSelected(Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISelectionManagerT<T>::IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->IsSelected(Object, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISelectionManagerT<T>::get_SelectedObjects(TVariant* Objects/*[out,retval]*/)
{
  return (*this)->get_SelectedObjects(Objects);
}

template <class T> TVariant __fastcall
TCOMISelectionManagerT<T>::get_SelectedObjects(void)
{
  TVariant Objects;
  OLECHECK(this->get_SelectedObjects((TVariant*)&Objects));
  return Objects;
}

// *********************************************************************//
// DispIntf:  ISelectionManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E6DF688C-5B23-436B-A027-A96BFD5484CC}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::Select(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Select"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISelectionManagerDispT<T>::Select(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->Select(Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::Unselect(TVariantInParam Objects/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Unselect"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISelectionManagerDispT<T>::Unselect(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->Unselect(Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::UnselectAll(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnselectAll"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISelectionManagerDispT<T>::UnselectAll(void)
{
  TOLEBOOL Result;
  this->UnselectAll((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsSelected"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasAPIObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISelectionManagerDispT<T>::IsSelected(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->IsSelected(Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::get_SelectedObjects(TVariant* Objects/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectedObjects"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Objects /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISelectionManagerDispT<T>::get_SelectedObjects(void)
{
  TVariant Objects;
  this->get_SelectedObjects((TVariant*)&Objects);
  return Objects;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISelectionManagerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISelectionManagerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISelectionManagerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISelectionManagerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISelectionManagerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIChooseManager
// Interface: IChooseManager
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIChooseManagerT<T>::Choose(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Choose(Objects, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIChooseManagerT<T>::Choose(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Choose(Objects, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIChooseManagerT<T>::Unchoose(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Unchoose(Objects, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIChooseManagerT<T>::Unchoose(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Unchoose(Objects, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIChooseManagerT<T>::UnchooseAll(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->UnchooseAll(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIChooseManagerT<T>::UnchooseAll(void)
{
  TOLEBOOL Result;
  OLECHECK(this->UnchooseAll((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIChooseManagerT<T>::IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->IsChoosen(Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIChooseManagerT<T>::IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->IsChoosen(Object, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIChooseManagerT<T>::get_ChoosenObjects(TVariant* Objects/*[out,retval]*/)
{
  return (*this)->get_ChoosenObjects(Objects);
}

template <class T> TVariant __fastcall
TCOMIChooseManagerT<T>::get_ChoosenObjects(void)
{
  TVariant Objects;
  OLECHECK(this->get_ChoosenObjects((TVariant*)&Objects));
  return Objects;
}

// *********************************************************************//
// DispIntf:  IChooseManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E2D9EAA6-F88C-4ADB-AC32-854E32E9FEE1}
// *********************************************************************//
template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::Choose(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Choose"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IChooseManagerDispT<T>::Choose(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->Choose(Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::Unchoose(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Unchoose"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IChooseManagerDispT<T>::Unchoose(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->Unchoose(Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::UnchooseAll(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnchooseAll"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IChooseManagerDispT<T>::UnchooseAll(void)
{
  TOLEBOOL Result;
  this->UnchooseAll((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsChoosen"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasAPIObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IChooseManagerDispT<T>::IsChoosen(Kompasltapi7_tlb::IKompasAPIObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->IsChoosen(Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::get_ChoosenObjects(TVariant* Objects/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChoosenObjects"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Objects /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IChooseManagerDispT<T>::get_ChoosenObjects(void)
{
  TVariant Objects;
  this->get_ChoosenObjects((TVariant*)&Objects);
  return Objects;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IChooseManagerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IChooseManagerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IChooseManagerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IChooseManagerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IChooseManagerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAttribute
// Interface: IAttribute
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::set_Objects(TVariantInParam Result/*[in]*/)
{
  return (*this)->set_Objects(Result);
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_Objects(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_Objects(Result);
}

template <class T> TVariant __fastcall
TCOMIAttributeT<T>::get_Objects(void)
{
  TVariant Result;
  OLECHECK(this->get_Objects((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                              TVariant* Value/*[out,retval]*/)
{
  return (*this)->get_Value(RowNumb, ColumnNumb, Value);
}

template <class T> TVariant __fastcall
TCOMIAttributeT<T>::get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/)
{
  TVariant Value;
  OLECHECK(this->get_Value(RowNumb, ColumnNumb, (TVariant*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                             TVariantInParam Value/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetValue(Password, RowNumb, ColumnNumb, Value, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                             TVariantInParam Value/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetValue(Password, RowNumb, ColumnNumb, Value, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_Values(TVariant* Values/*[out,retval]*/)
{
  return (*this)->get_Values(Values);
}

template <class T> TVariant __fastcall
TCOMIAttributeT<T>::get_Values(void)
{
  TVariant Values;
  OLECHECK(this->get_Values((TVariant*)&Values));
  return Values;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                              TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetValues(Password, Values, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetValues(Password, Values, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_FlagVisible(TVariant* Values/*[out,retval]*/)
{
  return (*this)->get_FlagVisible(Values);
}

template <class T> TVariant __fastcall
TCOMIAttributeT<T>::get_FlagVisible(void)
{
  TVariant Values;
  OLECHECK(this->get_FlagVisible((TVariant*)&Values));
  return Values;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                                   TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetFlagVisible(Password, Values, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetFlagVisible(Password, Values, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_ColumnKey(TVariant* Values/*[out,retval]*/)
{
  return (*this)->get_ColumnKey(Values);
}

template <class T> TVariant __fastcall
TCOMIAttributeT<T>::get_ColumnKey(void)
{
  TVariant Values;
  OLECHECK(this->get_ColumnKey((TVariant*)&Values));
  return Values;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/, 
                                 TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetColumnKey(Password, Keys, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetColumnKey(Password, Keys, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPassword(OldPassword, NewPassword, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPassword(OldPassword, NewPassword, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                           TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddRow(Password, RowNumb, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddRow(Password, RowNumb, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteRow(Password, RowNumb, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteRow(Password, RowNumb, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                long* Key4/*[out]*/, double* Numb/*[out]*/, 
                                TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetKeysInfo(Key1, Key2, Key3, Key4, Numb, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                long* Key4/*[out]*/, double* Numb/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetKeysInfo(Key1, Key2, Key3, Key4, Numb, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                long Key3/*[in]*/, long Key4/*[in]*/, 
                                TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetKeysInfo(Password, Key1, Key2, Key3, Key4, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                long Key3/*[in]*/, long Key4/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetKeysInfo(Password, Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_AttributeType(Kompasltapi7_tlb::IAttributeTypePtr* Result/*[out,retval]*/)
{
  return (*this)->get_AttributeType(Result);
}

template <class T> Kompasltapi7_tlb::IAttributeTypePtr __fastcall
TCOMIAttributeT<T>::get_AttributeType(void)
{
  Kompasltapi7_tlb::IAttributeTypePtr Result;
  OLECHECK(this->get_AttributeType((Kompasltapi7_tlb::IAttributeTypePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_RowsCount(long* Val/*[out,retval]*/)
{
  return (*this)->get_RowsCount(Val);
}

template <class T> long __fastcall
TCOMIAttributeT<T>::get_RowsCount(void)
{
  long Val;
  OLECHECK(this->get_RowsCount((long*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_ColumnsCount(long* Val/*[out,retval]*/)
{
  return (*this)->get_ColumnsCount(Val);
}

template <class T> long __fastcall
TCOMIAttributeT<T>::get_ColumnsCount(void)
{
  long Val;
  OLECHECK(this->get_ColumnsCount((long*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/, 
                           TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(Password, Objects, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete(Password, Objects, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                             TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->ViewEdit(Parent, Password, ReadOnly, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                             TOLEBOOL ReadOnly/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->ViewEdit(Parent, Password, ReadOnly, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::get_RecordFlagVisible(long ColumnNumb/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_RecordFlagVisible(ColumnNumb, Result);
}

template <class T> TVariant __fastcall
TCOMIAttributeT<T>::get_RecordFlagVisible(long ColumnNumb/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->get_RecordFlagVisible(ColumnNumb, (TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeT<T>::SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                         TVariantInParam Values/*[in]*/, 
                                         TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetRecordFlagVisible(Password, ColumnNumb, Values, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeT<T>::SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                         TVariantInParam Values/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetRecordFlagVisible(Password, ColumnNumb, Values, (TOLEBOOL*)&Res));
  return Res;
}

// *********************************************************************//
// DispIntf:  IAttribute
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {94F965B0-5ABB-4994-98C7-B08FA8515452}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAttributeDispT<T>::set_Objects(TVariantInParam Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Objects"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_Objects(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Objects"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAttributeDispT<T>::get_Objects(void)
{
  TVariant Result;
  this->get_Objects((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                              TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = RowNumb /*[VT_I4:0]*/;
  _args[2] = ColumnNumb /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAttributeDispT<T>::get_Value(long RowNumb/*[in]*/, long ColumnNumb/*[in]*/)
{
  TVariant Value;
  this->get_Value(RowNumb, ColumnNumb, (TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                             TVariantInParam Value/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetValue"), DISPID(3));
  TAutoArgs<4> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = RowNumb /*[VT_I4:0]*/;
  _args[3] = ColumnNumb /*[VT_I4:0]*/;
  _args[4] = Value /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::SetValue(BSTR Password/*[in]*/, long RowNumb/*[in]*/, long ColumnNumb/*[in]*/, 
                             TVariantInParam Value/*[in]*/)
{
  TOLEBOOL Res;
  this->SetValue(Password, RowNumb, ColumnNumb, Value, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_Values(TVariant* Values/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Values"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Values /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAttributeDispT<T>::get_Values(void)
{
  TVariant Values;
  this->get_Values((TVariant*)&Values);
  return Values;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                              TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetValues"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = Values /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::SetValues(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/)
{
  TOLEBOOL Res;
  this->SetValues(Password, Values, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_FlagVisible(TVariant* Values/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FlagVisible"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Values /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAttributeDispT<T>::get_FlagVisible(void)
{
  TVariant Values;
  this->get_FlagVisible((TVariant*)&Values);
  return Values;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/, 
                                   TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetFlagVisible"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = Values /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::SetFlagVisible(BSTR Password/*[in]*/, TVariantInParam Values/*[in]*/)
{
  TOLEBOOL Res;
  this->SetFlagVisible(Password, Values, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_ColumnKey(TVariant* Values/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnKey"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Values /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAttributeDispT<T>::get_ColumnKey(void)
{
  TVariant Values;
  this->get_ColumnKey((TVariant*)&Values);
  return Values;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/, 
                                 TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetColumnKey"), DISPID(9));
  TAutoArgs<2> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = Keys /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::SetColumnKey(BSTR Password/*[in]*/, TVariantInParam Keys/*[in]*/)
{
  TOLEBOOL Res;
  this->SetColumnKey(Password, Keys, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPassword"), DISPID(10));
  TAutoArgs<2> _args;
  _args[1] = OldPassword /*[VT_BSTR:0]*/;
  _args[2] = NewPassword /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPassword(OldPassword, NewPassword, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddRow"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = RowNumb /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::AddRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/)
{
  TOLEBOOL Result;
  this->AddRow(Password, RowNumb, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteRow"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = RowNumb /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::DeleteRow(BSTR Password/*[in]*/, long RowNumb/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteRow(Password, RowNumb, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                long* Key4/*[out]*/, double* Numb/*[out]*/, 
                                TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetKeysInfo"), DISPID(13));
  TAutoArgs<5> _args;
  _args[1] = Key1 /*[VT_I4:1]*/;
  _args[2] = Key2 /*[VT_I4:1]*/;
  _args[3] = Key3 /*[VT_I4:1]*/;
  _args[4] = Key4 /*[VT_I4:1]*/;
  _args[5] = Numb /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                long* Key4/*[out]*/, double* Numb/*[out]*/)
{
  TOLEBOOL Result;
  this->GetKeysInfo(Key1, Key2, Key3, Key4, Numb, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                long Key3/*[in]*/, long Key4/*[in]*/, 
                                TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetKeysInfo"), DISPID(14));
  TAutoArgs<5> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = Key1 /*[VT_I4:0]*/;
  _args[3] = Key2 /*[VT_I4:0]*/;
  _args[4] = Key3 /*[VT_I4:0]*/;
  _args[5] = Key4 /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::SetKeysInfo(BSTR Password/*[in]*/, long Key1/*[in]*/, long Key2/*[in]*/, 
                                long Key3/*[in]*/, long Key4/*[in]*/)
{
  TOLEBOOL Result;
  this->SetKeysInfo(Password, Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_AttributeType(Kompasltapi7_tlb::IAttributeTypePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeType"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttributeType**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributeTypePtr __fastcall
IAttributeDispT<T>::get_AttributeType(void)
{
  Kompasltapi7_tlb::IAttributeTypePtr Result;
  this->get_AttributeType((Kompasltapi7_tlb::IAttributeTypePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_RowsCount(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowsCount"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttributeDispT<T>::get_RowsCount(void)
{
  long Val;
  this->get_RowsCount((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_ColumnsCount(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnsCount"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttributeDispT<T>::get_ColumnsCount(void)
{
  long Val;
  this->get_ColumnsCount((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/, 
                           TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(18));
  TAutoArgs<2> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::Delete(BSTR Password/*[in]*/, TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL PRes;
  this->Delete(Password, Objects, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                             TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewEdit"), DISPID(19));
  TAutoArgs<3> _args;
  _args[1] = Parent /*[VT_INT:0]*/;
  _args[2] = Password /*[VT_BSTR:0]*/;
  _args[3] = ReadOnly /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                             TOLEBOOL ReadOnly/*[in]*/)
{
  TOLEBOOL Res;
  this->ViewEdit(Parent, Password, ReadOnly, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_RecordFlagVisible(long ColumnNumb/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RecordFlagVisible"), DISPID(20));
  TAutoArgs<1> _args;
  _args[1] = ColumnNumb /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAttributeDispT<T>::get_RecordFlagVisible(long ColumnNumb/*[in]*/)
{
  TVariant Result;
  this->get_RecordFlagVisible(ColumnNumb, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                         TVariantInParam Values/*[in]*/, 
                                         TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetRecordFlagVisible"), DISPID(21));
  TAutoArgs<3> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  _args[2] = ColumnNumb /*[VT_I4:0]*/;
  _args[3] = Values /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeDispT<T>::SetRecordFlagVisible(BSTR Password/*[in]*/, long ColumnNumb/*[in]*/, 
                                         TVariantInParam Values/*[in]*/)
{
  TOLEBOOL Res;
  this->SetRecordFlagVisible(Password, ColumnNumb, Values, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAttributeDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAttributeDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAttributeDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAttributeDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttributeDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAttributeType
// Interface: IAttributeType
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::set_TypeName(BSTR PVal/*[in]*/)
{
  return (*this)->set_TypeName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::get_TypeName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_TypeName(PVal);
}

template <class T> BSTR __fastcall
TCOMIAttributeTypeT<T>::get_TypeName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_TypeName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::set_AttrType(ksAttributeTypeEnum PVal/*[in]*/)
{
  return (*this)->set_AttrType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::get_AttrType(ksAttributeTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_AttrType(PVal);
}

template <class T> ksAttributeTypeEnum __fastcall
TCOMIAttributeTypeT<T>::get_AttrType(void)
{
  ksAttributeTypeEnum PVal;
  OLECHECK(this->get_AttrType((ksAttributeTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                    long* Key4/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetKeysInfo(Key1, Key2, Key3, Key4, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeTypeT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                    long* Key4/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetKeysInfo(Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                    long Key4/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetKeysInfo(Key1, Key2, Key3, Key4, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeTypeT<T>::SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                    long Key4/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetKeysInfo(Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::get_UniqueNumb(double* PVal/*[out,retval]*/)
{
  return (*this)->get_UniqueNumb(PVal);
}

template <class T> double __fastcall
TCOMIAttributeTypeT<T>::get_UniqueNumb(void)
{
  double PVal;
  OLECHECK(this->get_UniqueNumb((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPassword(OldPassword, NewPassword, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeTypeT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPassword(OldPassword, NewPassword, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::get_ColumnInfo(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ColumnInfo(Index, Result);
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
TCOMIAttributeTypeT<T>::get_ColumnInfo(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  OLECHECK(this->get_ColumnInfo(Index, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::AddColumn(long Index/*[in]*/, ksValueTypeEnum Type, 
                                  BSTR Name, 
                                  Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  return (*this)->AddColumn(Index, Type, Name, Result);
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
TCOMIAttributeTypeT<T>::AddColumn(long Index/*[in]*/, ksValueTypeEnum Type, 
                                  BSTR Name)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  OLECHECK(this->AddColumn(Index, Type, Name, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::_Update(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(Password, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeTypeT<T>::_Update(BSTR Password/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update(Password, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::Delete(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(Password, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeTypeT<T>::Delete(BSTR Password/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete(Password, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                 TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->ViewEdit(Parent, Password, ReadOnly, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIAttributeTypeT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                 TOLEBOOL ReadOnly/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->ViewEdit(Parent, Password, ReadOnly, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::set_RowsCount(long Count/*[in]*/)
{
  return (*this)->set_RowsCount(Count);
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::get_RowsCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_RowsCount(Count);
}

template <class T> long __fastcall
TCOMIAttributeTypeT<T>::get_RowsCount(void)
{
  long Count;
  OLECHECK(this->get_RowsCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIAttributeTypeT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIAttributeTypeT<T>::get_FileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FileName((BSTR*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAttributeType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {414CF83E-4FA3-42AB-BC26-6C6BBF91BB0F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::set_TypeName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TypeName"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_TypeName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TypeName"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAttributeTypeDispT<T>::get_TypeName(void)
{
  BSTR PVal;
  this->get_TypeName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::set_AttrType(ksAttributeTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttrType"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_AttrType(ksAttributeTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttrType"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAttributeTypeEnum __fastcall
IAttributeTypeDispT<T>::get_AttrType(void)
{
  ksAttributeTypeEnum PVal;
  this->get_AttrType((ksAttributeTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                    long* Key4/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetKeysInfo"), DISPID(3));
  TAutoArgs<4> _args;
  _args[1] = Key1 /*[VT_I4:1]*/;
  _args[2] = Key2 /*[VT_I4:1]*/;
  _args[3] = Key3 /*[VT_I4:1]*/;
  _args[4] = Key4 /*[VT_I4:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeTypeDispT<T>::GetKeysInfo(long* Key1/*[out]*/, long* Key2/*[out]*/, long* Key3/*[out]*/, 
                                    long* Key4/*[out]*/)
{
  TOLEBOOL Result;
  this->GetKeysInfo(Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                    long Key4/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetKeysInfo"), DISPID(4));
  TAutoArgs<4> _args;
  _args[1] = Key1 /*[VT_I4:0]*/;
  _args[2] = Key2 /*[VT_I4:0]*/;
  _args[3] = Key3 /*[VT_I4:0]*/;
  _args[4] = Key4 /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeTypeDispT<T>::SetKeysInfo(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                    long Key4/*[in]*/)
{
  TOLEBOOL Result;
  this->SetKeysInfo(Key1, Key2, Key3, Key4, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_UniqueNumb(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UniqueNumb"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAttributeTypeDispT<T>::get_UniqueNumb(void)
{
  double PVal;
  this->get_UniqueNumb((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPassword"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = OldPassword /*[VT_BSTR:0]*/;
  _args[2] = NewPassword /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeTypeDispT<T>::SetPassword(BSTR OldPassword/*[in]*/, BSTR NewPassword/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPassword(OldPassword, NewPassword, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_ColumnInfo(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnInfo"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IColumnInfo**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
IAttributeTypeDispT<T>::get_ColumnInfo(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  this->get_ColumnInfo(Index, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::AddColumn(long Index/*[in]*/, ksValueTypeEnum Type, 
                                  BSTR Name, 
                                  Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddColumn"), DISPID(8));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[3] = Name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IColumnInfo**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
IAttributeTypeDispT<T>::AddColumn(long Index/*[in]*/, ksValueTypeEnum Type, 
                                  BSTR Name)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  this->AddColumn(Index, Type, Name, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::_Update(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeTypeDispT<T>::_Update(BSTR Password/*[in]*/)
{
  TOLEBOOL PRes;
  this->_Update(Password, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::Delete(BSTR Password/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Password /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeTypeDispT<T>::Delete(BSTR Password/*[in]*/)
{
  TOLEBOOL PRes;
  this->Delete(Password, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                 TOLEBOOL ReadOnly/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewEdit"), DISPID(11));
  TAutoArgs<3> _args;
  _args[1] = Parent /*[VT_INT:0]*/;
  _args[2] = Password /*[VT_BSTR:0]*/;
  _args[3] = ReadOnly /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAttributeTypeDispT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, BSTR Password/*[in]*/, 
                                 TOLEBOOL ReadOnly/*[in]*/)
{
  TOLEBOOL Res;
  this->ViewEdit(Parent, Password, ReadOnly, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::set_RowsCount(long Count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowsCount"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Count /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_RowsCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowsCount"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttributeTypeDispT<T>::get_RowsCount(void)
{
  long Count;
  this->get_RowsCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAttributeTypeDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAttributeTypeDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAttributeTypeDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAttributeTypeDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAttributeTypeDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAttributeTypeDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIColumnInfo
// Interface: IColumnInfo
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::set_Caption(BSTR PVal/*[in]*/)
{
  return (*this)->set_Caption(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Caption(PVal);
}

template <class T> BSTR __fastcall
TCOMIColumnInfoT<T>::get_Caption(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Caption((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::set_ColType(ksValueTypeEnum PVal/*[in]*/)
{
  return (*this)->set_ColType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_ColType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ColType(PVal);
}

template <class T> ksValueTypeEnum __fastcall
TCOMIColumnInfoT<T>::get_ColType(void)
{
  ksValueTypeEnum PVal;
  OLECHECK(this->get_ColType((ksValueTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::set_Key(long PVal/*[in]*/)
{
  return (*this)->set_Key(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_Key(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Key(PVal);
}

template <class T> long __fastcall
TCOMIColumnInfoT<T>::get_Key(void)
{
  long PVal;
  OLECHECK(this->get_Key((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::set_DefValue(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_DefValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_DefValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_DefValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIColumnInfoT<T>::get_DefValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_DefValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::set_ListValue(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ListValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_ListValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ListValue(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIColumnInfoT<T>::get_ListValue(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ListValue((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::set_SortListValue(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SortListValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_SortListValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SortListValue(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIColumnInfoT<T>::get_SortListValue(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SortListValue((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::set_Range(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Range(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_Range(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Range(PVal);
}

template <class T> TVariant __fastcall
TCOMIColumnInfoT<T>::get_Range(void)
{
  TVariant PVal;
  OLECHECK(this->get_Range((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::get_RecordColumnInfo(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  return (*this)->get_RecordColumnInfo(Index, Result);
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
TCOMIColumnInfoT<T>::get_RecordColumnInfo(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  OLECHECK(this->get_RecordColumnInfo(Index, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::AddRecordColumn(long Index/*[in]*/, 
                                     ksValueTypeEnum Type/*[in]*/, 
                                     BSTR Name/*[in]*/, 
                                     Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  return (*this)->AddRecordColumn(Index, Type, Name, Result);
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
TCOMIColumnInfoT<T>::AddRecordColumn(long Index/*[in]*/, 
                                     ksValueTypeEnum Type/*[in]*/, 
                                     BSTR Name/*[in]*/)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  OLECHECK(this->AddRecordColumn(Index, Type, Name, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColumnInfoT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIColumnInfoT<T>::Delete(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete((TOLEBOOL*)&PRes));
  return PRes;
}

// *********************************************************************//
// DispIntf:  IColumnInfo
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3FDE0F44-4459-49F3-A012-E64F9BFA454D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::set_Caption(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_Caption(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Caption"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IColumnInfoDispT<T>::get_Caption(void)
{
  BSTR PVal;
  this->get_Caption((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::set_ColType(ksValueTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColType"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_ColType(ksValueTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColType"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksValueTypeEnum __fastcall
IColumnInfoDispT<T>::get_ColType(void)
{
  ksValueTypeEnum PVal;
  this->get_ColType((ksValueTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::set_Key(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Key"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_Key(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Key"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColumnInfoDispT<T>::get_Key(void)
{
  long PVal;
  this->get_Key((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::set_DefValue(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefValue"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_DefValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefValue"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IColumnInfoDispT<T>::get_DefValue(void)
{
  TVariant PVal;
  this->get_DefValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::set_ListValue(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ListValue"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_ListValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ListValue"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColumnInfoDispT<T>::get_ListValue(void)
{
  TOLEBOOL PVal;
  this->get_ListValue((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::set_SortListValue(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortListValue"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_SortListValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SortListValue"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColumnInfoDispT<T>::get_SortListValue(void)
{
  TOLEBOOL PVal;
  this->get_SortListValue((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::set_Range(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Range"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_Range(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Range"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IColumnInfoDispT<T>::get_Range(void)
{
  TVariant PVal;
  this->get_Range((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_RecordColumnInfo(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RecordColumnInfo"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IColumnInfo**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
IColumnInfoDispT<T>::get_RecordColumnInfo(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  this->get_RecordColumnInfo(Index, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::AddRecordColumn(long Index/*[in]*/, 
                                     ksValueTypeEnum Type/*[in]*/, 
                                     BSTR Name/*[in]*/, 
                                     Kompasltapi7_tlb::IColumnInfoPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddRecordColumn"), DISPID(9));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[3] = Name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IColumnInfo**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IColumnInfoPtr __fastcall
IColumnInfoDispT<T>::AddRecordColumn(long Index/*[in]*/, 
                                     ksValueTypeEnum Type/*[in]*/, 
                                     BSTR Name/*[in]*/)
{
  Kompasltapi7_tlb::IColumnInfoPtr Result;
  this->AddRecordColumn(Index, Type, Name, (Kompasltapi7_tlb::IColumnInfoPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColumnInfoDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IColumnInfoDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IColumnInfoDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IColumnInfoDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IColumnInfoDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColumnInfoDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDrawingObject1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {649F0EB2-EBC0-449B-8B61-DC3CF1953BF9}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::get_Constraints(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Constraints"), DISPID(6001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IDrawingObject1DispT<T>::get_Constraints(void)
{
  TVariant Result;
  this->get_Constraints((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::NewConstraint(Kompasltapi7_tlb::IParametriticConstraintPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NewConstraint"), DISPID(6002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IParametriticConstraint**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IParametriticConstraintPtr __fastcall
IDrawingObject1DispT<T>::NewConstraint(void)
{
  Kompasltapi7_tlb::IParametriticConstraintPtr Result;
  this->NewConstraint((Kompasltapi7_tlb::IParametriticConstraintPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::Associate(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Associate"), DISPID(6003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObject1DispT<T>::Associate(void)
{
  TOLEBOOL Result;
  this->Associate((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::DeleteConstraints(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteConstraints"), DISPID(6004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObject1DispT<T>::DeleteConstraints(void)
{
  TOLEBOOL Result;
  this->DeleteConstraints((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::get_TransparentBackground(TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TransparentBackground"), DISPID(6005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObject1DispT<T>::get_TransparentBackground(void)
{
  TOLEBOOL Value;
  this->get_TransparentBackground((TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::set_TransparentBackground(TOLEBOOL Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TransparentBackground"), DISPID(6005));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::get_AutoTransparentBackground(TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoTransparentBackground"), DISPID(6006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObject1DispT<T>::get_AutoTransparentBackground(void)
{
  TOLEBOOL Value;
  this->get_AutoTransparentBackground((TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::set_AutoTransparentBackground(TOLEBOOL Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoTransparentBackground"), DISPID(6006));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::get_IsGeometryObject(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsGeometryObject"), DISPID(6007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObject1DispT<T>::get_IsGeometryObject(void)
{
  TOLEBOOL Result;
  this->get_IsGeometryObject((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::get_IsAnnotativeObject(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsAnnotativeObject"), DISPID(6008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObject1DispT<T>::get_IsAnnotativeObject(void)
{
  TOLEBOOL Result;
  this->get_IsAnnotativeObject((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingObject1DispT<T>::get_IsCurve(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsCurve"), DISPID(6009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingObject1DispT<T>::get_IsCurve(void)
{
  TOLEBOOL Result;
  this->get_IsCurve((TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMIParametriticConstraint
// Interface: IParametriticConstraint
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_ConstraintType(ksConstraintTypeEnum PVal/*[in]*/)
{
  return (*this)->set_ConstraintType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_ConstraintType(ksConstraintTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ConstraintType(PVal);
}

template <class T> ksConstraintTypeEnum __fastcall
TCOMIParametriticConstraintT<T>::get_ConstraintType(void)
{
  ksConstraintTypeEnum PVal;
  OLECHECK(this->get_ConstraintType((ksConstraintTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Index(long PVal/*[in]*/)
{
  return (*this)->set_Index(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Index(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Index(PVal);
}

template <class T> long __fastcall
TCOMIParametriticConstraintT<T>::get_Index(void)
{
  long PVal;
  OLECHECK(this->get_Index((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Partner(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Partner(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Partner(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Partner(PVal);
}

template <class T> TVariant __fastcall
TCOMIParametriticConstraintT<T>::get_Partner(void)
{
  TVariant PVal;
  OLECHECK(this->get_Partner((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_PartnerIndex(long PVal/*[in]*/)
{
  return (*this)->set_PartnerIndex(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_PartnerIndex(long* PVal/*[out,retval]*/)
{
  return (*this)->get_PartnerIndex(PVal);
}

template <class T> long __fastcall
TCOMIParametriticConstraintT<T>::get_PartnerIndex(void)
{
  long PVal;
  OLECHECK(this->get_PartnerIndex((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Value(double PVal/*[in]*/)
{
  return (*this)->set_Value(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Value(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Value(PVal);
}

template <class T> double __fastcall
TCOMIParametriticConstraintT<T>::get_Value(void)
{
  double PVal;
  OLECHECK(this->get_Value((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Expression(BSTR PVal/*[in]*/)
{
  return (*this)->set_Expression(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Expression(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Expression(PVal);
}

template <class T> BSTR __fastcall
TCOMIParametriticConstraintT<T>::get_Expression(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Expression((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  return (*this)->set_Comment(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Comment(PVal);
}

template <class T> BSTR __fastcall
TCOMIParametriticConstraintT<T>::get_Comment(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Comment((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Variable(BSTR PVal/*[in]*/)
{
  return (*this)->set_Variable(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Variable(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Variable(PVal);
}

template <class T> BSTR __fastcall
TCOMIParametriticConstraintT<T>::get_Variable(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Variable((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Degrees(long PVal/*[in]*/)
{
  return (*this)->set_Degrees(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Degrees(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Degrees(PVal);
}

template <class T> long __fastcall
TCOMIParametriticConstraintT<T>::get_Degrees(void)
{
  long PVal;
  OLECHECK(this->get_Degrees((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Minutes(long PVal/*[in]*/)
{
  return (*this)->set_Minutes(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Minutes(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Minutes(PVal);
}

template <class T> long __fastcall
TCOMIParametriticConstraintT<T>::get_Minutes(void)
{
  long PVal;
  OLECHECK(this->get_Minutes((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Seconds(double PVal/*[in]*/)
{
  return (*this)->set_Seconds(PVal);
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Seconds(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Seconds(PVal);
}

template <class T> double __fastcall
TCOMIParametriticConstraintT<T>::get_Seconds(void)
{
  double PVal;
  OLECHECK(this->get_Seconds((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Delete(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIParametriticConstraintT<T>::Delete(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Delete((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::Create(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Create(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIParametriticConstraintT<T>::Create(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->Create((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Valid(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIParametriticConstraintT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Valid((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::get_Axis(Kompasltapi7_tlb::IDrawingObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Axis(PVal);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIParametriticConstraintT<T>::get_Axis(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr PVal;
  OLECHECK(this->get_Axis((Kompasltapi7_tlb::IDrawingObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIParametriticConstraintT<T>::set_Axis(Kompasltapi7_tlb::IDrawingObjectPtr PVal/*[in]*/)
{
  return (*this)->set_Axis(PVal);
}

// *********************************************************************//
// DispIntf:  IParametriticConstraint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {131069F4-A4E2-4DB4-A559-85EACCC74CE4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_ConstraintType(ksConstraintTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConstraintType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_ConstraintType(ksConstraintTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConstraintType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksConstraintTypeEnum __fastcall
IParametriticConstraintDispT<T>::get_ConstraintType(void)
{
  ksConstraintTypeEnum PVal;
  this->get_ConstraintType((ksConstraintTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Index(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Index(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IParametriticConstraintDispT<T>::get_Index(void)
{
  long PVal;
  this->get_Index((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Partner(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Partner"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Partner(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Partner"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IParametriticConstraintDispT<T>::get_Partner(void)
{
  TVariant PVal;
  this->get_Partner((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_PartnerIndex(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PartnerIndex"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_PartnerIndex(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PartnerIndex"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IParametriticConstraintDispT<T>::get_PartnerIndex(void)
{
  long PVal;
  this->get_PartnerIndex((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Value(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Value(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IParametriticConstraintDispT<T>::get_Value(void)
{
  double PVal;
  this->get_Value((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Expression(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Expression"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Expression(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Expression"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IParametriticConstraintDispT<T>::get_Expression(void)
{
  BSTR PVal;
  this->get_Expression((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IParametriticConstraintDispT<T>::get_Comment(void)
{
  BSTR PVal;
  this->get_Comment((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Variable(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variable"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Variable(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variable"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IParametriticConstraintDispT<T>::get_Variable(void)
{
  BSTR PVal;
  this->get_Variable((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Degrees(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Degrees"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Degrees(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Degrees"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IParametriticConstraintDispT<T>::get_Degrees(void)
{
  long PVal;
  this->get_Degrees((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Minutes(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Minutes"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Minutes(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Minutes"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IParametriticConstraintDispT<T>::get_Minutes(void)
{
  long PVal;
  this->get_Minutes((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Seconds(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Seconds"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Seconds(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Seconds"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IParametriticConstraintDispT<T>::get_Seconds(void)
{
  double PVal;
  this->get_Seconds((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::Delete(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IParametriticConstraintDispT<T>::Delete(void)
{
  TOLEBOOL PVal;
  this->Delete((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::Create(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Create"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IParametriticConstraintDispT<T>::Create(void)
{
  TOLEBOOL PVal;
  this->Create((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IParametriticConstraintDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Axis(Kompasltapi7_tlb::IDrawingObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Axis"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IParametriticConstraintDispT<T>::get_Axis(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr PVal;
  this->get_Axis((Kompasltapi7_tlb::IDrawingObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::set_Axis(Kompasltapi7_tlb::IDrawingObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Axis"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IParametriticConstraintDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IParametriticConstraintDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IParametriticConstraintDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IParametriticConstraintDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IParametriticConstraintDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IKompasDocument1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {58890FE8-E671-4561-994A-600DD29032E4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasDocument1DispT<T>::Delete(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(10001));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument1DispT<T>::Delete(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->Delete(Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument1DispT<T>::get_Attributes(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                         long Key4/*[in]*/, double Numb/*[in]*/, 
                                         TVariantInParam Objects/*[in]*/, 
                                         TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Attributes"), DISPID(10002));
  TAutoArgs<6> _args;
  _args[1] = Key1 /*[VT_I4:0]*/;
  _args[2] = Key2 /*[VT_I4:0]*/;
  _args[3] = Key3 /*[VT_I4:0]*/;
  _args[4] = Key4 /*[VT_I4:0]*/;
  _args[5] = Numb /*[VT_R8:0]*/;
  _args[6] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IKompasDocument1DispT<T>::get_Attributes(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                         long Key4/*[in]*/, double Numb/*[in]*/, 
                                         TVariantInParam Objects/*[in]*/)
{
  TVariant Result;
  this->get_Attributes(Key1, Key2, Key3, Key4, Numb, Objects, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument1DispT<T>::get_ObjectsByAttr(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/
                                            , long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam ObjectType/*[in]*/, 
                                            TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectsByAttr"), DISPID(10003));
  TAutoArgs<6> _args;
  _args[1] = Key1 /*[VT_I4:0]*/;
  _args[2] = Key2 /*[VT_I4:0]*/;
  _args[3] = Key3 /*[VT_I4:0]*/;
  _args[4] = Key4 /*[VT_I4:0]*/;
  _args[5] = Numb /*[VT_R8:0]*/;
  _args[6] = ObjectType /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IKompasDocument1DispT<T>::get_ObjectsByAttr(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                            long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam ObjectType/*[in]*/)
{
  TVariant Result;
  this->get_ObjectsByAttr(Key1, Key2, Key3, Key4, Numb, ObjectType, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument1DispT<T>::CreateAttr(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                     TVariantInParam Objects/*[in]*/, 
                                     Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateAttr"), DISPID(10004));
  TAutoArgs<3> _args;
  _args[1] = AttrID /*[VT_R8:0]*/;
  _args[2] = Libname /*[VT_BSTR:0]*/;
  _args[3] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttribute**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributePtr __fastcall
IKompasDocument1DispT<T>::CreateAttr(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                     TVariantInParam Objects/*[in]*/)
{
  Kompasltapi7_tlb::IAttributePtr Result;
  this->CreateAttr(AttrID, Libname, Objects, (Kompasltapi7_tlb::IAttributePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument1DispT<T>::ViewEditAttr(OLE_HANDLE HWnd/*[in]*/, TVariantInParam Objects/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewEditAttr"), DISPID(10005));
  TAutoArgs<2> _args;
  _args[1] = HWnd /*[VT_INT:0]*/;
  _args[2] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument1DispT<T>::ViewEditAttr(OLE_HANDLE HWnd/*[in]*/, TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->ViewEditAttr(HWnd, Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument1DispT<T>::GetInterface(KompasAPIObjectTypeEnum Type/*[in]*/, 
                                       Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInterface"), DISPID(10006));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasDocument1DispT<T>::GetInterface(KompasAPIObjectTypeEnum Type/*[in]*/)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->GetInterface(Type, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument1DispT<T>::get_ExternalFilesNames(TOLEBOOL allFiles/*[in]*/, 
                                                 TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExternalFilesNames"), DISPID(10007));
  TAutoArgs<1> _args;
  _args[1] = allFiles /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IKompasDocument1DispT<T>::get_ExternalFilesNames(TOLEBOOL allFiles/*[in]*/)
{
  TVariant Result;
  this->get_ExternalFilesNames(allFiles, (TVariant*)&Result);
  return Result;
}

// *********************************************************************//
// DispIntf:  IKompasDocument2D1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FB57F1C4-44FE-4C73-9B15-87241E8735B5}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_EditMacroObject(Kompasltapi7_tlb::IMacroObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EditMacroObject"), DISPID(11001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMacroObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMacroObjectPtr __fastcall
IKompasDocument2D1DispT<T>::get_EditMacroObject(void)
{
  Kompasltapi7_tlb::IMacroObjectPtr PVal;
  this->get_EditMacroObject((Kompasltapi7_tlb::IMacroObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_DrawingGroups(Kompasltapi7_tlb::IDrawingGroupsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingGroups"), DISPID(11002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingGroups**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingGroupsPtr __fastcall
IKompasDocument2D1DispT<T>::get_DrawingGroups(void)
{
  Kompasltapi7_tlb::IDrawingGroupsPtr PVal;
  this->get_DrawingGroups((Kompasltapi7_tlb::IDrawingGroupsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_NamedGroups(Kompasltapi7_tlb::IDrawingGroupsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NamedGroups"), DISPID(11003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingGroups**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingGroupsPtr __fastcall
IKompasDocument2D1DispT<T>::get_NamedGroups(void)
{
  Kompasltapi7_tlb::IDrawingGroupsPtr PVal;
  this->get_NamedGroups((Kompasltapi7_tlb::IDrawingGroupsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_CurrentGroup(Kompasltapi7_tlb::IDrawingGroupPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentGroup"), DISPID(11004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingGroup**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingGroupPtr __fastcall
IKompasDocument2D1DispT<T>::get_CurrentGroup(void)
{
  Kompasltapi7_tlb::IDrawingGroupPtr PVal;
  this->get_CurrentGroup((Kompasltapi7_tlb::IDrawingGroupPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectionManager"), DISPID(11005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISelectionManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISelectionManagerPtr __fastcall
IKompasDocument2D1DispT<T>::get_SelectionManager(void)
{
  Kompasltapi7_tlb::ISelectionManagerPtr PVal;
  this->get_SelectionManager((Kompasltapi7_tlb::ISelectionManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChooseManager"), DISPID(11006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IChooseManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IChooseManagerPtr __fastcall
IKompasDocument2D1DispT<T>::get_ChooseManager(void)
{
  Kompasltapi7_tlb::IChooseManagerPtr PVal;
  this->get_ChooseManager((Kompasltapi7_tlb::IChooseManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::CopyObjects(TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::ICopyObjectParamPtr params/*[in]*/, 
                                        TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopyObjects"), DISPID(11007));
  TAutoArgs<2> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::ICopyObjectParam*)params /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IKompasDocument2D1DispT<T>::CopyObjects(TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::ICopyObjectParamPtr params/*[in]*/)
{
  TVariant Result;
  this->CopyObjects(Objects, params, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_Variables(TOLEBOOL ExternalOnly/*[in]*/, 
                                          TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variables"), DISPID(11008));
  TAutoArgs<1> _args;
  _args[1] = ExternalOnly /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IKompasDocument2D1DispT<T>::get_Variables(TOLEBOOL ExternalOnly/*[in]*/)
{
  TVariant Result;
  this->get_Variables(ExternalOnly, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_Variable(TOLEBOOL External/*[in]*/, TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variable"), DISPID(11009));
  TAutoArgs<2> _args;
  _args[1] = External /*[VT_BOOL:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariable7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariable7Ptr __fastcall
IKompasDocument2D1DispT<T>::get_Variable(TOLEBOOL External/*[in]*/, TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IVariable7Ptr Result;
  this->get_Variable(External, Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_VariablesCount(TOLEBOOL External/*[in]*/, 
                                               long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VariablesCount"), DISPID(11010));
  TAutoArgs<1> _args;
  _args[1] = External /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IKompasDocument2D1DispT<T>::get_VariablesCount(TOLEBOOL External/*[in]*/)
{
  long Result;
  this->get_VariablesCount(External, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::UpdateVariables(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UpdateVariables"), DISPID(11011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2D1DispT<T>::UpdateVariables(void)
{
  TOLEBOOL Result;
  this->UpdateVariables((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VariableTable"), DISPID(11012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariableTable**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariableTablePtr __fastcall
IKompasDocument2D1DispT<T>::get_VariableTable(void)
{
  Kompasltapi7_tlb::IVariableTablePtr Result;
  this->get_VariableTable((Kompasltapi7_tlb::IVariableTablePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::IsVariableNameValid(BSTR Name, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsVariableNameValid"), DISPID(11013));
  TAutoArgs<1> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2D1DispT<T>::IsVariableNameValid(BSTR Name)
{
  TOLEBOOL Result;
  this->IsVariableNameValid(Name, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::AddVariable(BSTR Name/*[in]*/, double Value/*[in]*/, BSTR Note/*[in]*/, 
                                        Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddVariable"), DISPID(11014));
  TAutoArgs<3> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Value /*[VT_R8:0]*/;
  _args[3] = Note /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariable7**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariable7Ptr __fastcall
IKompasDocument2D1DispT<T>::AddVariable(BSTR Name/*[in]*/, double Value/*[in]*/, BSTR Note/*[in]*/)
{
  Kompasltapi7_tlb::IVariable7Ptr Result;
  this->AddVariable(Name, Value, Note, (Kompasltapi7_tlb::IVariable7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IKompasDocument2D1DispT<T>::RebuildDocument(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RebuildDocument"), DISPID(11015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IKompasDocument2D1DispT<T>::RebuildDocument(void)
{
  TOLEBOOL Result;
  this->RebuildDocument((TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMIMacroObject
// Interface: IMacroObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::set_LibraryFileName(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_LibraryFileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::get_LibraryFileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LibraryFileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIMacroObjectT<T>::get_LibraryFileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LibraryFileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::set_LibraryName(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_LibraryName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::get_LibraryName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_LibraryName(PVal);
}

template <class T> BSTR __fastcall
TCOMIMacroObjectT<T>::get_LibraryName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_LibraryName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::set_Command(long PVal/*[in,def,opt]*/)
{
  return (*this)->set_Command(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::get_Command(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Command(PVal);
}

template <class T> long __fastcall
TCOMIMacroObjectT<T>::get_Command(void)
{
  long PVal;
  OLECHECK(this->get_Command((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::set_DoubleClickEditable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_DoubleClickEditable(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::get_DoubleClickEditable(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DoubleClickEditable(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMacroObjectT<T>::get_DoubleClickEditable(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DoubleClickEditable((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::set_HotPointsEditable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_HotPointsEditable(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::get_HotPointsEditable(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_HotPointsEditable(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMacroObjectT<T>::get_HotPointsEditable(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_HotPointsEditable((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::set_ExternalEditable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ExternalEditable(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::get_ExternalEditable(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ExternalEditable(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMacroObjectT<T>::get_ExternalEditable(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ExternalEditable((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::set_UserParams(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_UserParams(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::get_UserParams(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_UserParams(PVal);
}

template <class T> TVariant __fastcall
TCOMIMacroObjectT<T>::get_UserParams(void)
{
  TVariant PVal;
  OLECHECK(this->get_UserParams((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::AddObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddObjects(Objects, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMacroObjectT<T>::AddObjects(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddObjects(Objects, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPlacement(X, Y, Angle, MirrorSymmetry, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMacroObjectT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[in]*/, TOLEBOOL Relative/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPlacement(X, Y, Angle, MirrorSymmetry, Relative, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMacroObjectT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[in]*/, TOLEBOOL Relative/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPlacement(X, Y, Angle, MirrorSymmetry, Relative, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IMacroObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B21C70C9-53EC-4BB7-A9DB-BCE852CA6716}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_LibraryFileName(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryFileName"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_LibraryFileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryFileName"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMacroObjectDispT<T>::get_LibraryFileName(void)
{
  BSTR PVal;
  this->get_LibraryFileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_LibraryName(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryName"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_LibraryName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LibraryName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMacroObjectDispT<T>::get_LibraryName(void)
{
  BSTR PVal;
  this->get_LibraryName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_Command(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Command"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_Command(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Command"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMacroObjectDispT<T>::get_Command(void)
{
  long PVal;
  this->get_Command((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_DoubleClickEditable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleClickEditable"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_DoubleClickEditable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleClickEditable"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::get_DoubleClickEditable(void)
{
  TOLEBOOL PVal;
  this->get_DoubleClickEditable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_HotPointsEditable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HotPointsEditable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_HotPointsEditable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HotPointsEditable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::get_HotPointsEditable(void)
{
  TOLEBOOL PVal;
  this->get_HotPointsEditable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_ExternalEditable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExternalEditable"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_ExternalEditable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExternalEditable"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::get_ExternalEditable(void)
{
  TOLEBOOL PVal;
  this->get_ExternalEditable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_UserParams(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserParams"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_UserParams(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserParams"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IMacroObjectDispT<T>::get_UserParams(void)
{
  TVariant PVal;
  this->get_UserParams((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::AddObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddObjects"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::AddObjects(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->AddObjects(Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPlacement"), DISPID(9));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Angle /*[VT_R8:1]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[in]*/, TOLEBOOL Relative/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPlacement"), DISPID(10));
  TAutoArgs<5> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:1]*/;
  _args[5] = Relative /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                   TOLEBOOL* MirrorSymmetry/*[in]*/, TOLEBOOL Relative/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPlacement(X, Y, Angle, MirrorSymmetry, Relative, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IMacroObjectDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMacroObjectDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMacroObjectDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IMacroObjectDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMacroObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMacroObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMacroObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMacroObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMacroObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingGroups
// Interface: IDrawingGroups
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingGroupsT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDrawingGroupPtr __fastcall
TCOMIDrawingGroupsT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingGroupPtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IDrawingGroupPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupsT<T>::Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/, 
                            Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Temp, Name, Result);
}

template <class T> Kompasltapi7_tlb::IDrawingGroupPtr __fastcall
TCOMIDrawingGroupsT<T>::Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingGroupPtr Result;
  OLECHECK(this->Add(Temp, Name, (Kompasltapi7_tlb::IDrawingGroupPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IDrawingGroups
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0ED06421-907C-4EF0-89F7-AEFC81BEF1DF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingGroup**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingGroupPtr __fastcall
IDrawingGroupsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingGroupPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingGroupPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/, 
                            Kompasltapi7_tlb::IDrawingGroupPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = Temp /*[VT_BOOL:0]*/;
  _args[2] = Name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingGroup**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingGroupPtr __fastcall
IDrawingGroupsDispT<T>::Add(TOLEBOOL Temp/*[in]*/, BSTR Name/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingGroupPtr Result;
  this->Add(Temp, Name, (Kompasltapi7_tlb::IDrawingGroupPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDrawingGroupsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingGroupsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingGroupsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingGroupsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingGroupsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingGroupsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingGroupsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingGroup
// Interface: IDrawingGroup
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIDrawingGroupT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::get_Objects(TVariantInParam Type/*[in]*/, TVariant* Objects/*[out,retval]*/)
{
  return (*this)->get_Objects(Type, Objects);
}

template <class T> TVariant __fastcall
TCOMIDrawingGroupT<T>::get_Objects(TVariantInParam Type/*[in]*/)
{
  TVariant Objects;
  OLECHECK(this->get_Objects(Type, (TVariant*)&Objects));
  return Objects;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::AddObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddObjects(Objects, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::AddObjects(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddObjects(Objects, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::DetachObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteTmp/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DetachObjects(Objects, DeleteTmp, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::DetachObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteTmp/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DetachObjects(Objects, DeleteTmp, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::Clear(TOLEBOOL DeleteTmp/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(DeleteTmp, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::Clear(TOLEBOOL DeleteTmp/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear(DeleteTmp, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::Store(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Store(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::Store(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Store((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::get_ObjectsCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_ObjectsCount(Result);
}

template <class T> long __fastcall
TCOMIDrawingGroupT<T>::get_ObjectsCount(void)
{
  long Result;
  OLECHECK(this->get_ObjectsCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ExistObject(Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ExistObject(Object, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::Delete(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Delete(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::Delete(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Delete((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                 double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                 double YMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddRegion(RegionType, XMin, YMin, XMax, YMax, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                 double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                 double YMax/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddRegion(RegionType, XMin, YMin, XMax, YMax, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                    double XBase/*[in]*/, double YBase/*[in]*/, double Scale/*[in]*/, 
                                    double Angle/*[in]*/, TOLEBOOL ScaleProjLinesSize/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ReadFragment(FileName, CurentLayer, XBase, YBase, Scale, Angle, ScaleProjLinesSize, 
                               Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                    double XBase/*[in]*/, double YBase/*[in]*/, double Scale/*[in]*/, 
                                    double Angle/*[in]*/, TOLEBOOL ScaleProjLinesSize/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ReadFragment(FileName, CurentLayer, XBase, YBase, Scale, Angle, ScaleProjLinesSize, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                     double YBase/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->WriteFragment(FileName, Comment, XBase, YBase, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                     double YBase/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->WriteFragment(FileName, Comment, XBase, YBase, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->WriteToClip(AttrCopy, SpcObjCopy, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->WriteToClip(AttrCopy, SpcObjCopy, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ReadFromClip(AttrCopy, SpcObjCopy, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ReadFromClip(AttrCopy, SpcObjCopy, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::Draw(OLE_HANDLE HWnd/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Draw(HWnd, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::Draw(OLE_HANDLE HWnd/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Draw(HWnd, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::Open(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Open(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::Open(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Open((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::Close(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Close(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::Close(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Close((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingGroupT<T>::get_Current(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Current(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingGroupT<T>::get_Current(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Current((TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IDrawingGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2C96ACB2-4877-45D9-B62D-78BBAD704458}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDrawingGroupDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_Objects(TVariantInParam Type/*[in]*/, TVariant* Objects/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Objects"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Type /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Objects /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IDrawingGroupDispT<T>::get_Objects(TVariantInParam Type/*[in]*/)
{
  TVariant Objects;
  this->get_Objects(Type, (TVariant*)&Objects);
  return Objects;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::AddObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddObjects"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::AddObjects(TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->AddObjects(Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::DetachObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteTmp/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DetachObjects"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  _args[2] = DeleteTmp /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::DetachObjects(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteTmp/*[in]*/)
{
  TOLEBOOL Result;
  this->DetachObjects(Objects, DeleteTmp, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::Clear(TOLEBOOL DeleteTmp/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = DeleteTmp /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::Clear(TOLEBOOL DeleteTmp/*[in]*/)
{
  TOLEBOOL Result;
  this->Clear(DeleteTmp, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::Store(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Store"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::Store(void)
{
  TOLEBOOL Result;
  this->Store((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_ObjectsCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectsCount"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingGroupDispT<T>::get_ObjectsCount(void)
{
  long Result;
  this->get_ObjectsCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExistObject"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::ExistObject(Kompasltapi7_tlb::IDrawingObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->ExistObject(Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::Delete(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::Delete(void)
{
  TOLEBOOL Result;
  this->Delete((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                 double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                 double YMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddRegion"), DISPID(10));
  TAutoArgs<5> _args;
  _args[1] = (int)RegionType /*[VT_USERDEFINED:0]*/;
  _args[2] = XMin /*[VT_R8:0]*/;
  _args[3] = YMin /*[VT_R8:0]*/;
  _args[4] = XMax /*[VT_R8:0]*/;
  _args[5] = YMax /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::AddRegion(ksRegionTypeEnum RegionType/*[in]*/, 
                                 double XMin/*[in]*/, double YMin/*[in]*/, double XMax/*[in]*/, 
                                 double YMax/*[in]*/)
{
  TOLEBOOL Result;
  this->AddRegion(RegionType, XMin, YMin, XMax, YMax, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                    double XBase/*[in]*/, double YBase/*[in]*/, double Scale/*[in]*/
                                    , double Angle/*[in]*/, TOLEBOOL ScaleProjLinesSize/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadFragment"), DISPID(11));
  TAutoArgs<7> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = CurentLayer /*[VT_BOOL:0]*/;
  _args[3] = XBase /*[VT_R8:0]*/;
  _args[4] = YBase /*[VT_R8:0]*/;
  _args[5] = Scale /*[VT_R8:0]*/;
  _args[6] = Angle /*[VT_R8:0]*/;
  _args[7] = ScaleProjLinesSize /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::ReadFragment(BSTR FileName/*[in]*/, TOLEBOOL CurentLayer/*[in]*/, 
                                    double XBase/*[in]*/, double YBase/*[in]*/, double Scale/*[in]*/, 
                                    double Angle/*[in]*/, TOLEBOOL ScaleProjLinesSize/*[in]*/)
{
  TOLEBOOL Result;
  this->ReadFragment(FileName, CurentLayer, XBase, YBase, Scale, Angle, ScaleProjLinesSize, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                     double YBase/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WriteFragment"), DISPID(12));
  TAutoArgs<4> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  _args[2] = Comment /*[VT_BSTR:0]*/;
  _args[3] = XBase /*[VT_R8:0]*/;
  _args[4] = YBase /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::WriteFragment(BSTR FileName/*[in]*/, BSTR Comment, double XBase/*[in]*/, 
                                     double YBase/*[in]*/)
{
  TOLEBOOL Result;
  this->WriteFragment(FileName, Comment, XBase, YBase, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WriteToClip"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = AttrCopy /*[VT_BOOL:0]*/;
  _args[2] = SpcObjCopy /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::WriteToClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/)
{
  TOLEBOOL Result;
  this->WriteToClip(AttrCopy, SpcObjCopy, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadFromClip"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = AttrCopy /*[VT_BOOL:0]*/;
  _args[2] = SpcObjCopy /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::ReadFromClip(TOLEBOOL AttrCopy/*[in]*/, TOLEBOOL SpcObjCopy/*[in]*/)
{
  TOLEBOOL Result;
  this->ReadFromClip(AttrCopy, SpcObjCopy, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::Draw(OLE_HANDLE HWnd/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Draw"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = HWnd /*[VT_INT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::Draw(OLE_HANDLE HWnd/*[in]*/)
{
  TOLEBOOL Result;
  this->Draw(HWnd, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::Open(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Open"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::Open(void)
{
  TOLEBOOL Result;
  this->Open((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::Close(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::Close(void)
{
  TOLEBOOL Result;
  this->Close((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_Current(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingGroupDispT<T>::get_Current(void)
{
  TOLEBOOL Result;
  this->get_Current((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingGroupDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingGroupDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingGroupDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingGroupDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingGroupDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICopyObjectParam
// Interface: ICopyObjectParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_XOld(double PVal/*[in]*/)
{
  return (*this)->set_XOld(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_XOld(double* PVal/*[out,retval]*/)
{
  return (*this)->get_XOld(PVal);
}

template <class T> double __fastcall
TCOMICopyObjectParamT<T>::get_XOld(void)
{
  double PVal;
  OLECHECK(this->get_XOld((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_YOld(double PVal/*[in]*/)
{
  return (*this)->set_YOld(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_YOld(double* PVal/*[out,retval]*/)
{
  return (*this)->get_YOld(PVal);
}

template <class T> double __fastcall
TCOMICopyObjectParamT<T>::get_YOld(void)
{
  double PVal;
  OLECHECK(this->get_YOld((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_XNew(double PVal/*[in]*/)
{
  return (*this)->set_XNew(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_XNew(double* PVal/*[out,retval]*/)
{
  return (*this)->get_XNew(PVal);
}

template <class T> double __fastcall
TCOMICopyObjectParamT<T>::get_XNew(void)
{
  double PVal;
  OLECHECK(this->get_XNew((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_YNew(double PVal/*[in]*/)
{
  return (*this)->set_YNew(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_YNew(double* PVal/*[out,retval]*/)
{
  return (*this)->get_YNew(PVal);
}

template <class T> double __fastcall
TCOMICopyObjectParamT<T>::get_YNew(void)
{
  double PVal;
  OLECHECK(this->get_YNew((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_Scale(double PVal/*[in]*/)
{
  return (*this)->set_Scale(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Scale(PVal);
}

template <class T> double __fastcall
TCOMICopyObjectParamT<T>::get_Scale(void)
{
  double PVal;
  OLECHECK(this->get_Scale((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMICopyObjectParamT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_AttributeCopy(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AttributeCopy(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AttributeCopy(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICopyObjectParamT<T>::get_AttributeCopy(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AttributeCopy((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DimensionLineScale(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionLineScale(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICopyObjectParamT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DimensionLineScale((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SpecificationObjectCopy(PVal);
}

template <class T> HRESULT __fastcall
TCOMICopyObjectParamT<T>::get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SpecificationObjectCopy(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICopyObjectParamT<T>::get_SpecificationObjectCopy(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SpecificationObjectCopy((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {58E1BACA-32D5-4EAB-87E9-D14816DAC29F}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_XOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_XOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICopyObjectParamDispT<T>::get_XOld(void)
{
  double PVal;
  this->get_XOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_YOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_YOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICopyObjectParamDispT<T>::get_YOld(void)
{
  double PVal;
  this->get_YOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_XNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_XNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICopyObjectParamDispT<T>::get_XNew(void)
{
  double PVal;
  this->get_XNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_YNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_YNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICopyObjectParamDispT<T>::get_YNew(void)
{
  double PVal;
  this->get_YNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICopyObjectParamDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICopyObjectParamDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_AttributeCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICopyObjectParamDispT<T>::get_AttributeCopy(void)
{
  TOLEBOOL PVal;
  this->get_AttributeCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICopyObjectParamDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICopyObjectParamDispT<T>::get_SpecificationObjectCopy(void)
{
  TOLEBOOL PVal;
  this->get_SpecificationObjectCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICopyObjectParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICopyObjectParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICopyObjectParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICopyObjectParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICopyObjectParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingDocument
// Interface: IDrawingDocument
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingDocumentT<T>::get_ChangeListDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_ChangeListDescriptions(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
TCOMIDrawingDocumentT<T>::get_ChangeListDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  OLECHECK(this->get_ChangeListDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingDocumentT<T>::get_SpecRough(Kompasltapi7_tlb::ISpecRoughPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SpecRough(PVal);
}

template <class T> Kompasltapi7_tlb::ISpecRoughPtr __fastcall
TCOMIDrawingDocumentT<T>::get_SpecRough(void)
{
  Kompasltapi7_tlb::ISpecRoughPtr PVal;
  OLECHECK(this->get_SpecRough((Kompasltapi7_tlb::ISpecRoughPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingDocumentT<T>::get_TechnicalDemand(Kompasltapi7_tlb::ITechnicalDemandPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_TechnicalDemand(PVal);
}

template <class T> Kompasltapi7_tlb::ITechnicalDemandPtr __fastcall
TCOMIDrawingDocumentT<T>::get_TechnicalDemand(void)
{
  Kompasltapi7_tlb::ITechnicalDemandPtr PVal;
  OLECHECK(this->get_TechnicalDemand((Kompasltapi7_tlb::ITechnicalDemandPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDrawingDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C2214318-5C89-40F8-A25C-C87D08B490F4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_ChangeListDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChangeListDescriptions"), DISPID(5001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IDrawingDocumentDispT<T>::get_ChangeListDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_ChangeListDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_SpecRough(Kompasltapi7_tlb::ISpecRoughPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecRough"), DISPID(5002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecRough**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecRoughPtr __fastcall
IDrawingDocumentDispT<T>::get_SpecRough(void)
{
  Kompasltapi7_tlb::ISpecRoughPtr PVal;
  this->get_SpecRough((Kompasltapi7_tlb::ISpecRoughPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_TechnicalDemand(Kompasltapi7_tlb::ITechnicalDemandPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TechnicalDemand"), DISPID(5003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITechnicalDemand**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITechnicalDemandPtr __fastcall
IDrawingDocumentDispT<T>::get_TechnicalDemand(void)
{
  Kompasltapi7_tlb::ITechnicalDemandPtr PVal;
  this->get_TechnicalDemand((Kompasltapi7_tlb::ITechnicalDemandPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_ViewsAndLayersManager(Kompasltapi7_tlb::IViewsAndLayersManagerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewsAndLayersManager"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IViewsAndLayersManager**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewsAndLayersManagerPtr __fastcall
IDrawingDocumentDispT<T>::get_ViewsAndLayersManager(void)
{
  Kompasltapi7_tlb::IViewsAndLayersManagerPtr Result;
  this->get_ViewsAndLayersManager((Kompasltapi7_tlb::IViewsAndLayersManagerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::GetDrawingObjectNotifyResult(LPDISPATCH* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetDrawingObjectNotifyResult"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IDrawingDocumentDispT<T>::GetDrawingObjectNotifyResult(void)
{
  LPDISPATCH Result;
  this->GetDrawingObjectNotifyResult((LPDISPATCH*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
IDrawingDocumentDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
IDrawingDocumentDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDrawingDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDrawingDocumentDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDrawingDocumentDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingDocumentDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingDocumentDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingDocumentDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingDocumentDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
IDrawingDocumentDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IDrawingDocumentDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
IDrawingDocumentDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
IDrawingDocumentDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecRough
// Interface: ISpecRough
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_X(double* Result/*[out,retval]*/)
{
  return (*this)->get_X(Result);
}

template <class T> double __fastcall
TCOMISpecRoughT<T>::get_X(void)
{
  double Result;
  OLECHECK(this->get_X((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::set_X(double Result/*[in]*/)
{
  return (*this)->set_X(Result);
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_Y(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y(Result);
}

template <class T> double __fastcall
TCOMISpecRoughT<T>::get_Y(void)
{
  double Result;
  OLECHECK(this->get_Y((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::set_Y(double Result/*[in]*/)
{
  return (*this)->set_Y(Result);
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::set_AutoPlacement(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AutoPlacement(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoPlacement(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecRoughT<T>::get_AutoPlacement(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoPlacement((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_SignType(ksRoughSignEnum* Result/*[out,retval]*/)
{
  return (*this)->get_SignType(Result);
}

template <class T> ksRoughSignEnum __fastcall
TCOMISpecRoughT<T>::get_SignType(void)
{
  ksRoughSignEnum Result;
  OLECHECK(this->get_SignType((ksRoughSignEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::set_SignType(ksRoughSignEnum Result/*[in]*/)
{
  return (*this)->set_SignType(Result);
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_Text(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> BSTR __fastcall
TCOMISpecRoughT<T>::get_Text(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Text((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::set_Text(BSTR PVal/*[in]*/)
{
  return (*this)->set_Text(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_Distance(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Distance(PVal);
}

template <class T> double __fastcall
TCOMISpecRoughT<T>::get_Distance(void)
{
  double PVal;
  OLECHECK(this->get_Distance((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::set_Distance(double PVal/*[in]*/)
{
  return (*this)->set_Distance(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_AddSign(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->get_AddSign(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecRoughT<T>::get_AddSign(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->get_AddSign((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::set_AddSign(TOLEBOOL PRes/*[in]*/)
{
  return (*this)->set_AddSign(PRes);
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecRoughT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecRoughT<T>::Delete(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMISpecRoughT<T>::get_IsCreated(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_IsCreated(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpecRoughT<T>::get_IsCreated(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_IsCreated((TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISpecRough
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D723AAC1-0315-4AED-99BF-88A7E55B6E6D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecRoughDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecRoughDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::set_AutoPlacement(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoPlacement"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoPlacement"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecRoughDispT<T>::get_AutoPlacement(void)
{
  TOLEBOOL PVal;
  this->get_AutoPlacement((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_SignType(ksRoughSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksRoughSignEnum __fastcall
ISpecRoughDispT<T>::get_SignType(void)
{
  ksRoughSignEnum Result;
  this->get_SignType((ksRoughSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::set_SignType(ksRoughSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_Text(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecRoughDispT<T>::get_Text(void)
{
  BSTR PVal;
  this->get_Text((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::set_Text(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_Distance(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Distance"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISpecRoughDispT<T>::get_Distance(void)
{
  double PVal;
  this->get_Distance((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::set_Distance(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Distance"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_AddSign(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddSign"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecRoughDispT<T>::get_AddSign(void)
{
  TOLEBOOL PRes;
  this->get_AddSign((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::set_AddSign(TOLEBOOL PRes/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddSign"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PRes /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecRoughDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecRoughDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_IsCreated(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsCreated"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecRoughDispT<T>::get_IsCreated(void)
{
  TOLEBOOL Result;
  this->get_IsCreated((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecRoughDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecRoughDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecRoughDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecRoughDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecRoughDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITechnicalDemand
// Interface: ITechnicalDemand
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMITechnicalDemandT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::get_BlocksGabarits(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_BlocksGabarits(PVal);
}

template <class T> TVariant __fastcall
TCOMITechnicalDemandT<T>::get_BlocksGabarits(void)
{
  TVariant PVal;
  OLECHECK(this->get_BlocksGabarits((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::set_BlocksGabarits(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_BlocksGabarits(PVal);
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::set_AutoPlacement(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AutoPlacement(PVal);
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoPlacement(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMITechnicalDemandT<T>::get_AutoPlacement(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoPlacement((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMITechnicalDemandT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMITechnicalDemandT<T>::Delete(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::get_IsCreated(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_IsCreated(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITechnicalDemandT<T>::get_IsCreated(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_IsCreated((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITechnicalDemandT<T>::get_BlocksStartLineNumbers(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_BlocksStartLineNumbers(Result);
}

template <class T> TVariant __fastcall
TCOMITechnicalDemandT<T>::get_BlocksStartLineNumbers(void)
{
  TVariant Result;
  OLECHECK(this->get_BlocksStartLineNumbers((TVariant*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ITechnicalDemand
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18C80AE5-BF92-482A-9C56-3D1638F5E5F5}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ITechnicalDemandDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_BlocksGabarits(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlocksGabarits"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ITechnicalDemandDispT<T>::get_BlocksGabarits(void)
{
  TVariant PVal;
  this->get_BlocksGabarits((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::set_BlocksGabarits(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlocksGabarits"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::set_AutoPlacement(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoPlacement"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_AutoPlacement(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoPlacement"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITechnicalDemandDispT<T>::get_AutoPlacement(void)
{
  TOLEBOOL PVal;
  this->get_AutoPlacement((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITechnicalDemandDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITechnicalDemandDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_IsCreated(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsCreated"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITechnicalDemandDispT<T>::get_IsCreated(void)
{
  TOLEBOOL Result;
  this->get_IsCreated((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_BlocksStartLineNumbers(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BlocksStartLineNumbers"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ITechnicalDemandDispT<T>::get_BlocksStartLineNumbers(void)
{
  TVariant Result;
  this->get_BlocksStartLineNumbers((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITechnicalDemandDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITechnicalDemandDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITechnicalDemandDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITechnicalDemandDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITechnicalDemandDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIFragmentDocument
// Interface: IFragmentDocument
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIFragmentDocumentT<T>::get_IsSketch(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_IsSketch(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIFragmentDocumentT<T>::get_IsSketch(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_IsSketch((TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IFragmentDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E19CE626-DF9C-48C4-A83D-3E3BC7F0DACA}
// *********************************************************************//
template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_IsSketch(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsSketch"), DISPID(5001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFragmentDocumentDispT<T>::get_IsSketch(void)
{
  TOLEBOOL Result;
  this->get_IsSketch((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_ViewsAndLayersManager(Kompasltapi7_tlb::IViewsAndLayersManagerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewsAndLayersManager"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IViewsAndLayersManager**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewsAndLayersManagerPtr __fastcall
IFragmentDocumentDispT<T>::get_ViewsAndLayersManager(void)
{
  Kompasltapi7_tlb::IViewsAndLayersManagerPtr Result;
  this->get_ViewsAndLayersManager((Kompasltapi7_tlb::IViewsAndLayersManagerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::GetDrawingObjectNotifyResult(LPDISPATCH* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetDrawingObjectNotifyResult"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IFragmentDocumentDispT<T>::GetDrawingObjectNotifyResult(void)
{
  LPDISPATCH Result;
  this->GetDrawingObjectNotifyResult((LPDISPATCH*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
IFragmentDocumentDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
IFragmentDocumentDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                 TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFragmentDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IFragmentDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IFragmentDocumentDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IFragmentDocumentDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFragmentDocumentDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFragmentDocumentDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFragmentDocumentDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFragmentDocumentDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
IFragmentDocumentDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IFragmentDocumentDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
IFragmentDocumentDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
IFragmentDocumentDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IFragmentDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IFragmentDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IFragmentDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IFragmentDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IFragmentDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpecificationDocument
// Interface: ISpecificationDocument
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpecificationDocumentT<T>::get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AttachedDocuments(PVal);
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall
TCOMISpecificationDocumentT<T>::get_AttachedDocuments(void)
{
  Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
  OLECHECK(this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpecificationDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E3FA8FD0-6187-4625-89B7-3C815651944D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_AttachedDocuments(Kompasltapi7_tlb::IAttachedDocumentsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttachedDocuments"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttachedDocuments**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttachedDocumentsPtr __fastcall
ISpecificationDocumentDispT<T>::get_AttachedDocuments(void)
{
  Kompasltapi7_tlb::IAttachedDocumentsPtr PVal;
  this->get_AttachedDocuments((Kompasltapi7_tlb::IAttachedDocumentsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
ISpecificationDocumentDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
ISpecificationDocumentDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/
                                      , TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationDocumentDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpecificationDocumentDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDocumentDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDocumentDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDocumentDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpecificationDocumentDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
ISpecificationDocumentDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
ISpecificationDocumentDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
ISpecificationDocumentDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
ISpecificationDocumentDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpecificationDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpecificationDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpecificationDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpecificationDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpecificationDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITextDocument
// Interface: ITextDocument
// *********************************************************************//
// *********************************************************************//
// DispIntf:  ITextDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {71A589EA-D32F-42C4-BBC4-A51611E85E90}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
ITextDocumentDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
ITextDocumentDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                             TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextDocumentDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITextDocumentDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDocumentDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDocumentDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDocumentDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITextDocumentDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
ITextDocumentDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
ITextDocumentDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
ITextDocumentDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
ITextDocumentDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITextDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITextDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITextDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITextDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITextDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPartDocument
// Interface: IPartDocument
// *********************************************************************//
// *********************************************************************//
// DispIntf:  IPartDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0075EA2A-5498-4E28-BDF3-0288EB168054}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TopPart"), DISPID(5002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IPartDocumentDispT<T>::get_TopPart(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_TopPart((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlanes"), DISPID(5003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlanes"), DISPID(5003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllPlanes(void)
{
  TOLEBOOL PVal;
  this->get_HideAllPlanes((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAxis"), DISPID(5004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAxis"), DISPID(5004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllAxis(void)
{
  TOLEBOOL PVal;
  this->get_HideAllAxis((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSketches"), DISPID(5005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSketches"), DISPID(5005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllSketches(void)
{
  TOLEBOOL PVal;
  this->get_HideAllSketches((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlaces"), DISPID(5006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlaces"), DISPID(5006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllPlaces(void)
{
  TOLEBOOL PVal;
  this->get_HideAllPlaces((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSurfaces"), DISPID(5007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSurfaces"), DISPID(5007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllSurfaces(void)
{
  TOLEBOOL PVal;
  this->get_HideAllSurfaces((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllThreads"), DISPID(5008));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllThreads"), DISPID(5008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllThreads(void)
{
  TOLEBOOL PVal;
  this->get_HideAllThreads((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllCurves"), DISPID(5009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllCurves"), DISPID(5009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllCurves(void)
{
  TOLEBOOL PVal;
  this->get_HideAllCurves((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllControlPoints"), DISPID(5010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllControlPoints"), DISPID(5010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllControlPoints(void)
{
  TOLEBOOL PVal;
  this->get_HideAllControlPoints((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Perspective"), DISPID(5011));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Perspective(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Perspective"), DISPID(5011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_Perspective(void)
{
  TOLEBOOL PVal;
  this->get_Perspective((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_DrawMode(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawMode"), DISPID(5012));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_DrawMode(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawMode"), DISPID(5012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPartDocumentDispT<T>::get_DrawMode(void)
{
  long PVal;
  this->get_DrawMode((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_ShadedWireframe(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShadedWireframe"), DISPID(5013));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShadedWireframe"), DISPID(5013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_ShadedWireframe(void)
{
  TOLEBOOL PVal;
  this->get_ShadedWireframe((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateObjectsInCurrentLocalCS"), DISPID(5014));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateObjectsInCurrentLocalCS"), DISPID(5014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_CreateObjectsInCurrentLocalCS(void)
{
  TOLEBOOL PVal;
  this->get_CreateObjectsInCurrentLocalCS((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDimensions"), DISPID(5015));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDimensions"), DISPID(5015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllDimensions(void)
{
  TOLEBOOL PVal;
  this->get_HideAllDimensions((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDesignations"), DISPID(5016));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDesignations"), DISPID(5016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllDesignations(void)
{
  TOLEBOOL PVal;
  this->get_HideAllDesignations((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAuxiliaryGeom"), DISPID(5017));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAuxiliaryGeom"), DISPID(5017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideAllAuxiliaryGeom(void)
{
  TOLEBOOL PVal;
  this->get_HideAllAuxiliaryGeom((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideInComponentsMode"), DISPID(5018));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideInComponentsMode"), DISPID(5018));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_HideInComponentsMode(void)
{
  TOLEBOOL PVal;
  this->get_HideInComponentsMode((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectionManager"), DISPID(5019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISelectionManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISelectionManagerPtr __fastcall
IPartDocumentDispT<T>::get_SelectionManager(void)
{
  Kompasltapi7_tlb::ISelectionManagerPtr PVal;
  this->get_SelectionManager((Kompasltapi7_tlb::ISelectionManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChooseManager"), DISPID(5020));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IChooseManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IChooseManagerPtr __fastcall
IPartDocumentDispT<T>::get_ChooseManager(void)
{
  Kompasltapi7_tlb::IChooseManagerPtr PVal;
  this->get_ChooseManager((Kompasltapi7_tlb::IChooseManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                    TVariantInParam Objects/*[in]*/, 
                                    Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                    Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateAttrEx"), DISPID(5021));
  TAutoArgs<4> _args;
  _args[1] = AttrID /*[VT_R8:0]*/;
  _args[2] = Libname /*[VT_BSTR:0]*/;
  _args[3] = Objects /*[VT_VARIANT:0]*/;
  _args[4] = (LPDISPATCH)(Kompasltapi7_tlb::IPart7*)SourcePart /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttribute**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributePtr __fastcall
IPartDocumentDispT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                    TVariantInParam Objects/*[in]*/, 
                                    Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  Kompasltapi7_tlb::IAttributePtr Result;
  this->CreateAttrEx(AttrID, Libname, Objects, SourcePart, (Kompasltapi7_tlb::IAttributePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                        long Key4/*[in]*/, double Numb/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                        TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributesEx"), DISPID(5022));
  TAutoArgs<7> _args;
  _args[1] = Key1 /*[VT_I4:0]*/;
  _args[2] = Key2 /*[VT_I4:0]*/;
  _args[3] = Key3 /*[VT_I4:0]*/;
  _args[4] = Key4 /*[VT_I4:0]*/;
  _args[5] = Numb /*[VT_R8:0]*/;
  _args[6] = Objects /*[VT_VARIANT:0]*/;
  _args[7] = (LPDISPATCH)(Kompasltapi7_tlb::IPart7*)SourcePart /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPartDocumentDispT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                        long Key4/*[in]*/, double Numb/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  TVariant Result;
  this->get_AttributesEx(Key1, Key2, Key3, Key4, Numb, Objects, SourcePart, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
IPartDocumentDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
IPartDocumentDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                             TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPartDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPartDocumentDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPartDocumentDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPartDocumentDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
IPartDocumentDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IPartDocumentDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
IPartDocumentDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
IPartDocumentDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPartDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPartDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPartDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPartDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPartDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAssemblyDocument
// Interface: IAssemblyDocument
// *********************************************************************//
// *********************************************************************//
// DispIntf:  IAssemblyDocument
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6B3F33A-3273-43EF-9B8A-7C0AF8FAA129}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_TopPart(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TopPart"), DISPID(5002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IAssemblyDocumentDispT<T>::get_TopPart(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_TopPart((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllPlanes(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlanes"), DISPID(5003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllPlanes(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlanes"), DISPID(5003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllPlanes(void)
{
  TOLEBOOL PVal;
  this->get_HideAllPlanes((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllAxis(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAxis"), DISPID(5004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllAxis(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAxis"), DISPID(5004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllAxis(void)
{
  TOLEBOOL PVal;
  this->get_HideAllAxis((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllSketches(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSketches"), DISPID(5005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllSketches(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSketches"), DISPID(5005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllSketches(void)
{
  TOLEBOOL PVal;
  this->get_HideAllSketches((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllPlaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlaces"), DISPID(5006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllPlaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllPlaces"), DISPID(5006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllPlaces(void)
{
  TOLEBOOL PVal;
  this->get_HideAllPlaces((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllSurfaces(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSurfaces"), DISPID(5007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllSurfaces(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllSurfaces"), DISPID(5007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllSurfaces(void)
{
  TOLEBOOL PVal;
  this->get_HideAllSurfaces((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllThreads(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllThreads"), DISPID(5008));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllThreads(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllThreads"), DISPID(5008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllThreads(void)
{
  TOLEBOOL PVal;
  this->get_HideAllThreads((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllCurves(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllCurves"), DISPID(5009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllCurves(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllCurves"), DISPID(5009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllCurves(void)
{
  TOLEBOOL PVal;
  this->get_HideAllCurves((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllControlPoints(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllControlPoints"), DISPID(5010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllControlPoints(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllControlPoints"), DISPID(5010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllControlPoints(void)
{
  TOLEBOOL PVal;
  this->get_HideAllControlPoints((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_Perspective(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Perspective"), DISPID(5011));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Perspective(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Perspective"), DISPID(5011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_Perspective(void)
{
  TOLEBOOL PVal;
  this->get_Perspective((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_DrawMode(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawMode"), DISPID(5012));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_DrawMode(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawMode"), DISPID(5012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssemblyDocumentDispT<T>::get_DrawMode(void)
{
  long PVal;
  this->get_DrawMode((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_ShadedWireframe(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShadedWireframe"), DISPID(5013));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_ShadedWireframe(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShadedWireframe"), DISPID(5013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_ShadedWireframe(void)
{
  TOLEBOOL PVal;
  this->get_ShadedWireframe((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_CreateObjectsInCurrentLocalCS(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateObjectsInCurrentLocalCS"), DISPID(5014));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_CreateObjectsInCurrentLocalCS(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateObjectsInCurrentLocalCS"), DISPID(5014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_CreateObjectsInCurrentLocalCS(void)
{
  TOLEBOOL PVal;
  this->get_CreateObjectsInCurrentLocalCS((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllDimensions(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDimensions"), DISPID(5015));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllDimensions(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDimensions"), DISPID(5015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllDimensions(void)
{
  TOLEBOOL PVal;
  this->get_HideAllDimensions((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllDesignations(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDesignations"), DISPID(5016));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllDesignations(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllDesignations"), DISPID(5016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllDesignations(void)
{
  TOLEBOOL PVal;
  this->get_HideAllDesignations((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideAllAuxiliaryGeom(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAuxiliaryGeom"), DISPID(5017));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideAllAuxiliaryGeom(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideAllAuxiliaryGeom"), DISPID(5017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideAllAuxiliaryGeom(void)
{
  TOLEBOOL PVal;
  this->get_HideAllAuxiliaryGeom((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_HideInComponentsMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideInComponentsMode"), DISPID(5018));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_HideInComponentsMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HideInComponentsMode"), DISPID(5018));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_HideInComponentsMode(void)
{
  TOLEBOOL PVal;
  this->get_HideInComponentsMode((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_SelectionManager(Kompasltapi7_tlb::ISelectionManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SelectionManager"), DISPID(5019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISelectionManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISelectionManagerPtr __fastcall
IAssemblyDocumentDispT<T>::get_SelectionManager(void)
{
  Kompasltapi7_tlb::ISelectionManagerPtr PVal;
  this->get_SelectionManager((Kompasltapi7_tlb::ISelectionManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_ChooseManager(Kompasltapi7_tlb::IChooseManagerPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChooseManager"), DISPID(5020));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IChooseManager**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IChooseManagerPtr __fastcall
IAssemblyDocumentDispT<T>::get_ChooseManager(void)
{
  Kompasltapi7_tlb::IChooseManagerPtr PVal;
  this->get_ChooseManager((Kompasltapi7_tlb::IChooseManagerPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                        Kompasltapi7_tlb::IAttributePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateAttrEx"), DISPID(5021));
  TAutoArgs<4> _args;
  _args[1] = AttrID /*[VT_R8:0]*/;
  _args[2] = Libname /*[VT_BSTR:0]*/;
  _args[3] = Objects /*[VT_VARIANT:0]*/;
  _args[4] = (LPDISPATCH)(Kompasltapi7_tlb::IPart7*)SourcePart /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttribute**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributePtr __fastcall
IAssemblyDocumentDispT<T>::CreateAttrEx(double AttrID/*[in]*/, BSTR Libname/*[in]*/, 
                                        TVariantInParam Objects/*[in]*/, 
                                        Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  Kompasltapi7_tlb::IAttributePtr Result;
  this->CreateAttrEx(AttrID, Libname, Objects, SourcePart, (Kompasltapi7_tlb::IAttributePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/
                                            , long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/, 
                                            Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/, 
                                            TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributesEx"), DISPID(5022));
  TAutoArgs<7> _args;
  _args[1] = Key1 /*[VT_I4:0]*/;
  _args[2] = Key2 /*[VT_I4:0]*/;
  _args[3] = Key3 /*[VT_I4:0]*/;
  _args[4] = Key4 /*[VT_I4:0]*/;
  _args[5] = Numb /*[VT_R8:0]*/;
  _args[6] = Objects /*[VT_VARIANT:0]*/;
  _args[7] = (LPDISPATCH)(Kompasltapi7_tlb::IPart7*)SourcePart /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAssemblyDocumentDispT<T>::get_AttributesEx(long Key1/*[in]*/, long Key2/*[in]*/, long Key3/*[in]*/, 
                                            long Key4/*[in]*/, double Numb/*[in]*/, 
                                            TVariantInParam Objects/*[in]*/, 
                                            Kompasltapi7_tlb::IPart7Ptr SourcePart/*[in]*/)
{
  TVariant Result;
  this->get_AttributesEx(Key1, Key2, Key3, Key4, Numb, Objects, SourcePart, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_DocumentType(DocumentTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DocumentTypeEnum __fastcall
IAssemblyDocumentDispT<T>::get_DocumentType(void)
{
  DocumentTypeEnum Type;
  this->get_DocumentType((DocumentTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_DocumentFrames(Kompasltapi7_tlb::IDocumentFramesPtr* PFrames/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentFrames"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentFrames**)PFrames /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentFramesPtr __fastcall
IAssemblyDocumentDispT<T>::get_DocumentFrames(void)
{
  Kompasltapi7_tlb::IDocumentFramesPtr PFrames;
  this->get_DocumentFrames((Kompasltapi7_tlb::IDocumentFramesPtr*)&PFrames);
  return PFrames;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/, 
                                 TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = (int)closeOptions /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::Close(DocumentCloseOptions closeOptions/*[in]*/)
{
  TOLEBOOL PRes;
  this->Close(closeOptions, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::Save()
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(3003));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::SaveAs(BSTR PathName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveAs"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PathName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAssemblyDocumentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_PathName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PathName"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAssemblyDocumentDispT<T>::get_PathName(void)
{
  BSTR PVal;
  this->get_PathName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Path(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Path"), DISPID(3007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAssemblyDocumentDispT<T>::get_Path(void)
{
  BSTR PVal;
  this->get_Path((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Active(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_Active(void)
{
  TOLEBOOL PVal;
  this->get_Active((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_Active(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Active"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Changed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Changed"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssemblyDocumentDispT<T>::get_Changed(void)
{
  TOLEBOOL PVal;
  this->get_Changed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_DocumentSettings(Kompasltapi7_tlb::IDocumentSettingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentSettings"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDocumentSettings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDocumentSettingsPtr __fastcall
IAssemblyDocumentDispT<T>::get_DocumentSettings(void)
{
  Kompasltapi7_tlb::IDocumentSettingsPtr PVal;
  this->get_DocumentSettings((Kompasltapi7_tlb::IDocumentSettingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_SpecificationDescriptions(Kompasltapi7_tlb::ISpecificationDescriptionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationDescriptions"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpecificationDescriptions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpecificationDescriptionsPtr __fastcall
IAssemblyDocumentDispT<T>::get_SpecificationDescriptions(void)
{
  Kompasltapi7_tlb::ISpecificationDescriptionsPtr PVal;
  this->get_SpecificationDescriptions((Kompasltapi7_tlb::ISpecificationDescriptionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_LayoutSheets(Kompasltapi7_tlb::ILayoutSheetsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayoutSheets"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayoutSheets**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayoutSheetsPtr __fastcall
IAssemblyDocumentDispT<T>::get_LayoutSheets(void)
{
  Kompasltapi7_tlb::ILayoutSheetsPtr PVal;
  this->get_LayoutSheets((Kompasltapi7_tlb::ILayoutSheetsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_UserDataStoragesMng(Kompasltapi7_tlb::IUserDataStoragesMngPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserDataStoragesMng"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUserDataStoragesMng**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUserDataStoragesMngPtr __fastcall
IAssemblyDocumentDispT<T>::get_UserDataStoragesMng(void)
{
  Kompasltapi7_tlb::IUserDataStoragesMngPtr PVal;
  this->get_UserDataStoragesMng((Kompasltapi7_tlb::IUserDataStoragesMngPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAssemblyDocumentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAssemblyDocumentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAssemblyDocumentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAssemblyDocumentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssemblyDocumentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDimensionText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E0197BA7-C3FB-44A3-9C13-49115A150ED2}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(5001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDimensionTextDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(5001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Sign(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign"), DISPID(5002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDimensionTextDispT<T>::get_Sign(void)
{
  long Result;
  this->get_Sign((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_Sign(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign"), DISPID(5002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_SignFont(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignFont"), DISPID(5003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDimensionTextDispT<T>::get_SignFont(void)
{
  BSTR Result;
  this->get_SignFont((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_SignFont(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignFont"), DISPID(5003));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_NominalValue(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NominalValue"), DISPID(5004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDimensionTextDispT<T>::get_NominalValue(void)
{
  double Result;
  this->get_NominalValue((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_NominalValue(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NominalValue"), DISPID(5004));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_AutoNominalValue(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNominalValue"), DISPID(5005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionTextDispT<T>::get_AutoNominalValue(void)
{
  TOLEBOOL Result;
  this->get_AutoNominalValue((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_AutoNominalValue(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNominalValue"), DISPID(5005));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_ToleranceOn(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ToleranceOn"), DISPID(5006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionTextDispT<T>::get_ToleranceOn(void)
{
  TOLEBOOL Result;
  this->get_ToleranceOn((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_ToleranceOn(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ToleranceOn"), DISPID(5006));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_DeviationOn(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationOn"), DISPID(5007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionTextDispT<T>::get_DeviationOn(void)
{
  TOLEBOOL Result;
  this->get_DeviationOn((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_DeviationOn(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationOn"), DISPID(5007));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_DeviationType(ksDimensionDeviationEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationType"), DISPID(5008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionDeviationEnum __fastcall
IDimensionTextDispT<T>::get_DeviationType(void)
{
  ksDimensionDeviationEnum Result;
  this->get_DeviationType((ksDimensionDeviationEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_DeviationType(ksDimensionDeviationEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationType"), DISPID(5008));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Rectangle(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rectangle"), DISPID(5009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionTextDispT<T>::get_Rectangle(void)
{
  TOLEBOOL Result;
  this->get_Rectangle((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_Rectangle(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rectangle"), DISPID(5009));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Underline(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Underline"), DISPID(5010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionTextDispT<T>::get_Underline(void)
{
  TOLEBOOL Result;
  this->get_Underline((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_Underline(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Underline"), DISPID(5010));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Brackets(ksDimensionTextBracketsEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Brackets"), DISPID(5011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionTextBracketsEnum __fastcall
IDimensionTextDispT<T>::get_Brackets(void)
{
  ksDimensionTextBracketsEnum Result;
  this->get_Brackets((ksDimensionTextBracketsEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_Brackets(ksDimensionTextBracketsEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Brackets"), DISPID(5011));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_TextAlign(ksDimensionTextAlignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAlign"), DISPID(5012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionTextAlignEnum __fastcall
IDimensionTextDispT<T>::get_TextAlign(void)
{
  ksDimensionTextAlignEnum Result;
  this->get_TextAlign((ksDimensionTextAlignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_TextAlign(ksDimensionTextAlignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAlign"), DISPID(5012));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Prefix(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Prefix"), DISPID(5013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IDimensionTextDispT<T>::get_Prefix(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_Prefix((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_NominalText(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NominalText"), DISPID(5014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IDimensionTextDispT<T>::get_NominalText(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_NominalText((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Tolerance(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tolerance"), DISPID(5015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDimensionTextDispT<T>::get_Tolerance(void)
{
  BSTR PVal;
  this->get_Tolerance((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_Tolerance(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tolerance"), DISPID(5015));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_HighDeviation(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HighDeviation"), DISPID(5016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IDimensionTextDispT<T>::get_HighDeviation(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_HighDeviation((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_LowDeviation(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LowDeviation"), DISPID(5017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IDimensionTextDispT<T>::get_LowDeviation(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_LowDeviation((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Unit(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Unit"), DISPID(5018));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IDimensionTextDispT<T>::get_Unit(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_Unit((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_Suffix(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Suffix"), DISPID(5019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IDimensionTextDispT<T>::get_Suffix(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_Suffix((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnder"), DISPID(5020));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IDimensionTextDispT<T>::get_TextUnder(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnder((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::get_TextFormat(ksDimTextFormatEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextFormat"), DISPID(5021));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimTextFormatEnum __fastcall
IDimensionTextDispT<T>::get_TextFormat(void)
{
  ksDimTextFormatEnum PVal;
  this->get_TextFormat((ksDimTextFormatEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionTextDispT<T>::set_TextFormat(ksDimTextFormatEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextFormat"), DISPID(5021));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IDimensionParams
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {534518CC-6577-4273-887A-6B833FDE6ED7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_RemoteLine1(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteLine1"), DISPID(4001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionParamsDispT<T>::get_RemoteLine1(void)
{
  TOLEBOOL PVal;
  this->get_RemoteLine1((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_RemoteLine1(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteLine1"), DISPID(4001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_RemoteLine2(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteLine2"), DISPID(4002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionParamsDispT<T>::get_RemoteLine2(void)
{
  TOLEBOOL PVal;
  this->get_RemoteLine2((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_RemoteLine2(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteLine2"), DISPID(4002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_ArrowType1(ksArrowEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType1"), DISPID(4003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksArrowEnum __fastcall
IDimensionParamsDispT<T>::get_ArrowType1(void)
{
  ksArrowEnum PVal;
  this->get_ArrowType1((ksArrowEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_ArrowType1(ksArrowEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType1"), DISPID(4003));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_ArrowType2(ksArrowEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType2"), DISPID(4004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksArrowEnum __fastcall
IDimensionParamsDispT<T>::get_ArrowType2(void)
{
  ksArrowEnum PVal;
  this->get_ArrowType2((ksArrowEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_ArrowType2(ksArrowEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType2"), DISPID(4004));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_ArrowPos(ksDimensionArrowPosEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowPos"), DISPID(4005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionArrowPosEnum __fastcall
IDimensionParamsDispT<T>::get_ArrowPos(void)
{
  ksDimensionArrowPosEnum PVal;
  this->get_ArrowPos((ksDimensionArrowPosEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_ArrowPos(ksDimensionArrowPosEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowPos"), DISPID(4005));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_TextPos(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextPos"), DISPID(4006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDimensionParamsDispT<T>::get_TextPos(void)
{
  long PVal;
  this->get_TextPos((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_TextPos(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextPos"), DISPID(4006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_TextType(ksDimensionTextTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextType"), DISPID(4007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionTextTypeEnum __fastcall
IDimensionParamsDispT<T>::get_TextType(void)
{
  ksDimensionTextTypeEnum PVal;
  this->get_TextType((ksDimensionTextTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_TextType(ksDimensionTextTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextType"), DISPID(4007));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnLine"), DISPID(4008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionTextPosEnum __fastcall
IDimensionParamsDispT<T>::get_TextOnLine(void)
{
  ksDimensionTextPosEnum PVal;
  this->get_TextOnLine((ksDimensionTextPosEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnLine"), DISPID(4008));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_TextBase(ksDimensionBaseEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBase"), DISPID(4009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionBaseEnum __fastcall
IDimensionParamsDispT<T>::get_TextBase(void)
{
  ksDimensionBaseEnum PVal;
  this->get_TextBase((ksDimensionBaseEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_TextBase(ksDimensionBaseEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBase"), DISPID(4009));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(4010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IDimensionParamsDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum PVal;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(4010));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_ShelfAngle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfAngle"), DISPID(4011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDimensionParamsDispT<T>::get_ShelfAngle(void)
{
  double PVal;
  this->get_ShelfAngle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_ShelfAngle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfAngle"), DISPID(4011));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_ShelfLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfLength"), DISPID(4012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDimensionParamsDispT<T>::get_ShelfLength(void)
{
  double PVal;
  this->get_ShelfLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_ShelfLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfLength"), DISPID(4012));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_Gap(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Gap"), DISPID(4013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDimensionParamsDispT<T>::get_Gap(void)
{
  TOLEBOOL PVal;
  this->get_Gap((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_Gap(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Gap"), DISPID(4013));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::get_GapValue(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GapValue"), DISPID(4014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDimensionParamsDispT<T>::get_GapValue(void)
{
  long PVal;
  this->get_GapValue((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDimensionParamsDispT<T>::set_GapValue(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("GapValue"), DISPID(4014));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ILoadCombination
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E7F1FD16-B641-4264-859C-D47217DA8B04}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILoadCombinationDispT<T>::get_CompletelyLoaded(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompletelyLoaded"), DISPID(6001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILoadCombinationDispT<T>::get_CompletelyLoaded(void)
{
  TOLEBOOL Type;
  this->get_CompletelyLoaded((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILoadCombinationDispT<T>::get_LoadCombinations(TVariant* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LoadCombinations"), DISPID(6002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ILoadCombinationDispT<T>::get_LoadCombinations(void)
{
  TVariant Value;
  this->get_LoadCombinations((TVariant*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ILoadCombinationDispT<T>::get_CurrentIndex(long* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentIndex"), DISPID(6003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILoadCombinationDispT<T>::get_CurrentIndex(void)
{
  long Value;
  this->get_CurrentIndex((long*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ILoadCombinationDispT<T>::Create(BSTR CombinationName/*[in]*/, long* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Create"), DISPID(6004));
  TAutoArgs<1> _args;
  _args[1] = CombinationName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Value /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
ILoadCombinationDispT<T>::Create(BSTR CombinationName/*[in]*/)
{
  long Value;
  this->Create(CombinationName, (long*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ILoadCombinationDispT<T>::Delete(TVariantInParam LoadCombinationIndex/*[in]*/, 
                                 TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(6005));
  TAutoArgs<1> _args;
  _args[1] = LoadCombinationIndex /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILoadCombinationDispT<T>::Delete(TVariantInParam LoadCombinationIndex/*[in]*/)
{
  TOLEBOOL Value;
  this->Delete(LoadCombinationIndex, (TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ILoadCombinationDispT<T>::Apply(TVariantInParam LoadCombinationIndex/*[in]*/, 
                                TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Apply"), DISPID(6006));
  TAutoArgs<1> _args;
  _args[1] = LoadCombinationIndex /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILoadCombinationDispT<T>::Apply(TVariantInParam LoadCombinationIndex/*[in]*/)
{
  TOLEBOOL Value;
  this->Apply(LoadCombinationIndex, (TOLEBOOL*)&Value);
  return Value;
}

// *********************************************************************//
// DispIntf:  IFrameTreesManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9019350-FF1D-4161-B41B-CD1B020ECF36}
// *********************************************************************//
template <class T> HRESULT __fastcall
IFrameTreesManagerDispT<T>::AddTab(BSTR TabCaption/*[in]*/, BSTR OcxClassID/*[in]*/, 
                                   LPDISPATCH* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddTab"), DISPID(1001));
  TAutoArgs<2> _args;
  _args[1] = TabCaption /*[VT_BSTR:0]*/;
  _args[2] = OcxClassID /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IFrameTreesManagerDispT<T>::AddTab(BSTR TabCaption/*[in]*/, BSTR OcxClassID/*[in]*/)
{
  LPDISPATCH PVal;
  this->AddTab(TabCaption, OcxClassID, (LPDISPATCH*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFrameTreesManagerDispT<T>::RemoveTab(LPDISPATCH Ocx/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveTab"), DISPID(1002));
  TAutoArgs<1> _args;
  _args[1] = Ocx /*[VT_DISPATCH:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFrameTreesManagerDispT<T>::RemoveTab(LPDISPATCH Ocx/*[in]*/)
{
  TOLEBOOL PVal;
  this->RemoveTab(Ocx, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFrameTreesManagerDispT<T>::get_ActiveTab(LPDISPATCH* Ocx/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveTab"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Ocx /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IFrameTreesManagerDispT<T>::get_ActiveTab(void)
{
  LPDISPATCH Ocx;
  this->get_ActiveTab((LPDISPATCH*)&Ocx);
  return Ocx;
}

template <class T> HRESULT __fastcall
IFrameTreesManagerDispT<T>::set_ActiveTab(LPDISPATCH Ocx/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveTab"), DISPID(1003));
  TAutoArgs<1> _args;
  _args[1] = Ocx /*[VT_DISPATCH:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFrameTreesManagerDispT<T>::get_TabsVisible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TabsVisible"), DISPID(1004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFrameTreesManagerDispT<T>::get_TabsVisible(void)
{
  TOLEBOOL PVal;
  this->get_TabsVisible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFrameTreesManagerDispT<T>::set_TabsVisible(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TabsVisible"), DISPID(1004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IAttrTypeMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5378690E-A57D-473F-84DC-CA508B34FAD7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAttrTypeMngDispT<T>::CreateAttrType(TVariantInParam Libname/*[in]*/, 
                                     Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateAttrType"), DISPID(500));
  TAutoArgs<1> _args;
  _args[1] = Libname /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttributeType**)Res /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributeTypePtr __fastcall
IAttrTypeMngDispT<T>::CreateAttrType(TVariantInParam Libname/*[in]*/)
{
  Kompasltapi7_tlb::IAttributeTypePtr Res;
  this->CreateAttrType(Libname, (Kompasltapi7_tlb::IAttributeTypePtr*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttrTypeMngDispT<T>::GetAttrType(double AttrID/*[in]*/, TVariantInParam Libname/*[in]*/, 
                                  Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAttrType"), DISPID(501));
  TAutoArgs<2> _args;
  _args[1] = AttrID /*[VT_R8:0]*/;
  _args[2] = Libname /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttributeType**)Res /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributeTypePtr __fastcall
IAttrTypeMngDispT<T>::GetAttrType(double AttrID/*[in]*/, TVariantInParam Libname/*[in]*/)
{
  Kompasltapi7_tlb::IAttributeTypePtr Res;
  this->GetAttrType(AttrID, Libname, (Kompasltapi7_tlb::IAttributeTypePtr*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttrTypeMngDispT<T>::ChoiceAttrTypes(OLE_HANDLE HWnd/*[in]*/, TVariantInParam Libname/*[in]*/, 
                                      Kompasltapi7_tlb::IAttributeTypePtr* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChoiceAttrTypes"), DISPID(502));
  TAutoArgs<2> _args;
  _args[1] = HWnd /*[VT_INT:0]*/;
  _args[2] = Libname /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAttributeType**)Res /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAttributeTypePtr __fastcall
IAttrTypeMngDispT<T>::ChoiceAttrTypes(OLE_HANDLE HWnd/*[in]*/, TVariantInParam Libname/*[in]*/)
{
  Kompasltapi7_tlb::IAttributeTypePtr Res;
  this->ChoiceAttrTypes(HWnd, Libname, (Kompasltapi7_tlb::IAttributeTypePtr*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IAttrTypeMngDispT<T>::GetAttrTypes(TVariantInParam Libname/*[in]*/, TVariant* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAttrTypes"), DISPID(503));
  TAutoArgs<1> _args;
  _args[1] = Libname /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IAttrTypeMngDispT<T>::GetAttrTypes(TVariantInParam Libname/*[in]*/)
{
  TVariant Res;
  this->GetAttrTypes(Libname, (TVariant*)&Res);
  return Res;
}

// *********************************************************************//
// DispIntf:  IPrintJob_OutputParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CB083231-EE0D-4596-B04D-E6A020926557}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_NumberOfCopies(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NumberOfCopies"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_NumberOfCopies(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NumberOfCopies"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJob_OutputParametersDispT<T>::get_NumberOfCopies(void)
{
  long PVal;
  this->get_NumberOfCopies((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_CollateCopies(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CollateCopies"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_CollateCopies(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CollateCopies"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_OutputParametersDispT<T>::get_CollateCopies(void)
{
  TOLEBOOL PVal;
  this->get_CollateCopies((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_PlotToFile(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PlotToFile"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_PlotToFile(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PlotToFile"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_OutputParametersDispT<T>::get_PlotToFile(void)
{
  TOLEBOOL PVal;
  this->get_PlotToFile((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_Color(ksOutputColorTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_Color(ksOutputColorTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksOutputColorTypeEnum __fastcall
IPrintJob_OutputParametersDispT<T>::get_Color(void)
{
  ksOutputColorTypeEnum PVal;
  this->get_Color((ksOutputColorTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_OnlyThinLines(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OnlyThinLines"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_OnlyThinLines(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OnlyThinLines"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_OutputParametersDispT<T>::get_OnlyThinLines(void)
{
  TOLEBOOL PVal;
  this->get_OnlyThinLines((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_AlternativeFillingOutput(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AlternativeFillingOutput"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_AlternativeFillingOutput(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AlternativeFillingOutput"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_OutputParametersDispT<T>::get_AlternativeFillingOutput(void)
{
  TOLEBOOL PVal;
  this->get_AlternativeFillingOutput((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_AccuracyModelOutput(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AccuracyModelOutput"), DISPID(2007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_AccuracyModelOutput(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AccuracyModelOutput"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJob_OutputParametersDispT<T>::get_AccuracyModelOutput(void)
{
  long PVal;
  this->get_AccuracyModelOutput((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_PageOutputOrder(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PageOutputOrder"), DISPID(2008));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_PageOutputOrder(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PageOutputOrder"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJob_OutputParametersDispT<T>::get_PageOutputOrder(void)
{
  long PVal;
  this->get_PageOutputOrder((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_DefaultScale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultScale"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_DefaultScale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultScale"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPrintJob_OutputParametersDispT<T>::get_DefaultScale(void)
{
  double PVal;
  this->get_DefaultScale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_AutoScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoScale"), DISPID(2010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_AutoScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoScale"), DISPID(2010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_OutputParametersDispT<T>::get_AutoScale(void)
{
  TOLEBOOL PVal;
  this->get_AutoScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_UseCatchSpacing(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseCatchSpacing"), DISPID(2011));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_UseCatchSpacing(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseCatchSpacing"), DISPID(2011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_OutputParametersDispT<T>::get_UseCatchSpacing(void)
{
  TOLEBOOL PVal;
  this->get_UseCatchSpacing((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_CatchSpacing(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CatchSpacing"), DISPID(2012));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_CatchSpacing(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CatchSpacing"), DISPID(2012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJob_OutputParametersDispT<T>::get_CatchSpacing(void)
{
  long PVal;
  this->get_CatchSpacing((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_UseHooking(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseHooking"), DISPID(2013));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_UseHooking(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseHooking"), DISPID(2013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPrintJob_OutputParametersDispT<T>::get_UseHooking(void)
{
  TOLEBOOL PVal;
  this->get_UseHooking((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::set_Hooking(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hooking"), DISPID(2014));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPrintJob_OutputParametersDispT<T>::get_Hooking(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hooking"), DISPID(2014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPrintJob_OutputParametersDispT<T>::get_Hooking(void)
{
  long PVal;
  this->get_Hooking((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIProperty
// Interface: IProperty
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_Id(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Id(PVal);
}

template <class T> double __fastcall
TCOMIPropertyT<T>::get_Id(void)
{
  double PVal;
  OLECHECK(this->get_Id((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_DataType(ksPropertyTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DataType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_DataType(ksPropertyTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DataType(PVal);
}

template <class T> ksPropertyTypeEnum __fastcall
TCOMIPropertyT<T>::get_DataType(void)
{
  ksPropertyTypeEnum PVal;
  OLECHECK(this->get_DataType((ksPropertyTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MinValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertyT<T>::get_MinValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MinValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MaxValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertyT<T>::get_MaxValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MaxValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/, 
                                 TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetValueRange(MinVal, MaxVal, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_ReadOnly(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_SignificantDigitsCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_SignificantDigitsCount(Result);
}

template <class T> long __fastcall
TCOMIPropertyT<T>::get_SignificantDigitsCount(void)
{
  long Result;
  OLECHECK(this->get_SignificantDigitsCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_SignificantDigitsCount(long Result/*[in]*/)
{
  return (*this)->set_SignificantDigitsCount(Result);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_SourceName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_SourceName(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyT<T>::get_SourceName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_SourceName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  return (*this)->set_Comment(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Comment(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyT<T>::get_Comment(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Comment((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_PropertyTypeId(BSTR PVal/*[in]*/)
{
  return (*this)->set_PropertyTypeId(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_PropertyTypeId(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_PropertyTypeId(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyT<T>::get_PropertyTypeId(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_PropertyTypeId((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_UnitId(BSTR PVal/*[in]*/)
{
  return (*this)->set_UnitId(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_UnitId(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_UnitId(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyT<T>::get_UnitId(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_UnitId((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/, 
                            TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->ViewEdit(Parent, ReadOnly, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->ViewEdit(Parent, ReadOnly, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyT<T>::Delete(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->_Update(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyT<T>::_Update(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->_Update((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_UseListVal(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_UseListVal(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyT<T>::get_UseListVal(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_UseListVal((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_UseListVal(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_UseListVal(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::get_ListVal(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_ListVal(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertyT<T>::get_ListVal(void)
{
  TVariant PVal;
  OLECHECK(this->get_ListVal((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyT<T>::set_ListVal(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_ListVal(PVal);
}

// *********************************************************************//
// DispIntf:  IProperty
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C389F80D-228D-4FB1-B183-959AEA0B5906}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_Id(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPropertyDispT<T>::get_Id(void)
{
  double PVal;
  this->get_Id((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_DataType(ksPropertyTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DataType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_DataType(ksPropertyTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DataType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPropertyTypeEnum __fastcall
IPropertyDispT<T>::get_DataType(void)
{
  ksPropertyTypeEnum PVal;
  this->get_DataType((ksPropertyTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MinValue"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyDispT<T>::get_MinValue(void)
{
  TVariant PVal;
  this->get_MinValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MaxValue"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyDispT<T>::get_MaxValue(void)
{
  TVariant PVal;
  this->get_MaxValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/, 
                                 TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetValueRange"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = MinVal /*[VT_VARIANT:0]*/;
  _args[2] = MaxVal /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_SignificantDigitsCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignificantDigitsCount"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyDispT<T>::get_SignificantDigitsCount(void)
{
  long Result;
  this->get_SignificantDigitsCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_SignificantDigitsCount(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignificantDigitsCount"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_SourceName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceName"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyDispT<T>::get_SourceName(void)
{
  BSTR PVal;
  this->get_SourceName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyDispT<T>::get_Comment(void)
{
  BSTR PVal;
  this->get_Comment((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_PropertyTypeId(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PropertyTypeId"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_PropertyTypeId(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PropertyTypeId"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyDispT<T>::get_PropertyTypeId(void)
{
  BSTR PVal;
  this->get_PropertyTypeId((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_UnitId(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnitId"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_UnitId(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnitId"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyDispT<T>::get_UnitId(void)
{
  BSTR PVal;
  this->get_UnitId((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/, 
                            TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewEdit"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = Parent /*[VT_INT:0]*/;
  _args[2] = ReadOnly /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyDispT<T>::ViewEdit(OLE_HANDLE Parent/*[in]*/, TOLEBOOL ReadOnly/*[in]*/)
{
  TOLEBOOL Res;
  this->ViewEdit(Parent, ReadOnly, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_UseListVal(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseListVal"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyDispT<T>::get_UseListVal(void)
{
  TOLEBOOL PVal;
  this->get_UseListVal((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_UseListVal(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseListVal"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_ListVal(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ListVal"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyDispT<T>::get_ListVal(void)
{
  TVariant PVal;
  this->get_ListVal((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::set_ListVal(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ListVal"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyMng
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FD515235-4DBA-4F81-8D5C-6FE87C834562}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyMngDispT<T>::get_PropertyCount(TVariantInParam Libname/*[in]*/, long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PropertyCount"), DISPID(1500));
  TAutoArgs<1> _args;
  _args[1] = Libname /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyMngDispT<T>::get_PropertyCount(TVariantInParam Libname/*[in]*/)
{
  long Count;
  this->get_PropertyCount(Libname, (long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyMngDispT<T>::GetProperty(TVariantInParam Libname/*[in]*/, TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IPropertyPtr* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetProperty"), DISPID(1501));
  TAutoArgs<2> _args;
  _args[1] = Libname /*[VT_VARIANT:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProperty**)Res /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyPtr __fastcall
IPropertyMngDispT<T>::GetProperty(TVariantInParam Libname/*[in]*/, TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyPtr Res;
  this->GetProperty(Libname, Index, (Kompasltapi7_tlb::IPropertyPtr*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IPropertyMngDispT<T>::GetProperties(TVariantInParam Libname/*[in]*/, TVariant* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetProperties"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = Libname /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyMngDispT<T>::GetProperties(TVariantInParam Libname/*[in]*/)
{
  TVariant Res;
  this->GetProperties(Libname, (TVariant*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IPropertyMngDispT<T>::AddProperty(TVariantInParam Libname/*[in]*/, TVariantInParam Val/*[in]*/, 
                                  Kompasltapi7_tlb::IPropertyPtr* ColVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddProperty"), DISPID(1503));
  TAutoArgs<2> _args;
  _args[1] = Libname /*[VT_VARIANT:0]*/;
  _args[2] = Val /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IProperty**)ColVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPropertyPtr __fastcall
IPropertyMngDispT<T>::AddProperty(TVariantInParam Libname/*[in]*/, TVariantInParam Val/*[in]*/)
{
  Kompasltapi7_tlb::IPropertyPtr ColVal;
  this->AddProperty(Libname, Val, (Kompasltapi7_tlb::IPropertyPtr*)&ColVal);
  return ColVal;
}

template <class T> HRESULT __fastcall
IPropertyMngDispT<T>::RemoveProperty(TVariantInParam Libname/*[in]*/, TVariantInParam Val/*[in]*/, 
                                     TOLEBOOL* ColVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveProperty"), DISPID(1504));
  TAutoArgs<2> _args;
  _args[1] = Libname /*[VT_VARIANT:0]*/;
  _args[2] = Val /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(ColVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyMngDispT<T>::RemoveProperty(TVariantInParam Libname/*[in]*/, TVariantInParam Val/*[in]*/)
{
  TOLEBOOL ColVal;
  this->RemoveProperty(Libname, Val, (TOLEBOOL*)&ColVal);
  return ColVal;
}

// *********************************************************************//
// DispIntf:  IPropertyKeeper
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AE7377CB-28C6-468E-B667-73117BCDC300}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyKeeperDispT<T>::GetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                          TVariant* Value/*[out]*/, TOLEBOOL BaseUnit/*[in]*/, 
                                          TOLEBOOL* FromSource/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPropertyValue"), DISPID(16000));
  TAutoArgs<4> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IProperty*)Property /*[VT_USERDEFINED:1]*/;
  _args[2] = Value /*[VT_VARIANT:1]*/;
  _args[3] = BaseUnit /*[VT_BOOL:0]*/;
  _args[4] = FromSource /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyKeeperDispT<T>::GetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                          TVariant* Value/*[out]*/, TOLEBOOL BaseUnit/*[in]*/, 
                                          TOLEBOOL* FromSource/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPropertyValue(Property, Value, BaseUnit, FromSource, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPropertyKeeperDispT<T>::SetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                          TVariantInParam Value/*[in]*/, TOLEBOOL BaseUnit/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPropertyValue"), DISPID(16001));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IProperty*)Property /*[VT_USERDEFINED:1]*/;
  _args[2] = Value /*[VT_VARIANT:0]*/;
  _args[3] = BaseUnit /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyKeeperDispT<T>::SetPropertyValue(Kompasltapi7_tlb::IPropertyPtr Property/*[in]*/, 
                                          TVariantInParam Value/*[in]*/, TOLEBOOL BaseUnit/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPropertyValue(Property, Value, BaseUnit, (TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMIReportProcess
// Interface: IReportProcess
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIReportProcessT<T>::get_StylesCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_StylesCount(Count);
}

template <class T> long __fastcall
TCOMIReportProcessT<T>::get_StylesCount(void)
{
  long Count;
  OLECHECK(this->get_StylesCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIReportProcessT<T>::set_ActiveStyleIndex(TVariantInParam Index/*[in]*/)
{
  return (*this)->set_ActiveStyleIndex(Index);
}

template <class T> HRESULT __fastcall
TCOMIReportProcessT<T>::get_ActiveStyleIndex(TVariant* Index/*[out,retval]*/)
{
  return (*this)->get_ActiveStyleIndex(Index);
}

template <class T> TVariant __fastcall
TCOMIReportProcessT<T>::get_ActiveStyleIndex(void)
{
  TVariant Index;
  OLECHECK(this->get_ActiveStyleIndex((TVariant*)&Index));
  return Index;
}

template <class T> HRESULT __fastcall
TCOMIReportProcessT<T>::get_ReportFilter(Kompasltapi7_tlb::IReportFilterPtr* Filters/*[out,retval]*/)
{
  return (*this)->get_ReportFilter(Filters);
}

template <class T> Kompasltapi7_tlb::IReportFilterPtr __fastcall
TCOMIReportProcessT<T>::get_ReportFilter(void)
{
  Kompasltapi7_tlb::IReportFilterPtr Filters;
  OLECHECK(this->get_ReportFilter((Kompasltapi7_tlb::IReportFilterPtr*)&Filters));
  return Filters;
}

template <class T> HRESULT __fastcall
TCOMIReportProcessT<T>::set_ReportFilterUse(TOLEBOOL Index/*[in]*/)
{
  return (*this)->set_ReportFilterUse(Index);
}

template <class T> HRESULT __fastcall
TCOMIReportProcessT<T>::get_ReportFilterUse(TOLEBOOL* Index/*[out,retval]*/)
{
  return (*this)->get_ReportFilterUse(Index);
}

template <class T> TOLEBOOL __fastcall
TCOMIReportProcessT<T>::get_ReportFilterUse(void)
{
  TOLEBOOL Index;
  OLECHECK(this->get_ReportFilterUse((TOLEBOOL*)&Index));
  return Index;
}

// *********************************************************************//
// DispIntf:  IReportProcess
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {29BBF2B8-A2E2-4E7D-BF04-0BB79C89EF35}
// *********************************************************************//
template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_StylesCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StylesCount"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IReportProcessDispT<T>::get_StylesCount(void)
{
  long Count;
  this->get_StylesCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::set_ActiveStyleIndex(TVariantInParam Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveStyleIndex"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_ActiveStyleIndex(TVariant* Index/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ActiveStyleIndex"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Index /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IReportProcessDispT<T>::get_ActiveStyleIndex(void)
{
  TVariant Index;
  this->get_ActiveStyleIndex((TVariant*)&Index);
  return Index;
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_ReportFilter(Kompasltapi7_tlb::IReportFilterPtr* Filters/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReportFilter"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IReportFilter**)Filters /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IReportFilterPtr __fastcall
IReportProcessDispT<T>::get_ReportFilter(void)
{
  Kompasltapi7_tlb::IReportFilterPtr Filters;
  this->get_ReportFilter((Kompasltapi7_tlb::IReportFilterPtr*)&Filters);
  return Filters;
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::set_ReportFilterUse(TOLEBOOL Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReportFilterUse"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_ReportFilterUse(TOLEBOOL* Index/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReportFilterUse"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Index /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IReportProcessDispT<T>::get_ReportFilterUse(void)
{
  TOLEBOOL Index;
  this->get_ReportFilterUse((TOLEBOOL*)&Index);
  return Index;
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IReportProcessDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IReportProcessDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IReportProcessDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IReportProcessDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IReportProcessDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IReportFilter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D111C31-1629-4A0B-89E5-8461CDFA2157}
// *********************************************************************//
template <class T> HRESULT __fastcall
IReportFilterDispT<T>::get_ConditionCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConditionCount"), DISPID(100));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IReportFilterDispT<T>::get_ConditionCount(void)
{
  long Count;
  this->get_ConditionCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IReportFilterDispT<T>::GetCondition(long Index/*[in]*/, TVariant* UniqId/*[out]*/, 
                                    ksReportFiltersTypeEnum* Type/*[out]*/, 
                                    TVariant* Val/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCondition"), DISPID(101));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = UniqId /*[VT_VARIANT:1]*/;
  _args[3] = (int*)Type /*[VT_USERDEFINED:1]*/;
  _args[4] = Val /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IReportFilterDispT<T>::GetCondition(long Index/*[in]*/, TVariant* UniqId/*[out]*/, 
                                    ksReportFiltersTypeEnum* Type/*[out]*/, 
                                    TVariant* Val/*[out]*/)
{
  TOLEBOOL Result;
  this->GetCondition(Index, UniqId, Type, Val, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IReportFilterDispT<T>::SetCondition(long Index/*[in]*/, TVariantInParam UniqId/*[in]*/, 
                                    ksReportFiltersTypeEnum Type/*[in]*/, 
                                    TVariantInParam Val/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCondition"), DISPID(102));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = UniqId /*[VT_VARIANT:0]*/;
  _args[3] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[4] = Val /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IReportFilterDispT<T>::SetCondition(long Index/*[in]*/, TVariantInParam UniqId/*[in]*/, 
                                    ksReportFiltersTypeEnum Type/*[in]*/, 
                                    TVariantInParam Val/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCondition(Index, UniqId, Type, Val, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IReportFilterDispT<T>::RemoveCondition(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoveCondition"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IReportFilterDispT<T>::RemoveCondition(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->RemoveCondition(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IReportFilterDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IReportFilterDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// DispIntf:  IPropertyControl1
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7D2A79FF-EC54-4480-B9F3-46F75293B558}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyControl1DispT<T>::set_PredefineNumber(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("PredefineNumber"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControl1DispT<T>::get_PredefineNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PredefineNumber"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyControl1DispT<T>::get_PredefineNumber(void)
{
  long PVal;
  this->get_PredefineNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyControl1DispT<T>::set_UserMenu(OLE_HANDLE PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserMenu"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_INT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyControl1DispT<T>::get_UserMenu(OLE_HANDLE* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UserMenu"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_INT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> OLE_HANDLE __fastcall
IPropertyControl1DispT<T>::get_UserMenu(void)
{
  OLE_HANDLE PVal;
  this->get_UserMenu((OLE_HANDLE*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyEdit
// Interface: IPropertyEdit
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MinValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertyEditT<T>::get_MinValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MinValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MaxValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertyEditT<T>::get_MaxValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MaxValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetValueRange(MinVal, MaxVal, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyEditT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_WithCheck(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_WithCheck(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyEditT<T>::get_WithCheck(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_WithCheck((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::set_CheckState(CheckStateEnum PVal/*[in]*/)
{
  return (*this)->set_CheckState(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::get_CheckState(CheckStateEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_CheckState(PVal);
}

template <class T> CheckStateEnum __fastcall
TCOMIPropertyEditT<T>::get_CheckState(void)
{
  CheckStateEnum PVal;
  OLECHECK(this->get_CheckState((CheckStateEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyEditT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyEditT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> long __fastcall
TCOMIPropertyEditT<T>::get_Width(void)
{
  long PVal;
  OLECHECK(this->get_Width((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyEdit
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1D238C4C-AAD7-4374-B372-013CF7FCEDB4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MinValue"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyEditDispT<T>::get_MinValue(void)
{
  TVariant PVal;
  this->get_MinValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MaxValue"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyEditDispT<T>::get_MaxValue(void)
{
  TVariant PVal;
  this->get_MaxValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/
                                     , TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetValueRange"), DISPID(103));
  TAutoArgs<2> _args;
  _args[1] = MinVal /*[VT_VARIANT:0]*/;
  _args[2] = MaxVal /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithCheck"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithCheck"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditDispT<T>::get_WithCheck(void)
{
  TOLEBOOL PVal;
  this->get_WithCheck((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_CheckState(CheckStateEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckState"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_CheckState(CheckStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckState"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> CheckStateEnum __fastcall
IPropertyEditDispT<T>::get_CheckState(void)
{
  CheckStateEnum PVal;
  this->get_CheckState((CheckStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyEditDispT<T>::get_Width(void)
{
  long PVal;
  this->get_Width((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyEditDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyEditDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyEditDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyEditDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyEditDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyEditDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyEditDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyEditDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyEditDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyEditDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyEditDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyEditDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertySeparator
// Interface: IPropertySeparator
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertySeparatorT<T>::set_SeparatorType(SeparatorTypeEnum PVal/*[in]*/)
{
  return (*this)->set_SeparatorType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertySeparatorT<T>::get_SeparatorType(SeparatorTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SeparatorType(PVal);
}

template <class T> SeparatorTypeEnum __fastcall
TCOMIPropertySeparatorT<T>::get_SeparatorType(void)
{
  SeparatorTypeEnum PVal;
  OLECHECK(this->get_SeparatorType((SeparatorTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySeparatorT<T>::SetImage(TVariantInParam IdBmp/*[in]*/, 
                                     TVariantInParam HInstance/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetImage(IdBmp, HInstance, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertySeparatorT<T>::SetImage(TVariantInParam IdBmp/*[in]*/, 
                                     TVariantInParam HInstance/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetImage(IdBmp, HInstance, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertySeparator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4504EFA0-D059-4FD4-B725-FA264D190869}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_SeparatorType(SeparatorTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SeparatorType"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_SeparatorType(SeparatorTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SeparatorType"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> SeparatorTypeEnum __fastcall
IPropertySeparatorDispT<T>::get_SeparatorType(void)
{
  SeparatorTypeEnum PVal;
  this->get_SeparatorType((SeparatorTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::SetImage(TVariantInParam IdBmp/*[in]*/, 
                                     TVariantInParam HInstance/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetImage"), DISPID(102));
  TAutoArgs<2> _args;
  _args[1] = IdBmp /*[VT_VARIANT:0]*/;
  _args[2] = HInstance /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySeparatorDispT<T>::SetImage(TVariantInParam IdBmp/*[in]*/, 
                                     TVariantInParam HInstance/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetImage(IdBmp, HInstance, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySeparatorDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySeparatorDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertySeparatorDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySeparatorDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySeparatorDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertySeparatorDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertySeparatorDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySeparatorDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySeparatorDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertySeparatorDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertySeparatorDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertySeparatorDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertySeparatorDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySeparatorDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyList
// Interface: IPropertyList
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MinValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertyListT<T>::get_MinValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MinValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MaxValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertyListT<T>::get_MaxValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MaxValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/, 
                                     TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetValueRange(MinVal, MaxVal, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyListT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_WithCheck(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_WithCheck(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyListT<T>::get_WithCheck(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_WithCheck((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::set_CheckState(CheckStateEnum PVal/*[in]*/)
{
  return (*this)->set_CheckState(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_CheckState(CheckStateEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_CheckState(PVal);
}

template <class T> CheckStateEnum __fastcall
TCOMIPropertyListT<T>::get_CheckState(void)
{
  CheckStateEnum PVal;
  OLECHECK(this->get_CheckState((CheckStateEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyListT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> long __fastcall
TCOMIPropertyListT<T>::get_Width(void)
{
  long PVal;
  OLECHECK(this->get_Width((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::ClearList(void)
{
  return (*this)->ClearList();
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::Add(TVariantInParam NewVal/*[in]*/)
{
  return (*this)->Add(NewVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::set_Sort(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Sort(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_Sort(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Sort(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyListT<T>::get_Sort(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Sort((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->Find(Val, PVal);
}

template <class T> long __fastcall
TCOMIPropertyListT<T>::Find(TVariantInParam Val/*[in]*/)
{
  long PVal;
  OLECHECK(this->Find(Val, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::SetCurrentByIndex(long Val/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetCurrentByIndex(Val, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyListT<T>::SetCurrentByIndex(long Val/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetCurrentByIndex(Val, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::set_Precision(double PVal/*[in]*/)
{
  return (*this)->set_Precision(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_Precision(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Precision(PVal);
}

template <class T> double __fastcall
TCOMIPropertyListT<T>::get_Precision(void)
{
  double PVal;
  OLECHECK(this->get_Precision((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyListT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOMIPropertyListT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

// *********************************************************************//
// DispIntf:  IPropertyList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8F53E9D5-07AD-412E-8C2A-509BC633C4FF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MinValue"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyListDispT<T>::get_MinValue(void)
{
  TVariant PVal;
  this->get_MinValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MaxValue"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyListDispT<T>::get_MaxValue(void)
{
  TVariant PVal;
  this->get_MaxValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/
                                     , TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetValueRange"), DISPID(103));
  TAutoArgs<2> _args;
  _args[1] = MinVal /*[VT_VARIANT:0]*/;
  _args[2] = MaxVal /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyListDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithCheck"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithCheck"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyListDispT<T>::get_WithCheck(void)
{
  TOLEBOOL PVal;
  this->get_WithCheck((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_CheckState(CheckStateEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckState"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_CheckState(CheckStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckState"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> CheckStateEnum __fastcall
IPropertyListDispT<T>::get_CheckState(void)
{
  CheckStateEnum PVal;
  this->get_CheckState((CheckStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyListDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyListDispT<T>::get_Width(void)
{
  long PVal;
  this->get_Width((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::ClearList()
{
  _TDispID _dispid(*this, OLETEXT("ClearList"), DISPID(108));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::Add(TVariantInParam NewVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(109));
  TAutoArgs<1> _args;
  _args[1] = NewVal /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Sort(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sort"), DISPID(110));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Sort(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sort"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyListDispT<T>::get_Sort(void)
{
  TOLEBOOL PVal;
  this->get_Sort((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Find"), DISPID(111));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IPropertyListDispT<T>::Find(TVariantInParam Val/*[in]*/)
{
  long PVal;
  this->Find(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::SetCurrentByIndex(long Val/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCurrentByIndex"), DISPID(112));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyListDispT<T>::SetCurrentByIndex(long Val/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetCurrentByIndex(Val, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Precision(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Precision"), DISPID(113));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Precision(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Precision"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPropertyListDispT<T>::get_Precision(void)
{
  double PVal;
  this->get_Precision((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(114));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyListDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyListDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyListDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyListDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyListDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyListDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyListDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyListDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyListDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyListDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyListDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyListDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyListDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyListDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyListDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyCheckBox
// Interface: IPropertyCheckBox
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyCheckBoxT<T>::SetCustomBitmaps(TVariantInParam IdUnchecked/*[in]*/, 
                                            TVariantInParam IdChecked/*[in]*/, 
                                            TVariantInParam IdIndeterminate/*[in]*/, 
                                            TVariantInParam HInstance/*[in]*/)
{
  return (*this)->SetCustomBitmaps(IdUnchecked, IdChecked, IdIndeterminate, HInstance);
}

// *********************************************************************//
// DispIntf:  IPropertyCheckBox
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9205277D-B480-4AF7-B660-CCDC653F6453}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::SetCustomBitmaps(TVariantInParam IdUnchecked/*[in]*/, 
                                            TVariantInParam IdChecked/*[in]*/, 
                                            TVariantInParam IdIndeterminate/*[in]*/, 
                                            TVariantInParam HInstance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCustomBitmaps"), DISPID(101));
  TAutoArgs<4> _args;
  _args[1] = IdUnchecked /*[VT_VARIANT:0]*/;
  _args[2] = IdChecked /*[VT_VARIANT:0]*/;
  _args[3] = IdIndeterminate /*[VT_VARIANT:0]*/;
  _args[4] = HInstance /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyCheckBoxDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyCheckBoxDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyCheckBoxDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyCheckBoxDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyCheckBoxDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyCheckBoxDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyCheckBoxDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyCheckBoxDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyCheckBoxDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyCheckBoxDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyCheckBoxDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyCheckBoxDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyCheckBoxDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyCheckBoxDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyMultiButton
// Interface: IPropertyMultiButton
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::set_ButtonsType(ButtonTypeEnum PVal/*[in]*/)
{
  return (*this)->set_ButtonsType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonsType(ButtonTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ButtonsType(PVal);
}

template <class T> ButtonTypeEnum __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonsType(void)
{
  ButtonTypeEnum PVal;
  OLECHECK(this->get_ButtonsType((ButtonTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::set_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ButtonChecked(BtnID, PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ButtonChecked(BtnID, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonChecked(long BtnID/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ButtonChecked(BtnID, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::set_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ButtonEnable(BtnID, PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ButtonEnable(BtnID, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonEnable(long BtnID/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ButtonEnable(BtnID, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                        long InsertAt/*[in,def,opt]*/)
{
  return (*this)->AddButton(BtnID, Bmp, InsertAt);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  return (*this)->set_ResModule(HInstance);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  return (*this)->get_ResModule(HInstance);
}

template <class T> TVariant __fastcall
TCOMIPropertyMultiButtonT<T>::get_ResModule(void)
{
  TVariant HInstance;
  OLECHECK(this->get_ResModule((TVariant*)&HInstance));
  return HInstance;
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/)
{
  return (*this)->set_ButtonTips(BtnID, PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ButtonTips(BtnID, PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonTips(long BtnID/*[in]*/)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ButtonTips(BtnID, (BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/)
{
  return (*this)->set_ButtonHint(BtnID, PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ButtonHint(BtnID, PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyMultiButtonT<T>::get_ButtonHint(long BtnID/*[in]*/)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ButtonHint(BtnID, (BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::set_NextCommand(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_NextCommand(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyMultiButtonT<T>::get_NextCommand(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_NextCommand(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyMultiButtonT<T>::get_NextCommand(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_NextCommand((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyMultiButton
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3920A0BE-0628-47D5-B0F1-1DFEB77964BC}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_ButtonsType(ButtonTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonsType"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonsType(ButtonTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonsType"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ButtonTypeEnum __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonsType(void)
{
  ButtonTypeEnum PVal;
  this->get_ButtonsType((ButtonTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonChecked"), DISPID(102));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonChecked"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonChecked(long BtnID/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_ButtonChecked(BtnID, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonEnable"), DISPID(103));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonEnable"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonEnable(long BtnID/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_ButtonEnable(BtnID, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                        long InsertAt/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddButton"), DISPID(104));
  TAutoArgs<3> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = Bmp /*[VT_VARIANT:0]*/;
  _args[3] = InsertAt /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = HInstance /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HInstance /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyMultiButtonDispT<T>::get_ResModule(void)
{
  TVariant HInstance;
  this->get_ResModule((TVariant*)&HInstance);
  return HInstance;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonTips"), DISPID(106));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonTips"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonTips(long BtnID/*[in]*/)
{
  BSTR PVal;
  this->get_ButtonTips(BtnID, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonHint"), DISPID(107));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonHint"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyMultiButtonDispT<T>::get_ButtonHint(long BtnID/*[in]*/)
{
  BSTR PVal;
  this->get_ButtonHint(BtnID, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_NextCommand(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NextCommand"), DISPID(108));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_NextCommand(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NextCommand"), DISPID(108));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyMultiButtonDispT<T>::get_NextCommand(void)
{
  TOLEBOOL PVal;
  this->get_NextCommand((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyMultiButtonDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyMultiButtonDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyMultiButtonDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyMultiButtonDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyMultiButtonDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyMultiButtonDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyMultiButtonDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyMultiButtonDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyMultiButtonDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyMultiButtonDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyMultiButtonDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyMultiButtonDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyMultiButtonDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyMultiButtonDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertySlideBox
// Interface: IPropertySlideBox
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  return (*this)->set_ResModule(HInstance);
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  return (*this)->get_ResModule(HInstance);
}

template <class T> TVariant __fastcall
TCOMIPropertySlideBoxT<T>::get_ResModule(void)
{
  TVariant HInstance;
  OLECHECK(this->get_ResModule((TVariant*)&HInstance));
  return HInstance;
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::set_SlideType(SlideTypeEnum Type/*[in]*/)
{
  return (*this)->set_SlideType(Type);
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::get_SlideType(SlideTypeEnum* Type/*[out,retval]*/)
{
  return (*this)->get_SlideType(Type);
}

template <class T> SlideTypeEnum __fastcall
TCOMIPropertySlideBoxT<T>::get_SlideType(void)
{
  SlideTypeEnum Type;
  OLECHECK(this->get_SlideType((SlideTypeEnum*)&Type));
  return Type;
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::set_DrawingSlide(TVariantInParam Slide/*[in]*/)
{
  return (*this)->set_DrawingSlide(Slide);
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::get_DrawingSlide(TVariant* Slide/*[out,retval]*/)
{
  return (*this)->get_DrawingSlide(Slide);
}

template <class T> TVariant __fastcall
TCOMIPropertySlideBoxT<T>::get_DrawingSlide(void)
{
  TVariant Slide;
  OLECHECK(this->get_DrawingSlide((TVariant*)&Slide));
  return Slide;
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::set_Width(long Width/*[in]*/)
{
  return (*this)->set_Width(Width);
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::get_Width(long* Width/*[out,retval]*/)
{
  return (*this)->get_Width(Width);
}

template <class T> long __fastcall
TCOMIPropertySlideBoxT<T>::get_Width(void)
{
  long Width;
  OLECHECK(this->get_Width((long*)&Width));
  return Width;
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::set_Height(long Height/*[in]*/)
{
  return (*this)->set_Height(Height);
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::get_Height(long* Height/*[out,retval]*/)
{
  return (*this)->get_Height(Height);
}

template <class T> long __fastcall
TCOMIPropertySlideBoxT<T>::get_Height(void)
{
  long Height;
  OLECHECK(this->get_Height((long*)&Height));
  return Height;
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::set_CheckBoxVisibility(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CheckBoxVisibility(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::get_CheckBoxVisibility(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CheckBoxVisibility(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertySlideBoxT<T>::get_CheckBoxVisibility(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CheckBoxVisibility((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySlideBoxT<T>::UpdateParam(void)
{
  return (*this)->UpdateParam();
}

// *********************************************************************//
// DispIntf:  IPropertySlideBox
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E1DB38CD-A6D5-44B8-9AD0-0056B87924DD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = HInstance /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HInstance /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertySlideBoxDispT<T>::get_ResModule(void)
{
  TVariant HInstance;
  this->get_ResModule((TVariant*)&HInstance);
  return HInstance;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_SlideType(SlideTypeEnum Type/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SlideType"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_SlideType(SlideTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SlideType"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> SlideTypeEnum __fastcall
IPropertySlideBoxDispT<T>::get_SlideType(void)
{
  SlideTypeEnum Type;
  this->get_SlideType((SlideTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_DrawingSlide(TVariantInParam Slide/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingSlide"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = Slide /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_DrawingSlide(TVariant* Slide/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingSlide"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Slide /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertySlideBoxDispT<T>::get_DrawingSlide(void)
{
  TVariant Slide;
  this->get_DrawingSlide((TVariant*)&Slide);
  return Slide;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Width(long Width/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = Width /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Width(long* Width/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Width /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySlideBoxDispT<T>::get_Width(void)
{
  long Width;
  this->get_Width((long*)&Width);
  return Width;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Height(long Height/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = Height /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Height(long* Height/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Height /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySlideBoxDispT<T>::get_Height(void)
{
  long Height;
  this->get_Height((long*)&Height);
  return Height;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_CheckBoxVisibility(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckBoxVisibility"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_CheckBoxVisibility(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckBoxVisibility"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySlideBoxDispT<T>::get_CheckBoxVisibility(void)
{
  TOLEBOOL PVal;
  this->get_CheckBoxVisibility((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::UpdateParam()
{
  _TDispID _dispid(*this, OLETEXT("UpdateParam"), DISPID(107));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySlideBoxDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySlideBoxDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertySlideBoxDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySlideBoxDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySlideBoxDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertySlideBoxDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertySlideBoxDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySlideBoxDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySlideBoxDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertySlideBoxDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertySlideBoxDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertySlideBoxDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertySlideBoxDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySlideBoxDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyUserControl
// Interface: IPropertyUserControl
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyUserControlT<T>::set_Width(long Width/*[in]*/)
{
  return (*this)->set_Width(Width);
}

template <class T> HRESULT __fastcall
TCOMIPropertyUserControlT<T>::get_Width(long* Width/*[out,retval]*/)
{
  return (*this)->get_Width(Width);
}

template <class T> long __fastcall
TCOMIPropertyUserControlT<T>::get_Width(void)
{
  long Width;
  OLECHECK(this->get_Width((long*)&Width));
  return Width;
}

template <class T> HRESULT __fastcall
TCOMIPropertyUserControlT<T>::set_Height(long Height/*[in]*/)
{
  return (*this)->set_Height(Height);
}

template <class T> HRESULT __fastcall
TCOMIPropertyUserControlT<T>::get_Height(long* Height/*[out,retval]*/)
{
  return (*this)->get_Height(Height);
}

template <class T> long __fastcall
TCOMIPropertyUserControlT<T>::get_Height(void)
{
  long Height;
  OLECHECK(this->get_Height((long*)&Height));
  return Height;
}

template <class T> HRESULT __fastcall
TCOMIPropertyUserControlT<T>::SetOCXControl(BSTR ProgID/*[in]*/)
{
  return (*this)->SetOCXControl(ProgID);
}

// *********************************************************************//
// DispIntf:  IPropertyUserControl
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A902C6C-A030-4F37-A089-91505BAEE466}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Width(long Width/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = Width /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Width(long* Width/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Width /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyUserControlDispT<T>::get_Width(void)
{
  long Width;
  this->get_Width((long*)&Width);
  return Width;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Height(long Height/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = Height /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Height(long* Height/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Height /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyUserControlDispT<T>::get_Height(void)
{
  long Height;
  this->get_Height((long*)&Height);
  return Height;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::SetOCXControl(BSTR ProgID/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetOCXControl"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = ProgID /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyUserControlDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyUserControlDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyUserControlDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyUserControlDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyUserControlDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyUserControlDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyUserControlDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyUserControlDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyUserControlDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyUserControlDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyUserControlDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyUserControlDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyUserControlDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyUserControlDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyGrid
// Interface: IPropertyGrid
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_ColumnCount(long Count/*[in]*/)
{
  return (*this)->set_ColumnCount(Count);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_ColumnCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_ColumnCount(Count);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_ColumnCount(void)
{
  long Count;
  OLECHECK(this->get_ColumnCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_RowCount(long Count/*[in]*/)
{
  return (*this)->set_RowCount(Count);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_RowCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_RowCount(Count);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_RowCount(void)
{
  long Count;
  OLECHECK(this->get_RowCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_FixedColumnCount(long Count/*[in]*/)
{
  return (*this)->set_FixedColumnCount(Count);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_FixedColumnCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_FixedColumnCount(Count);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_FixedColumnCount(void)
{
  long Count;
  OLECHECK(this->get_FixedColumnCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_FixedRowCount(long Count/*[in]*/)
{
  return (*this)->set_FixedRowCount(Count);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_FixedRowCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_FixedRowCount(Count);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_FixedRowCount(void)
{
  long Count;
  OLECHECK(this->get_FixedRowCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_ColumnWidth(long Index/*[in]*/, long Width/*[in]*/)
{
  return (*this)->set_ColumnWidth(Index, Width);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_ColumnWidth(long Index/*[in]*/, long* Width/*[out,retval]*/)
{
  return (*this)->get_ColumnWidth(Index, Width);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_ColumnWidth(long Index/*[in]*/)
{
  long Width;
  OLECHECK(this->get_ColumnWidth(Index, (long*)&Width));
  return Width;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_RowHeight(long Index/*[in]*/, long Height/*[in]*/)
{
  return (*this)->set_RowHeight(Index, Height);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_RowHeight(long Index/*[in]*/, long* Height/*[out,retval]*/)
{
  return (*this)->get_RowHeight(Index, Height);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_RowHeight(long Index/*[in]*/)
{
  long Height;
  OLECHECK(this->get_RowHeight(Index, (long*)&Height));
  return Height;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_EnableEdit(NRow, NCol, PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_EnableEdit(NRow, NCol, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyGridT<T>::get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_EnableEdit(NRow, NCol, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_CellText(long NRow/*[in]*/, long NCol/*[in]*/, BSTR Text/*[in]*/)
{
  return (*this)->set_CellText(NRow, NCol, Text);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_CellText(long NRow/*[in]*/, long NCol/*[in]*/, BSTR* Text/*[out,retval]*/)
{
  return (*this)->get_CellText(NRow, NCol, Text);
}

template <class T> BSTR __fastcall
TCOMIPropertyGridT<T>::get_CellText(long NRow/*[in]*/, long NCol/*[in]*/)
{
  BSTR Text = 0;
  OLECHECK(this->get_CellText(NRow, NCol, (BSTR*)&Text));
  return Text;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, long Format/*[in]*/)
{
  return (*this)->set_CellFormat(NRow, NCol, Format);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                      long* Format/*[out,retval]*/)
{
  return (*this)->get_CellFormat(NRow, NCol, Format);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/)
{
  long Format;
  OLECHECK(this->get_CellFormat(NRow, NCol, (long*)&Format));
  return Format;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_Width(long Width/*[in]*/)
{
  return (*this)->set_Width(Width);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_Width(long* Width/*[out,retval]*/)
{
  return (*this)->get_Width(Width);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_Width(void)
{
  long Width;
  OLECHECK(this->get_Width((long*)&Width));
  return Width;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_Height(long Height/*[in]*/)
{
  return (*this)->set_Height(Height);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_Height(long* Height/*[out,retval]*/)
{
  return (*this)->get_Height(Height);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_Height(void)
{
  long Height;
  OLECHECK(this->get_Height((long*)&Height));
  return Height;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyGridT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_AutoSizeColumns(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_AutoSizeColumns(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_AutoSizeColumns(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoSizeColumns(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyGridT<T>::get_AutoSizeColumns(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoSizeColumns((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::UpdateParam(void)
{
  return (*this)->UpdateParam();
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_CurrentColumn(long Column/*[in]*/)
{
  return (*this)->set_CurrentColumn(Column);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_CurrentColumn(long* Column/*[out,retval]*/)
{
  return (*this)->get_CurrentColumn(Column);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_CurrentColumn(void)
{
  long Column;
  OLECHECK(this->get_CurrentColumn((long*)&Column));
  return Column;
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::set_CurrentRow(long Row/*[in]*/)
{
  return (*this)->set_CurrentRow(Row);
}

template <class T> HRESULT __fastcall
TCOMIPropertyGridT<T>::get_CurrentRow(long* Row/*[out,retval]*/)
{
  return (*this)->get_CurrentRow(Row);
}

template <class T> long __fastcall
TCOMIPropertyGridT<T>::get_CurrentRow(void)
{
  long Row;
  OLECHECK(this->get_CurrentRow((long*)&Row));
  return Row;
}

// *********************************************************************//
// DispIntf:  IPropertyGrid
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6682B70F-59DB-4BF0-AB01-45B65B1BDED1}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_ColumnCount(long Count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnCount"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = Count /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_ColumnCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnCount"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_ColumnCount(void)
{
  long Count;
  this->get_ColumnCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_RowCount(long Count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowCount"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = Count /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_RowCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowCount"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_RowCount(void)
{
  long Count;
  this->get_RowCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_FixedColumnCount(long Count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedColumnCount"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = Count /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_FixedColumnCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedColumnCount"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_FixedColumnCount(void)
{
  long Count;
  this->get_FixedColumnCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_FixedRowCount(long Count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedRowCount"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = Count /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_FixedRowCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedRowCount"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_FixedRowCount(void)
{
  long Count;
  this->get_FixedRowCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_ColumnWidth(long Index/*[in]*/, long Width/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnWidth"), DISPID(105));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Width /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_ColumnWidth(long Index/*[in]*/, long* Width/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnWidth"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Width /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_ColumnWidth(long Index/*[in]*/)
{
  long Width;
  this->get_ColumnWidth(Index, (long*)&Width);
  return Width;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_RowHeight(long Index/*[in]*/, long Height/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowHeight"), DISPID(106));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Height /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_RowHeight(long Index/*[in]*/, long* Height/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowHeight"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Height /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_RowHeight(long Index/*[in]*/)
{
  long Height;
  this->get_RowHeight(Index, (long*)&Height);
  return Height;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableEdit"), DISPID(107));
  TAutoArgs<3> _args;
  _args[1] = NRow /*[VT_I4:0]*/;
  _args[2] = NCol /*[VT_I4:0]*/;
  _args[3] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableEdit"), DISPID(107));
  TAutoArgs<2> _args;
  _args[1] = NRow /*[VT_I4:0]*/;
  _args[2] = NCol /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyGridDispT<T>::get_EnableEdit(long NRow/*[in]*/, long NCol/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_EnableEdit(NRow, NCol, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_CellText(long NRow/*[in]*/, long NCol/*[in]*/, BSTR Text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellText"), DISPID(108));
  TAutoArgs<3> _args;
  _args[1] = NRow /*[VT_I4:0]*/;
  _args[2] = NCol /*[VT_I4:0]*/;
  _args[3] = Text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_CellText(long NRow/*[in]*/, long NCol/*[in]*/, BSTR* Text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellText"), DISPID(108));
  TAutoArgs<2> _args;
  _args[1] = NRow /*[VT_I4:0]*/;
  _args[2] = NCol /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyGridDispT<T>::get_CellText(long NRow/*[in]*/, long NCol/*[in]*/)
{
  BSTR Text;
  this->get_CellText(NRow, NCol, (BSTR*)&Text);
  return Text;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, long Format/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellFormat"), DISPID(109));
  TAutoArgs<3> _args;
  _args[1] = NRow /*[VT_I4:0]*/;
  _args[2] = NCol /*[VT_I4:0]*/;
  _args[3] = Format /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/, 
                                      long* Format/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellFormat"), DISPID(109));
  TAutoArgs<2> _args;
  _args[1] = NRow /*[VT_I4:0]*/;
  _args[2] = NCol /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Format /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_CellFormat(long NRow/*[in]*/, long NCol/*[in]*/)
{
  long Format;
  this->get_CellFormat(NRow, NCol, (long*)&Format);
  return Format;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Width(long Width/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(110));
  TAutoArgs<1> _args;
  _args[1] = Width /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Width(long* Width/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Width /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_Width(void)
{
  long Width;
  this->get_Width((long*)&Width);
  return Width;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Height(long Height/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(111));
  TAutoArgs<1> _args;
  _args[1] = Height /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Height(long* Height/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(111));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Height /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_Height(void)
{
  long Height;
  this->get_Height((long*)&Height);
  return Height;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(112));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(112));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyGridDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_AutoSizeColumns(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSizeColumns"), DISPID(113));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_AutoSizeColumns(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSizeColumns"), DISPID(113));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyGridDispT<T>::get_AutoSizeColumns(void)
{
  TOLEBOOL PVal;
  this->get_AutoSizeColumns((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::UpdateParam()
{
  _TDispID _dispid(*this, OLETEXT("UpdateParam"), DISPID(114));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_CurrentColumn(long Column/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentColumn"), DISPID(115));
  TAutoArgs<1> _args;
  _args[1] = Column /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_CurrentColumn(long* Column/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentColumn"), DISPID(115));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Column /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_CurrentColumn(void)
{
  long Column;
  this->get_CurrentColumn((long*)&Column);
  return Column;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_CurrentRow(long Row/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentRow"), DISPID(116));
  TAutoArgs<1> _args;
  _args[1] = Row /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_CurrentRow(long* Row/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentRow"), DISPID(116));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Row /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_CurrentRow(void)
{
  long Row;
  this->get_CurrentRow((long*)&Row);
  return Row;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyGridDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyGridDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyGridDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyGridDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyGridDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyGridDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyGridDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyGridDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyGridDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyGridDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyGridDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyGridDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyGridDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyTextButton
// Interface: IPropertyTextButton
// *********************************************************************//
// *********************************************************************//
// DispIntf:  IPropertyTextButton
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3CDFE85F-643D-4008-AE32-379C0EB3FB7F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyTextButtonDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyTextButtonDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyTextButtonDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyTextButtonDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyTextButtonDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyTextButtonDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyTextButtonDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyTextButtonDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyTextButtonDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyTextButtonDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyTextButtonDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyTextButtonDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyTextButtonDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyTextButtonDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertySpinEdit
// Interface: IPropertySpinEdit
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MinValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertySpinEditT<T>::get_MinValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MinValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_MaxValue(PVal);
}

template <class T> TVariant __fastcall
TCOMIPropertySpinEditT<T>::get_MaxValue(void)
{
  TVariant PVal;
  OLECHECK(this->get_MaxValue((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                         TVariantInParam MaxVal/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetValueRange(MinVal, MaxVal, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertySpinEditT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                         TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_WithCheck(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_WithCheck(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertySpinEditT<T>::get_WithCheck(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_WithCheck((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::set_CheckState(CheckStateEnum PVal/*[in]*/)
{
  return (*this)->set_CheckState(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::get_CheckState(CheckStateEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_CheckState(PVal);
}

template <class T> CheckStateEnum __fastcall
TCOMIPropertySpinEditT<T>::get_CheckState(void)
{
  CheckStateEnum PVal;
  OLECHECK(this->get_CheckState((CheckStateEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertySpinEditT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertySpinEditT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> long __fastcall
TCOMIPropertySpinEditT<T>::get_Width(void)
{
  long PVal;
  OLECHECK(this->get_Width((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertySpinEdit
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F214A46D-2BA9-40AD-A32D-E696EF9C895A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_MinValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MinValue"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertySpinEditDispT<T>::get_MinValue(void)
{
  TVariant PVal;
  this->get_MinValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_MaxValue(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MaxValue"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertySpinEditDispT<T>::get_MaxValue(void)
{
  TVariant PVal;
  this->get_MaxValue((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                         TVariantInParam MaxVal/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetValueRange"), DISPID(103));
  TAutoArgs<2> _args;
  _args[1] = MinVal /*[VT_VARIANT:0]*/;
  _args[2] = MaxVal /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySpinEditDispT<T>::SetValueRange(TVariantInParam MinVal/*[in]*/, 
                                         TVariantInParam MaxVal/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetValueRange(MinVal, MaxVal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_WithCheck(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithCheck"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_WithCheck(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithCheck"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySpinEditDispT<T>::get_WithCheck(void)
{
  TOLEBOOL PVal;
  this->get_WithCheck((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_CheckState(CheckStateEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckState"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_CheckState(CheckStateEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CheckState"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> CheckStateEnum __fastcall
IPropertySpinEditDispT<T>::get_CheckState(void)
{
  CheckStateEnum PVal;
  this->get_CheckState((CheckStateEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySpinEditDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySpinEditDispT<T>::get_Width(void)
{
  long PVal;
  this->get_Width((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySpinEditDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySpinEditDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertySpinEditDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySpinEditDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertySpinEditDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertySpinEditDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertySpinEditDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySpinEditDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertySpinEditDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertySpinEditDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertySpinEditDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertySpinEditDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertySpinEditDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertySpinEditDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyFileName
// Interface: IPropertyFileName
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::set_CreateOpenButton(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CreateOpenButton(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::get_CreateOpenButton(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CreateOpenButton(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyFileNameT<T>::get_CreateOpenButton(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CreateOpenButton((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::set_Bitmap(TVariantInParam Param1/*[in]*/)
{
  return (*this)->set_Bitmap(Param1);
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::set_Extension(BSTR PVal/*[in]*/)
{
  return (*this)->set_Extension(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::get_Extension(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Extension(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyFileNameT<T>::get_Extension(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Extension((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::set_Filter(BSTR PVal/*[in]*/)
{
  return (*this)->set_Filter(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::get_Filter(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Filter(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyFileNameT<T>::get_Filter(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Filter((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  return (*this)->set_ResModule(HInstance);
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  return (*this)->get_ResModule(HInstance);
}

template <class T> TVariant __fastcall
TCOMIPropertyFileNameT<T>::get_ResModule(void)
{
  TVariant HInstance;
  OLECHECK(this->get_ResModule((TVariant*)&HInstance));
  return HInstance;
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_ReadOnly(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ReadOnly(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyFileNameT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ReadOnly((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyFileNameT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> long __fastcall
TCOMIPropertyFileNameT<T>::get_Width(void)
{
  long PVal;
  OLECHECK(this->get_Width((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyFileName
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DB1F3224-837E-437F-8944-6FB9703F528B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_CreateOpenButton(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateOpenButton"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_CreateOpenButton(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateOpenButton"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyFileNameDispT<T>::get_CreateOpenButton(void)
{
  TOLEBOOL PVal;
  this->get_CreateOpenButton((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Bitmap(TVariantInParam Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bitmap"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Extension(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Extension"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Extension(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Extension"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyFileNameDispT<T>::get_Extension(void)
{
  BSTR PVal;
  this->get_Extension((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Filter(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Filter"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Filter(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Filter"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyFileNameDispT<T>::get_Filter(void)
{
  BSTR PVal;
  this->get_Filter((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = HInstance /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HInstance /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyFileNameDispT<T>::get_ResModule(void)
{
  TVariant HInstance;
  this->get_ResModule((TVariant*)&HInstance);
  return HInstance;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_ReadOnly(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_ReadOnly(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyFileNameDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL PVal;
  this->get_ReadOnly((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(107));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyFileNameDispT<T>::get_Width(void)
{
  long PVal;
  this->get_Width((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyFileNameDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyFileNameDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyFileNameDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyFileNameDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyFileNameDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyFileNameDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyFileNameDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyFileNameDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyFileNameDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyFileNameDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyFileNameDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyFileNameDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyFileNameDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyFileNameDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyColor
// Interface: IPropertyColor
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> long __fastcall
TCOMIPropertyColorT<T>::get_Width(void)
{
  long PVal;
  OLECHECK(this->get_Width((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::set_EnableDefaultButton(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_EnableDefaultButton(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::get_EnableDefaultButton(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_EnableDefaultButton(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyColorT<T>::get_EnableDefaultButton(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_EnableDefaultButton((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::set_DefaultColor(long PVal/*[in]*/)
{
  return (*this)->set_DefaultColor(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::get_DefaultColor(long* PVal/*[out,retval]*/)
{
  return (*this)->get_DefaultColor(PVal);
}

template <class T> long __fastcall
TCOMIPropertyColorT<T>::get_DefaultColor(void)
{
  long PVal;
  OLECHECK(this->get_DefaultColor((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::set_DefaultButtonName(BSTR PVal/*[in]*/)
{
  return (*this)->set_DefaultButtonName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyColorT<T>::get_DefaultButtonName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_DefaultButtonName(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyColorT<T>::get_DefaultButtonName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_DefaultButtonName((BSTR*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyColor
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FC5CDCFB-3F67-43A1-8FC4-1278B901CE0E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Width(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Width(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyColorDispT<T>::get_Width(void)
{
  long PVal;
  this->get_Width((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_EnableDefaultButton(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableDefaultButton"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_EnableDefaultButton(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EnableDefaultButton"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyColorDispT<T>::get_EnableDefaultButton(void)
{
  TOLEBOOL PVal;
  this->get_EnableDefaultButton((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_DefaultColor(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultColor"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_DefaultColor(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultColor"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyColorDispT<T>::get_DefaultColor(void)
{
  long PVal;
  this->get_DefaultColor((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_DefaultButtonName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultButtonName"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_DefaultButtonName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefaultButtonName"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyColorDispT<T>::get_DefaultButtonName(void)
{
  BSTR PVal;
  this->get_DefaultButtonName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyColorDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyColorDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyColorDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyColorDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyColorDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyColorDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyColorDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyColorDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyColorDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyColorDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyColorDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyColorDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyColorDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyColorDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyEditList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FDB82760-7EA3-408E-8699-A8392ACFD810}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_ListType(ksEditListTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ListType"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksEditListTypeEnum __fastcall
IPropertyEditListDispT<T>::get_ListType(void)
{
  ksEditListTypeEnum PVal;
  this->get_ListType((ksEditListTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_ListType(ksEditListTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ListType"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_ItemChecked(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemChecked"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditListDispT<T>::get_ItemChecked(long Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_ItemChecked(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_ItemChecked(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemChecked"), DISPID(102));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_MultySelect(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MultySelect"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditListDispT<T>::get_MultySelect(void)
{
  TOLEBOOL PVal;
  this->get_MultySelect((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_MultySelect(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MultySelect"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_ItemSelected(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemSelected"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditListDispT<T>::get_ItemSelected(long Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_ItemSelected(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_ItemSelected(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemSelected"), DISPID(104));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Sort(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sort"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditListDispT<T>::get_Sort(void)
{
  TOLEBOOL PVal;
  this->get_Sort((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Sort(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sort"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::ClearList()
{
  _TDispID _dispid(*this, OLETEXT("ClearList"), DISPID(106));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::Add(BSTR NewVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = NewVal /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::Delete(TVariantInParam Index/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(108));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_ItemsCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemsCount"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyEditListDispT<T>::get_ItemsCount(void)
{
  long PVal;
  this->get_ItemsCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_ItemValue(TVariantInParam Index/*[in]*/, BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemValue"), DISPID(110));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  _args[2] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_ItemValue(TVariantInParam Index/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemValue"), DISPID(110));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyEditListDispT<T>::get_ItemValue(TVariantInParam Index/*[in]*/)
{
  BSTR PVal;
  this->get_ItemValue(Index, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::Find(TVariantInParam Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Find"), DISPID(111));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IPropertyEditListDispT<T>::Find(TVariantInParam Val/*[in]*/)
{
  long PVal;
  this->Find(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditListDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyEditListDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyEditListDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyEditListDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyEditListDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyEditListDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyEditListDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyEditListDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyEditListDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyEditListDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyEditListDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyEditListDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyEditListDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyEditListDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyToolBar
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C2523B7E-EB4B-45DB-8E3B-9D6CCED99333}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::set_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonChecked"), DISPID(501));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::get_ButtonChecked(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonChecked"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyToolBarDispT<T>::get_ButtonChecked(long BtnID/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_ButtonChecked(BtnID, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::set_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonEnable"), DISPID(502));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::get_ButtonEnable(long BtnID/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonEnable"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyToolBarDispT<T>::get_ButtonEnable(long BtnID/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_ButtonEnable(BtnID, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::AddButton(long BtnID/*[in]*/, TVariantInParam Bmp/*[in]*/, 
                                    long InsertAt/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddButton"), DISPID(503));
  TAutoArgs<3> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = Bmp /*[VT_VARIANT:0]*/;
  _args[3] = InsertAt /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(504));
  TAutoArgs<1> _args;
  _args[1] = HInstance /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HInstance /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyToolBarDispT<T>::get_ResModule(void)
{
  TVariant HInstance;
  this->get_ResModule((TVariant*)&HInstance);
  return HInstance;
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::set_ButtonTips(long BtnID/*[in]*/, BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonTips"), DISPID(505));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::get_ButtonTips(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonTips"), DISPID(505));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyToolBarDispT<T>::get_ButtonTips(long BtnID/*[in]*/)
{
  BSTR PVal;
  this->get_ButtonTips(BtnID, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::set_ButtonHint(long BtnID/*[in]*/, BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonHint"), DISPID(506));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::get_ButtonHint(long BtnID/*[in]*/, BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonHint"), DISPID(506));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyToolBarDispT<T>::get_ButtonHint(long BtnID/*[in]*/)
{
  BSTR PVal;
  this->get_ButtonHint(BtnID, (BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::set_ButtonType(long BtnID/*[in]*/, 
                                         ButtonTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonType"), DISPID(507));
  TAutoArgs<2> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  _args[2] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyToolBarDispT<T>::get_ButtonType(long BtnID/*[in]*/, 
                                         ButtonTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ButtonType"), DISPID(507));
  TAutoArgs<1> _args;
  _args[1] = BtnID /*[VT_I4:0]*/;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ButtonTypeEnum __fastcall
IPropertyToolBarDispT<T>::get_ButtonType(long BtnID/*[in]*/)
{
  ButtonTypeEnum PVal;
  this->get_ButtonType(BtnID, (ButtonTypeEnum*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyBmpList
// Interface: IPropertyBmpList
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::Add(BSTR NewStr/*[in]*/, TVariantInParam NewBmp/*[in]*/)
{
  return (*this)->Add(NewStr, NewBmp);
}

template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOMIPropertyBmpListT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::ClearList(void)
{
  return (*this)->ClearList();
}

template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::Find(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->Find(Val, PVal);
}

template <class T> long __fastcall
TCOMIPropertyBmpListT<T>::Find(BSTR Val/*[in]*/)
{
  long PVal;
  OLECHECK(this->Find(Val, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::set_CurrentIndex(long PVal/*[in]*/)
{
  return (*this)->set_CurrentIndex(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::get_CurrentIndex(long* PVal/*[out,retval]*/)
{
  return (*this)->get_CurrentIndex(PVal);
}

template <class T> long __fastcall
TCOMIPropertyBmpListT<T>::get_CurrentIndex(void)
{
  long PVal;
  OLECHECK(this->get_CurrentIndex((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  return (*this)->set_ResModule(HInstance);
}

template <class T> HRESULT __fastcall
TCOMIPropertyBmpListT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  return (*this)->get_ResModule(HInstance);
}

template <class T> TVariant __fastcall
TCOMIPropertyBmpListT<T>::get_ResModule(void)
{
  TVariant HInstance;
  OLECHECK(this->get_ResModule((TVariant*)&HInstance));
  return HInstance;
}

// *********************************************************************//
// DispIntf:  IPropertyBmpList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D18D34F5-0028-4853-998C-25A48D141B43}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::Add(BSTR NewStr/*[in]*/, TVariantInParam NewBmp/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(101));
  TAutoArgs<2> _args;
  _args[1] = NewStr /*[VT_BSTR:0]*/;
  _args[2] = NewBmp /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyBmpListDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::ClearList()
{
  _TDispID _dispid(*this, OLETEXT("ClearList"), DISPID(103));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::Find(BSTR Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Find"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IPropertyBmpListDispT<T>::Find(BSTR Val/*[in]*/)
{
  long PVal;
  this->Find(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_CurrentIndex(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentIndex"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_CurrentIndex(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentIndex"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyBmpListDispT<T>::get_CurrentIndex(void)
{
  long PVal;
  this->get_CurrentIndex((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_ResModule(TVariantInParam HInstance/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = HInstance /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_ResModule(TVariant* HInstance/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ResModule"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HInstance /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyBmpListDispT<T>::get_ResModule(void)
{
  TVariant HInstance;
  this->get_ResModule((TVariant*)&HInstance);
  return HInstance;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyBmpListDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyBmpListDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyBmpListDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyBmpListDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyBmpListDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyBmpListDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyBmpListDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyBmpListDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyBmpListDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyBmpListDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyBmpListDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyBmpListDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyBmpListDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyBmpListDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IProcessInfoWindow
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {06F93FBF-C65A-49B1-83DB-C736BA33F0A5}
// *********************************************************************//
template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::set_CreateWindow(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateWindow"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::get_CreateWindow(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateWindow"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProcessInfoWindowDispT<T>::get_CreateWindow(void)
{
  TOLEBOOL PVal;
  this->get_CreateWindow((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::set_WindowCaption(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WindowCaption"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::get_WindowCaption(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WindowCaption"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProcessInfoWindowDispT<T>::get_WindowCaption(void)
{
  BSTR PVal;
  this->get_WindowCaption((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::set_CloseProcess(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CloseProcess"), DISPID(503));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::get_CloseProcess(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CloseProcess"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProcessInfoWindowDispT<T>::get_CloseProcess(void)
{
  TOLEBOOL PVal;
  this->get_CloseProcess((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::set_Visible(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(504));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IProcessInfoWindowDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::set_Text(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(505));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::get_Text(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IProcessInfoWindowDispT<T>::get_Text(void)
{
  BSTR PVal;
  this->get_Text((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::set_HelpId(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HelpId"), DISPID(506));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IProcessInfoWindowDispT<T>::get_HelpId(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HelpId"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IProcessInfoWindowDispT<T>::get_HelpId(void)
{
  long PVal;
  this->get_HelpId((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyLibExplorer
// Interface: IPropertyLibExplorer
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyLibExplorerT<T>::set_FileName(BSTR PVal/*[in]*/)
{
  return (*this)->set_FileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyLibExplorerT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyLibExplorerT<T>::get_FileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyLibExplorerT<T>::set_RootName(BSTR PVal/*[in]*/)
{
  return (*this)->set_RootName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyLibExplorerT<T>::get_RootName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_RootName(PVal);
}

template <class T> BSTR __fastcall
TCOMIPropertyLibExplorerT<T>::get_RootName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_RootName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyLibExplorerT<T>::get_FileValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FileValue(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyLibExplorerT<T>::get_FileValue(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FileValue((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyLibExplorer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2A214701-0BCB-406C-B57F-6DFADD799A64}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_FileName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyLibExplorerDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_RootName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RootName"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_RootName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RootName"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyLibExplorerDispT<T>::get_RootName(void)
{
  BSTR PVal;
  this->get_RootName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_FileValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileValue"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyLibExplorerDispT<T>::get_FileValue(void)
{
  TOLEBOOL PVal;
  this->get_FileValue((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyLibExplorerDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyLibExplorerDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyLibExplorerDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyLibExplorerDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyLibExplorerDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyLibExplorerDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyLibExplorerDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyLibExplorerDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyLibExplorerDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyLibExplorerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyLibExplorerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyLibExplorerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyLibExplorerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyLibExplorerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAssociationView
// Interface: IAssociationView
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_SourceFileName(BSTR* Result/*[out,retval]*/)
{
  return (*this)->get_SourceFileName(Result);
}

template <class T> BSTR __fastcall
TCOMIAssociationViewT<T>::get_SourceFileName(void)
{
  BSTR Result = 0;
  OLECHECK(this->get_SourceFileName((BSTR*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_SourceFileName(BSTR Result/*[in]*/)
{
  return (*this)->set_SourceFileName(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_ProjectionName(BSTR* Result/*[out,retval]*/)
{
  return (*this)->get_ProjectionName(Result);
}

template <class T> BSTR __fastcall
TCOMIAssociationViewT<T>::get_ProjectionName(void)
{
  BSTR Result = 0;
  OLECHECK(this->get_ProjectionName((BSTR*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_ProjectionName(BSTR Result/*[in]*/)
{
  return (*this)->set_ProjectionName(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_ExplodedView(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_ExplodedView(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_ExplodedView(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_ExplodedView((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_ExplodedView(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_ExplodedView(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_DimensionLayoutScaling(TOLEBOOL Param1/*[in]*/)
{
  return (*this)->set_DimensionLayoutScaling(Param1);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_ProjectionLink(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_ProjectionLink(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_ProjectionLink(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_ProjectionLink((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_ProjectionLink(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_ProjectionLink(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_Section(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Section(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_Section(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Section((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_Section(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Section(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_Unfold(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Unfold(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_Unfold(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Unfold((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_Unfold(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Unfold(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_VisibleLinesStyle(long* Result/*[out,retval]*/)
{
  return (*this)->get_VisibleLinesStyle(Result);
}

template <class T> long __fastcall
TCOMIAssociationViewT<T>::get_VisibleLinesStyle(void)
{
  long Result;
  OLECHECK(this->get_VisibleLinesStyle((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_VisibleLinesStyle(long Result/*[in]*/)
{
  return (*this)->set_VisibleLinesStyle(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_HiddenLines(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_HiddenLines(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_HiddenLines(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_HiddenLines((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_HiddenLines(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_HiddenLines(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_HiddenLinesVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_HiddenLinesVisible(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_HiddenLinesVisible(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_HiddenLinesVisible((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_HiddenLinesVisible(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_HiddenLinesVisible(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_HiddenLinesStyle(long* Result/*[out,retval]*/)
{
  return (*this)->get_HiddenLinesStyle(Result);
}

template <class T> long __fastcall
TCOMIAssociationViewT<T>::get_HiddenLinesStyle(void)
{
  long Result;
  OLECHECK(this->get_HiddenLinesStyle((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_HiddenLinesStyle(long Result/*[in]*/)
{
  return (*this)->set_HiddenLinesStyle(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_BreakLinesVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_BreakLinesVisible(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_BreakLinesVisible(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_BreakLinesVisible((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_BreakLinesVisible(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_BreakLinesVisible(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_BreakLinesStyle(long* Result/*[out,retval]*/)
{
  return (*this)->get_BreakLinesStyle(Result);
}

template <class T> long __fastcall
TCOMIAssociationViewT<T>::get_BreakLinesStyle(void)
{
  long Result;
  OLECHECK(this->get_BreakLinesStyle((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_BreakLinesStyle(long Result/*[in]*/)
{
  return (*this)->set_BreakLinesStyle(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_BendLinesVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_BendLinesVisible(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_BendLinesVisible(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_BendLinesVisible((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_BendLinesVisible(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_BendLinesVisible(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_BendLinesStyle(long* Result/*[out,retval]*/)
{
  return (*this)->get_BendLinesStyle(Result);
}

template <class T> long __fastcall
TCOMIAssociationViewT<T>::get_BendLinesStyle(void)
{
  long Result;
  OLECHECK(this->get_BendLinesStyle((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_BendLinesStyle(long Result/*[in]*/)
{
  return (*this)->set_BendLinesStyle(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_BaseView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseView(Result);
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
TCOMIAssociationViewT<T>::get_BaseView(void)
{
  Kompasltapi7_tlb::IViewPtr Result;
  OLECHECK(this->get_BaseView((Kompasltapi7_tlb::IViewPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_BaseView(Kompasltapi7_tlb::IViewPtr Result/*[in]*/)
{
  return (*this)->set_BaseView(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Result);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIAssociationViewT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  return (*this)->set_BaseObject(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_Local(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Local(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_Local(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Local((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_Local(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Local(Result);
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->CreateLocalView(Contour, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->CreateLocalView(Contour, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::get_SameHatch(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_SameHatch(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAssociationViewT<T>::get_SameHatch(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_SameHatch((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAssociationViewT<T>::set_SameHatch(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_SameHatch(Result);
}

// *********************************************************************//
// DispIntf:  IAssociationView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0825F23C-0A73-48DE-BEAB-DA2FF39962C3}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_SourceFileName(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceFileName"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAssociationViewDispT<T>::get_SourceFileName(void)
{
  BSTR Result;
  this->get_SourceFileName((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_SourceFileName(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceFileName"), DISPID(2000));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_ProjectionName(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectionName"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAssociationViewDispT<T>::get_ProjectionName(void)
{
  BSTR Result;
  this->get_ProjectionName((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_ProjectionName(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectionName"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_ExplodedView(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExplodedView"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_ExplodedView(void)
{
  TOLEBOOL Result;
  this->get_ExplodedView((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_ExplodedView(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExplodedView"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_DimensionLayoutScaling(TOLEBOOL Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLayoutScaling"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_ProjectionLink(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectionLink"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_ProjectionLink(void)
{
  TOLEBOOL Result;
  this->get_ProjectionLink((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_ProjectionLink(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectionLink"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Section(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Section"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Section(void)
{
  TOLEBOOL Result;
  this->get_Section((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Section(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Section"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Unfold(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Unfold"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Unfold(void)
{
  TOLEBOOL Result;
  this->get_Unfold((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Unfold(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Unfold"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_VisibleLinesStyle(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VisibleLinesStyle"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_VisibleLinesStyle(void)
{
  long Result;
  this->get_VisibleLinesStyle((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_VisibleLinesStyle(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VisibleLinesStyle"), DISPID(2007));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_HiddenLines(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenLines"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_HiddenLines(void)
{
  TOLEBOOL Result;
  this->get_HiddenLines((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_HiddenLines(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenLines"), DISPID(2008));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_HiddenLinesVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenLinesVisible"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_HiddenLinesVisible(void)
{
  TOLEBOOL Result;
  this->get_HiddenLinesVisible((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_HiddenLinesVisible(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenLinesVisible"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_HiddenLinesStyle(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenLinesStyle"), DISPID(2010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_HiddenLinesStyle(void)
{
  long Result;
  this->get_HiddenLinesStyle((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_HiddenLinesStyle(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenLinesStyle"), DISPID(2010));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_BreakLinesVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLinesVisible"), DISPID(2011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_BreakLinesVisible(void)
{
  TOLEBOOL Result;
  this->get_BreakLinesVisible((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_BreakLinesVisible(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLinesVisible"), DISPID(2011));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_BreakLinesStyle(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLinesStyle"), DISPID(2012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_BreakLinesStyle(void)
{
  long Result;
  this->get_BreakLinesStyle((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_BreakLinesStyle(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLinesStyle"), DISPID(2012));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_BendLinesVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendLinesVisible"), DISPID(2013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_BendLinesVisible(void)
{
  TOLEBOOL Result;
  this->get_BendLinesVisible((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_BendLinesVisible(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendLinesVisible"), DISPID(2013));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_BendLinesStyle(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendLinesStyle"), DISPID(2014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_BendLinesStyle(void)
{
  long Result;
  this->get_BendLinesStyle((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_BendLinesStyle(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendLinesStyle"), DISPID(2014));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_BaseView(Kompasltapi7_tlb::IViewPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseView"), DISPID(2015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IView**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPtr __fastcall
IAssociationViewDispT<T>::get_BaseView(void)
{
  Kompasltapi7_tlb::IViewPtr Result;
  this->get_BaseView((Kompasltapi7_tlb::IViewPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_BaseView(Kompasltapi7_tlb::IViewPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseView"), DISPID(2015));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IView*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(2016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IAssociationViewDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(2016));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Local(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Local"), DISPID(2017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Local(void)
{
  TOLEBOOL Result;
  this->get_Local((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Local(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Local"), DISPID(2017));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateLocalView"), DISPID(2018));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Contour /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::CreateLocalView(Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/)
{
  TOLEBOOL Result;
  this->CreateLocalView(Contour, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_SameHatch(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SameHatch"), DISPID(2019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_SameHatch(void)
{
  TOLEBOOL Result;
  this->get_SameHatch((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_SameHatch(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SameHatch"), DISPID(2019));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Number(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Number(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_Number(void)
{
  long PVal;
  this->get_Number((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAssociationViewDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Background(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Background(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Background"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Background(void)
{
  TOLEBOOL PVal;
  this->get_Background((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Current(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Current(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Current(void)
{
  TOLEBOOL PVal;
  this->get_Current((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Color(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_Color(void)
{
  long PVal;
  this->get_Color((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Comment(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Comment(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAssociationViewDispT<T>::get_Comment(void)
{
  BSTR PVal;
  this->get_Comment((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_ObjectCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectCount"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_ObjectCount(void)
{
  long PVal;
  this->get_ObjectCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAssociationViewDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAssociationViewDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAssociationViewDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAssociationViewDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_ViewType(LtViewType* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewType"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LtViewType __fastcall
IAssociationViewDispT<T>::get_ViewType(void)
{
  LtViewType PVal;
  this->get_ViewType((LtViewType*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Layers(Kompasltapi7_tlb::ILayersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Layers"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILayers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILayersPtr __fastcall
IAssociationViewDispT<T>::get_Layers(void)
{
  Kompasltapi7_tlb::ILayersPtr PVal;
  this->get_Layers((Kompasltapi7_tlb::ILayersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Variables(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variables"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IAssociationViewDispT<T>::get_Variables(void)
{
  TVariant Result;
  this->get_Variables((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Variable(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variable"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariable7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariable7Ptr __fastcall
IAssociationViewDispT<T>::get_Variable(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IVariable7Ptr Result;
  this->get_Variable(Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_VariablesCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VariablesCount"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_VariablesCount(void)
{
  long Result;
  this->get_VariablesCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IAssociationViewDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IAssociationViewDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAssociationViewDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAssociationViewDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAssociationViewDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAssociationViewDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAssociationViewDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IViewDesignation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5F9580DA-915C-4C28-991D-5DFFE3BF3B3C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_ShowName(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowName"), DISPID(4001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDesignationDispT<T>::get_ShowName(void)
{
  TOLEBOOL PVal;
  this->get_ShowName((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_ShowName(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowName"), DISPID(4001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_ShowUnfold(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowUnfold"), DISPID(4002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDesignationDispT<T>::get_ShowUnfold(void)
{
  TOLEBOOL PVal;
  this->get_ShowUnfold((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_ShowUnfold(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowUnfold"), DISPID(4002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_ShowScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowScale"), DISPID(4003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDesignationDispT<T>::get_ShowScale(void)
{
  TOLEBOOL PVal;
  this->get_ShowScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_ShowScale(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowScale"), DISPID(4003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_ShowTurn(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowTurn"), DISPID(4004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDesignationDispT<T>::get_ShowTurn(void)
{
  TOLEBOOL PVal;
  this->get_ShowTurn((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_ShowTurn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowTurn"), DISPID(4004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_ShowAngle(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAngle"), DISPID(4005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDesignationDispT<T>::get_ShowAngle(void)
{
  TOLEBOOL PVal;
  this->get_ShowAngle((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_ShowAngle(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowAngle"), DISPID(4005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_ShowPage(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPage"), DISPID(4006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDesignationDispT<T>::get_ShowPage(void)
{
  TOLEBOOL PVal;
  this->get_ShowPage((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_ShowPage(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowPage"), DISPID(4006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_ShowZone(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowZone"), DISPID(4007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewDesignationDispT<T>::get_ShowZone(void)
{
  TOLEBOOL PVal;
  this->get_ShowZone((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_ShowZone(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShowZone"), DISPID(4007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_Designation(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Designation"), DISPID(4008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IViewDesignationDispT<T>::get_Designation(void)
{
  BSTR PVal;
  this->get_Designation((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::get_RefObject(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RefObject"), DISPID(4009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IViewDesignationDispT<T>::get_RefObject(void)
{
  TVariant PVal;
  this->get_RefObject((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewDesignationDispT<T>::set_RefObject(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RefObject"), DISPID(4009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IAssociationViewElements
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E4E42871-E799-4273-8EDB-E5EF83CC66C2}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectBodies(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectBodies"), DISPID(2500));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectBodies(void)
{
  TOLEBOOL Result;
  this->get_ProjectBodies((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectBodies(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectBodies"), DISPID(2500));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectSurfaces(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectSurfaces"), DISPID(2501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectSurfaces(void)
{
  TOLEBOOL Result;
  this->get_ProjectSurfaces((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectSurfaces(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectSurfaces"), DISPID(2501));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_HiddenObjectsVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenObjectsVisible"), DISPID(2502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_HiddenObjectsVisible(void)
{
  TOLEBOOL Result;
  this->get_HiddenObjectsVisible((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_HiddenObjectsVisible(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HiddenObjectsVisible"), DISPID(2502));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectThreads(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectThreads"), DISPID(2503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectThreads(void)
{
  TOLEBOOL Result;
  this->get_ProjectThreads((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectThreads(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectThreads"), DISPID(2503));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectDimensions(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectDimensions"), DISPID(2504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectDimensions(void)
{
  TOLEBOOL Result;
  this->get_ProjectDimensions((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectDimensions(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectDimensions"), DISPID(2504));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectRoughs(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectRoughs"), DISPID(2505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectRoughs(void)
{
  TOLEBOOL Result;
  this->get_ProjectRoughs((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectRoughs(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectRoughs"), DISPID(2505));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectBases(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectBases"), DISPID(2506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectBases(void)
{
  TOLEBOOL Result;
  this->get_ProjectBases((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectBases(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectBases"), DISPID(2506));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectTolerances(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectTolerances"), DISPID(2507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectTolerances(void)
{
  TOLEBOOL Result;
  this->get_ProjectTolerances((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectTolerances(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectTolerances"), DISPID(2507));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectPositions(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectPositions"), DISPID(2508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectPositions(void)
{
  TOLEBOOL Result;
  this->get_ProjectPositions((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectPositions(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectPositions"), DISPID(2508));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectLeaders(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectLeaders"), DISPID(2509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectLeaders(void)
{
  TOLEBOOL Result;
  this->get_ProjectLeaders((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectLeaders(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectLeaders"), DISPID(2509));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectMarkLeaders(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectMarkLeaders"), DISPID(2510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectMarkLeaders(void)
{
  TOLEBOOL Result;
  this->get_ProjectMarkLeaders((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectMarkLeaders(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectMarkLeaders"), DISPID(2510));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectBrandLeaders(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectBrandLeaders"), DISPID(2511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectBrandLeaders(void)
{
  TOLEBOOL Result;
  this->get_ProjectBrandLeaders((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectBrandLeaders(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectBrandLeaders"), DISPID(2511));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectHiddenComponents(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectHiddenComponents"), DISPID(2512));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectHiddenComponents(void)
{
  TOLEBOOL Result;
  this->get_ProjectHiddenComponents((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectHiddenComponents(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectHiddenComponents"), DISPID(2512));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectStandartElements(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectStandartElements"), DISPID(2513));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectStandartElements(void)
{
  TOLEBOOL Result;
  this->get_ProjectStandartElements((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectStandartElements(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectStandartElements"), DISPID(2513));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectCurves(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectCurves"), DISPID(2514));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectCurves(void)
{
  TOLEBOOL Result;
  this->get_ProjectCurves((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectCurves(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectCurves"), DISPID(2514));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectPoints(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectPoints"), DISPID(2515));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectPoints(void)
{
  TOLEBOOL Result;
  this->get_ProjectPoints((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectPoints(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectPoints"), DISPID(2515));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectAllObjects(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectAllObjects"), DISPID(2516));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectAllObjects(void)
{
  TOLEBOOL Result;
  this->get_ProjectAllObjects((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectAllObjects(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectAllObjects"), DISPID(2516));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::get_ProjectAllDesignations(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectAllDesignations"), DISPID(2517));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAssociationViewElementsDispT<T>::get_ProjectAllDesignations(void)
{
  TOLEBOOL Result;
  this->get_ProjectAllDesignations((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAssociationViewElementsDispT<T>::set_ProjectAllDesignations(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProjectAllDesignations"), DISPID(2517));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IBreakViewParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1B94C65D-3473-4FF2-B185-0B1C2C98FCAE}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::AddBreakLine(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                      double Y2/*[in]*/, double Angle/*[in]*/, 
                                      long* Index/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBreakLine"), DISPID(4500));
  TAutoArgs<5> _args;
  _args[1] = X1 /*[VT_R8:0]*/;
  _args[2] = Y1 /*[VT_R8:0]*/;
  _args[3] = X2 /*[VT_R8:0]*/;
  _args[4] = Y2 /*[VT_R8:0]*/;
  _args[5] = Angle /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Index /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IBreakViewParamDispT<T>::AddBreakLine(double X1/*[in]*/, double Y1/*[in]*/, double X2/*[in]*/, 
                                      double Y2/*[in]*/, double Angle/*[in]*/)
{
  long Index;
  this->AddBreakLine(X1, Y1, X2, Y2, Angle, (long*)&Index);
  return Index;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::DeleteBreakLine(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteBreakLine"), DISPID(4501));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakViewParamDispT<T>::DeleteBreakLine(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteBreakLine(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::DeleteAllBreakLines(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteAllBreakLines"), DISPID(4502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakViewParamDispT<T>::DeleteAllBreakLines(void)
{
  TOLEBOOL Result;
  this->DeleteAllBreakLines((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::SetBreakLinePosition(long Index/*[in]*/, double X1/*[in]*/, 
                                              double Y1/*[in]*/, double X2/*[in]*/, 
                                              double Y2/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetBreakLinePosition"), DISPID(4503));
  TAutoArgs<5> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X1 /*[VT_R8:0]*/;
  _args[3] = Y1 /*[VT_R8:0]*/;
  _args[4] = X2 /*[VT_R8:0]*/;
  _args[5] = Y2 /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakViewParamDispT<T>::SetBreakLinePosition(long Index/*[in]*/, double X1/*[in]*/, 
                                              double Y1/*[in]*/, double X2/*[in]*/, 
                                              double Y2/*[in]*/)
{
  TOLEBOOL Result;
  this->SetBreakLinePosition(Index, X1, Y1, X2, Y2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::GetBreakLinePosition(long Index/*[in]*/, double* X1/*[out]*/, 
                                              double* Y1/*[out]*/, double* X2/*[out]*/, 
                                              double* Y2/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBreakLinePosition"), DISPID(4504));
  TAutoArgs<5> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X1 /*[VT_R8:1]*/;
  _args[3] = Y1 /*[VT_R8:1]*/;
  _args[4] = X2 /*[VT_R8:1]*/;
  _args[5] = Y2 /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakViewParamDispT<T>::GetBreakLinePosition(long Index/*[in]*/, double* X1/*[out]*/, 
                                              double* Y1/*[out]*/, double* X2/*[out]*/, 
                                              double* Y2/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBreakLinePosition(Index, X1, Y1, X2, Y2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::SetBreakLineParams(long Index/*[in]*/, double Angle/*[in]*/, 
                                            double Clearance/*[in]*/, 
                                            ksBreakLineTypeEnum BreakLineType/*[in]*/
                                            , double Amplitude/*[in]*/, double MaxAmplitude/*[in]*/
                                            , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetBreakLineParams"), DISPID(4505));
  TAutoArgs<6> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Angle /*[VT_R8:0]*/;
  _args[3] = Clearance /*[VT_R8:0]*/;
  _args[4] = (int)BreakLineType /*[VT_USERDEFINED:0]*/;
  _args[5] = Amplitude /*[VT_R8:0]*/;
  _args[6] = MaxAmplitude /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakViewParamDispT<T>::SetBreakLineParams(long Index/*[in]*/, double Angle/*[in]*/, 
                                            double Clearance/*[in]*/, 
                                            ksBreakLineTypeEnum BreakLineType/*[in]*/, 
                                            double Amplitude/*[in]*/, double MaxAmplitude/*[in]*/)
{
  TOLEBOOL Result;
  this->SetBreakLineParams(Index, Angle, Clearance, BreakLineType, Amplitude, MaxAmplitude, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::GetBreakLineParams(long Index/*[in]*/, double* Angle/*[out]*/, 
                                            double* Clearance/*[out]*/, 
                                            ksBreakLineTypeEnum* BreakLineType/*[out]*/
                                            , double* Amplitude/*[out]*/, 
                                            double* MaxAmplitude/*[out]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBreakLineParams"), DISPID(4506));
  TAutoArgs<6> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Angle /*[VT_R8:1]*/;
  _args[3] = Clearance /*[VT_R8:1]*/;
  _args[4] = (int*)BreakLineType /*[VT_USERDEFINED:1]*/;
  _args[5] = Amplitude /*[VT_R8:1]*/;
  _args[6] = MaxAmplitude /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakViewParamDispT<T>::GetBreakLineParams(long Index/*[in]*/, double* Angle/*[out]*/, 
                                            double* Clearance/*[out]*/, 
                                            ksBreakLineTypeEnum* BreakLineType/*[out]*/, 
                                            double* Amplitude/*[out]*/, 
                                            double* MaxAmplitude/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBreakLineParams(Index, Angle, Clearance, BreakLineType, Amplitude, MaxAmplitude, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::get_BreaksCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreaksCount"), DISPID(4507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakViewParamDispT<T>::get_BreaksCount(void)
{
  long Result;
  this->get_BreaksCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::get_BreaksVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreaksVisible"), DISPID(4508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakViewParamDispT<T>::get_BreaksVisible(void)
{
  TOLEBOOL Result;
  this->get_BreaksVisible((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakViewParamDispT<T>::set_BreaksVisible(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreaksVisible"), DISPID(4508));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ICutViewParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D4C8B5AF-B2A1-4E07-9CD0-A1FC5B0BC1E1}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::AddCut(BSTR Name/*[in]*/, long Number/*[in]*/, double X/*[in]*/, 
                              double Y/*[in]*/, TOLEBOOL ModelCut/*[in]*/, 
                              Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                              Kompasltapi7_tlb::IViewPtr View/*[in]*/, long* Index/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddCut"), DISPID(3500));
  TAutoArgs<7> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Number /*[VT_I4:0]*/;
  _args[3] = X /*[VT_R8:0]*/;
  _args[4] = Y /*[VT_R8:0]*/;
  _args[5] = ModelCut /*[VT_BOOL:0]*/;
  _args[6] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Contour /*[VT_USERDEFINED:1]*/;
  _args[7] = (LPDISPATCH)(Kompasltapi7_tlb::IView*)View /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Index /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
ICutViewParamDispT<T>::AddCut(BSTR Name/*[in]*/, long Number/*[in]*/, double X/*[in]*/, 
                              double Y/*[in]*/, TOLEBOOL ModelCut/*[in]*/, 
                              Kompasltapi7_tlb::IDrawingObjectPtr Contour/*[in]*/, 
                              Kompasltapi7_tlb::IViewPtr View/*[in]*/)
{
  long Index;
  this->AddCut(Name, Number, X, Y, ModelCut, Contour, View, (long*)&Index);
  return Index;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::DeleteCut(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteCut"), DISPID(3501));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutViewParamDispT<T>::DeleteCut(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteCut(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::DeleteAllCuts(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteAllCuts"), DISPID(3502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutViewParamDispT<T>::DeleteAllCuts(void)
{
  TOLEBOOL Result;
  this->DeleteAllCuts((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::SetCutPlanePosition(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCutPlanePosition"), DISPID(3503));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutViewParamDispT<T>::SetCutPlanePosition(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCutPlanePosition(Index, X, Y, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::GetCutPlanePosition(long Index/*[in]*/, double* X/*[out]*/, 
                                           double* Y/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCutPlanePosition"), DISPID(3504));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:1]*/;
  _args[3] = Y /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutViewParamDispT<T>::GetCutPlanePosition(long Index/*[in]*/, double* X/*[out]*/, 
                                           double* Y/*[out]*/)
{
  TOLEBOOL Result;
  this->GetCutPlanePosition(Index, X, Y, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::SetCutParams(long Index/*[in]*/, BSTR Name/*[in]*/, long Number/*[in]*/, 
                                    TOLEBOOL ModelCut/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCutParams"), DISPID(3505));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Name /*[VT_BSTR:0]*/;
  _args[3] = Number /*[VT_I4:0]*/;
  _args[4] = ModelCut /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutViewParamDispT<T>::SetCutParams(long Index/*[in]*/, BSTR Name/*[in]*/, long Number/*[in]*/, 
                                    TOLEBOOL ModelCut/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCutParams(Index, Name, Number, ModelCut, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::GetCutParams(long Index/*[in]*/, BSTR* Name/*[out]*/, long* Number/*[out]*/, 
                                    TOLEBOOL* ModelCut/*[out]*/, 
                                    Kompasltapi7_tlb::IDrawingObjectPtr* Contour/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCutParams"), DISPID(3506));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Name /*[VT_BSTR:1]*/;
  _args[3] = Number /*[VT_I4:1]*/;
  _args[4] = ModelCut /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Contour /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ICutViewParamDispT<T>::GetCutParams(long Index/*[in]*/, BSTR* Name/*[out]*/, long* Number/*[out]*/, 
                                    TOLEBOOL* ModelCut/*[out]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Contour;
  this->GetCutParams(Index, Name, Number, ModelCut, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Contour);
  return Contour;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::get_CutsCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutsCount"), DISPID(3507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutViewParamDispT<T>::get_CutsCount(void)
{
  long Result;
  this->get_CutsCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::get_LocalCut(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LocalCut"), DISPID(3508));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutViewParamDispT<T>::get_LocalCut(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->get_LocalCut(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::set_LocalCut(long Index/*[in]*/, TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LocalCut"), DISPID(3508));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutViewParamDispT<T>::get_HatchParam(long Index/*[in]*/, 
                                      Kompasltapi7_tlb::IHatchParamPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HatchParam"), DISPID(3509));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IHatchParam**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IHatchParamPtr __fastcall
ICutViewParamDispT<T>::get_HatchParam(long Index/*[in]*/)
{
  Kompasltapi7_tlb::IHatchParamPtr Result;
  this->get_HatchParam(Index, (Kompasltapi7_tlb::IHatchParamPtr*)&Result);
  return Result;
}

// *********************************************************************//
// DispIntf:  IHatchParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {437D6587-7649-4A0C-80BB-7A6E89661839}
// *********************************************************************//
template <class T> HRESULT __fastcall
IHatchParamDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(6500));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHatchParamDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(6500));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::get_Color(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHatchParamDispT<T>::get_Color(void)
{
  long Result;
  this->get_Color((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::set_Color(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6501));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::get_Step(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(6502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHatchParamDispT<T>::get_Step(void)
{
  double Result;
  this->get_Step((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::set_Step(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(6502));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::get_Angle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHatchParamDispT<T>::get_Angle(void)
{
  double Result;
  this->get_Angle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::set_Angle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6503));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::get_HatchType(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HatchType"), DISPID(6504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHatchParamDispT<T>::get_HatchType(void)
{
  TOLEBOOL Result;
  this->get_HatchType((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::set_HatchType(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HatchType"), DISPID(6504));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::get_Width(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(6505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHatchParamDispT<T>::get_Width(void)
{
  double Result;
  this->get_Width((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::set_Width(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(6505));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::get_IsSheetAngle(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsSheetAngle"), DISPID(6506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHatchParamDispT<T>::get_IsSheetAngle(void)
{
  TOLEBOOL Result;
  this->get_IsSheetAngle((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchParamDispT<T>::set_IsSheetAngle(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsSheetAngle"), DISPID(6506));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIDocument2DSettings
// Interface: IDocument2DSettings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDocument2DSettingsT<T>::set_LayersGroupWay(LayersGroupWayEnum PVal/*[in]*/)
{
  return (*this)->set_LayersGroupWay(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDocument2DSettingsT<T>::get_LayersGroupWay(LayersGroupWayEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_LayersGroupWay(PVal);
}

template <class T> LayersGroupWayEnum __fastcall
TCOMIDocument2DSettingsT<T>::get_LayersGroupWay(void)
{
  LayersGroupWayEnum PVal;
  OLECHECK(this->get_LayersGroupWay((LayersGroupWayEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDocument2DSettingsT<T>::set_CompositionInherit(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_CompositionInherit(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDocument2DSettingsT<T>::get_CompositionInherit(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CompositionInherit(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDocument2DSettingsT<T>::get_CompositionInherit(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CompositionInherit((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDocument2DSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B09A64BF-7AA6-4BF6-B8E8-AA8E8EE6E9D6}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::set_LayersGroupWay(LayersGroupWayEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayersGroupWay"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::get_LayersGroupWay(LayersGroupWayEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayersGroupWay"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LayersGroupWayEnum __fastcall
IDocument2DSettingsDispT<T>::get_LayersGroupWay(void)
{
  LayersGroupWayEnum PVal;
  this->get_LayersGroupWay((LayersGroupWayEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::set_CompositionInherit(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompositionInherit"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::get_CompositionInherit(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CompositionInherit"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDocument2DSettingsDispT<T>::get_CompositionInherit(void)
{
  TOLEBOOL PVal;
  this->get_CompositionInherit((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDocument2DSettingsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDocument2DSettingsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDocument2DSettingsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDocument2DSettingsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDocument2DSettingsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDrawingDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0DC39FC2-4FB1-489E-A76E-E47413199FA3}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::set_SheetAutoNumber(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetAutoNumber"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetAutoNumber(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetAutoNumber"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetAutoNumber(void)
{
  TOLEBOOL PVal;
  this->get_SheetAutoNumber((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::set_SheetFirstNumber(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetFirstNumber"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetFirstNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetFirstNumber"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetFirstNumber(void)
{
  long PVal;
  this->get_SheetFirstNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::set_SheetAutoCount(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetAutoCount"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetAutoCount(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetAutoCount"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetAutoCount(void)
{
  TOLEBOOL PVal;
  this->get_SheetAutoCount((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::set_SheetsCount(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetsCount"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetsCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetsCount"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingDocumentSettingsDispT<T>::get_SheetsCount(void)
{
  long PVal;
  this->get_SheetsCount((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IFragmentDocumentSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A33D05CF-EFFF-4BBE-9BE0-15D283425828}
// *********************************************************************//
// *********************************************************************//
// DispIntf:  ILibItemSettings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C474582A-2AD4-4ED5-A86A-A169C4DA5D54}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILibItemSettingsDispT<T>::get_ItemCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ItemCount"), DISPID(500));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILibItemSettingsDispT<T>::get_ItemCount(void)
{
  long Count;
  this->get_ItemCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
ILibItemSettingsDispT<T>::GetItem(TVariantInParam Index/*[in]*/, TOLEBOOL* Use/*[out]*/, 
                                  double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetItem"), DISPID(501));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  _args[2] = Use /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> double __fastcall
ILibItemSettingsDispT<T>::GetItem(TVariantInParam Index/*[in]*/, TOLEBOOL* Use/*[out]*/)
{
  double Result;
  this->GetItem(Index, Use, (double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibItemSettingsDispT<T>::SetItem(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetItem"), DISPID(502));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  _args[2] = Use /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibItemSettingsDispT<T>::SetItem(TVariantInParam Index/*[in]*/, TOLEBOOL Use/*[in]*/)
{
  TOLEBOOL Result;
  this->SetItem(Index, Use, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILibItemSettingsDispT<T>::GetItems(TVariant* UniqIds/*[out]*/, TVariant* Uses/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetItems"), DISPID(503));
  TAutoArgs<2> _args;
  _args[1] = UniqIds /*[VT_VARIANT:1]*/;
  _args[2] = Uses /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILibItemSettingsDispT<T>::GetItems(TVariant* UniqIds/*[out]*/, TVariant* Uses/*[out]*/)
{
  TOLEBOOL Result;
  this->GetItems(UniqIds, Uses, (TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMIInsertionParameters
// Interface: IInsertionParameters
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertionParametersT<T>::get_FileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_SourceHeight(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SourceHeight(PVal);
}

template <class T> double __fastcall
TCOMIInsertionParametersT<T>::get_SourceHeight(void)
{
  double PVal;
  OLECHECK(this->get_SourceHeight((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_SourceWidth(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SourceWidth(PVal);
}

template <class T> double __fastcall
TCOMIInsertionParametersT<T>::get_SourceWidth(void)
{
  double PVal;
  OLECHECK(this->get_SourceWidth((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Height(PVal);
}

template <class T> double __fastcall
TCOMIInsertionParametersT<T>::get_Height(void)
{
  double PVal;
  OLECHECK(this->get_Height((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::set_Height(double PVal/*[in]*/)
{
  return (*this)->set_Height(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> double __fastcall
TCOMIInsertionParametersT<T>::get_Width(void)
{
  double PVal;
  OLECHECK(this->get_Width((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::set_Width(double PVal/*[in]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Scale(PVal);
}

template <class T> double __fastcall
TCOMIInsertionParametersT<T>::get_Scale(void)
{
  double PVal;
  OLECHECK(this->get_Scale((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::set_Scale(double PVal/*[in]*/)
{
  return (*this)->set_Scale(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::AutoScale(TOLEBOOL ByHeight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->AutoScale(ByHeight, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIInsertionParametersT<T>::AutoScale(TOLEBOOL ByHeight/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->AutoScale(ByHeight, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_Angle(ksAngleEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> ksAngleEnum __fastcall
TCOMIInsertionParametersT<T>::get_Angle(void)
{
  ksAngleEnum PVal;
  OLECHECK(this->get_Angle((ksAngleEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::set_Angle(ksAngleEnum PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_InsertionDefinition(PVal);
}

template <class T> Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall
TCOMIInsertionParametersT<T>::get_InsertionDefinition(void)
{
  Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
  OLECHECK(this->get_InsertionDefinition((Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/)
{
  return (*this)->set_InsertionDefinition(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_ImageResolution(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ImageResolution(PVal);
}

template <class T> double __fastcall
TCOMIInsertionParametersT<T>::get_ImageResolution(void)
{
  double PVal;
  OLECHECK(this->get_ImageResolution((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::set_ImageResolution(double PVal/*[in]*/)
{
  return (*this)->set_ImageResolution(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionParametersT<T>::get_Palette(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Palette(PVal);
}

template <class T> long __fastcall
TCOMIInsertionParametersT<T>::get_Palette(void)
{
  long PVal;
  OLECHECK(this->get_Palette((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsertionParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1DB65C7E-535E-489E-8F34-84DF7FBA09B2}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionParametersDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_SourceHeight(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceHeight"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IInsertionParametersDispT<T>::get_SourceHeight(void)
{
  double PVal;
  this->get_SourceHeight((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_SourceWidth(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceWidth"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IInsertionParametersDispT<T>::get_SourceWidth(void)
{
  double PVal;
  this->get_SourceWidth((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IInsertionParametersDispT<T>::get_Height(void)
{
  double PVal;
  this->get_Height((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::set_Height(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IInsertionParametersDispT<T>::get_Width(void)
{
  double PVal;
  this->get_Width((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::set_Width(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IInsertionParametersDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::AutoScale(TOLEBOOL ByHeight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoScale"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = ByHeight /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionParametersDispT<T>::AutoScale(TOLEBOOL ByHeight/*[in]*/)
{
  TOLEBOOL PVal;
  this->AutoScale(ByHeight, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Angle(ksAngleEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAngleEnum __fastcall
IInsertionParametersDispT<T>::get_Angle(void)
{
  ksAngleEnum PVal;
  this->get_Angle((ksAngleEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::set_Angle(ksAngleEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionDefinition**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall
IInsertionParametersDispT<T>::get_InsertionDefinition(void)
{
  Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
  this->get_InsertionDefinition((Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsertionDefinition*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_ImageResolution(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ImageResolution"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IInsertionParametersDispT<T>::get_ImageResolution(void)
{
  double PVal;
  this->get_ImageResolution((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::set_ImageResolution(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ImageResolution"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Palette(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Palette"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionParametersDispT<T>::get_Palette(void)
{
  long PVal;
  this->get_Palette((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertionParametersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertionParametersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertionParametersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionParametersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionParametersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIInsertionDefinition
// Interface: IInsertionDefinition
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertionDefinitionT<T>::get_InsertionType(ksInsertionTypeEnum* Val/*[out,retval]*/)
{
  return (*this)->get_InsertionType(Val);
}

template <class T> ksInsertionTypeEnum __fastcall
TCOMIInsertionDefinitionT<T>::get_InsertionType(void)
{
  ksInsertionTypeEnum Val;
  OLECHECK(this->get_InsertionType((ksInsertionTypeEnum*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIInsertionDefinitionT<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionDefinitionT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertionDefinitionT<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionDefinitionT<T>::set_FileName(BSTR PVal/*[in]*/)
{
  return (*this)->set_FileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionDefinitionT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertionDefinitionT<T>::get_FileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionDefinitionT<T>::Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                   TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                   Kompasltapi7_tlb::IKompasDocument2DPtr* Result/*[out,retval]*/)
{
  return (*this)->Open(Visible, ReadOnly, Result);
}

template <class T> Kompasltapi7_tlb::IKompasDocument2DPtr __fastcall
TCOMIInsertionDefinitionT<T>::Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                   TOLEBOOL ReadOnly/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocument2DPtr Result;
  OLECHECK(this->Open(Visible, ReadOnly, (Kompasltapi7_tlb::IKompasDocument2DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIInsertionDefinitionT<T>::get_InsertionObjectsCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_InsertionObjectsCount(PVal);
}

template <class T> long __fastcall
TCOMIInsertionDefinitionT<T>::get_InsertionObjectsCount(void)
{
  long PVal;
  OLECHECK(this->get_InsertionObjectsCount((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsertionDefinition
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {66907239-09BA-4456-AC9A-318804099628}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_InsertionType(ksInsertionTypeEnum* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Val /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksInsertionTypeEnum __fastcall
IInsertionDefinitionDispT<T>::get_InsertionType(void)
{
  ksInsertionTypeEnum Val;
  this->get_InsertionType((ksInsertionTypeEnum*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionDefinitionDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::set_FileName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionDefinitionDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                   TOLEBOOL ReadOnly/*[in,def,opt]*/, 
                                   Kompasltapi7_tlb::IKompasDocument2DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Open"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Visible /*[VT_BOOL:0]*/;
  _args[2] = ReadOnly /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasDocument2D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasDocument2DPtr __fastcall
IInsertionDefinitionDispT<T>::Open(TOLEBOOL Visible/*[in,def,opt]*/, 
                                   TOLEBOOL ReadOnly/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IKompasDocument2DPtr Result;
  this->Open(Visible, ReadOnly, (Kompasltapi7_tlb::IKompasDocument2DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_InsertionObjectsCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionObjectsCount"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionDefinitionDispT<T>::get_InsertionObjectsCount(void)
{
  long PVal;
  this->get_InsertionObjectsCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertionDefinitionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertionDefinitionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertionDefinitionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionDefinitionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionDefinitionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITableCell
// Interface: ITableCell
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITableCellT<T>::get_Text(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Text(Result);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMITableCellT<T>::get_Text(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITableCellT<T>::get_CellID(long* Result/*[out,retval]*/)
{
  return (*this)->get_CellID(Result);
}

template <class T> long __fastcall
TCOMITableCellT<T>::get_CellID(void)
{
  long Result;
  OLECHECK(this->get_CellID((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITableCellT<T>::get_Row(long* Result/*[out,retval]*/)
{
  return (*this)->get_Row(Result);
}

template <class T> long __fastcall
TCOMITableCellT<T>::get_Row(void)
{
  long Result;
  OLECHECK(this->get_Row((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITableCellT<T>::get_Column(long* Result/*[out,retval]*/)
{
  return (*this)->get_Column(Result);
}

template <class T> long __fastcall
TCOMITableCellT<T>::get_Column(void)
{
  long Result;
  OLECHECK(this->get_Column((long*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ITableCell
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CF9150BA-0E3A-46DE-8973-332A00361474}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_Text(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITableCellDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_Text((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_CellID(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellID"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITableCellDispT<T>::get_CellID(void)
{
  long Result;
  this->get_CellID((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_Row(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Row"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITableCellDispT<T>::get_Row(void)
{
  long Result;
  this->get_Row((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_Column(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Column"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITableCellDispT<T>::get_Column(void)
{
  long Result;
  this->get_Column((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITableCellDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITableCellDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITableCellDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITableCellDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITableCellDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ITable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D3715420-645E-435B-BB25-8E35AC570718}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITableDispT<T>::get_RowsCount(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RowsCount"), DISPID(2501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITableDispT<T>::get_RowsCount(void)
{
  long Val;
  this->get_RowsCount((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::get_ColumnsCount(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColumnsCount"), DISPID(2502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITableDispT<T>::get_ColumnsCount(void)
{
  long Val;
  this->get_ColumnsCount((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::get_Cell(long RowN/*[in]*/, long ColN/*[in]*/, 
                         Kompasltapi7_tlb::ITableCellPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cell"), DISPID(2503));
  TAutoArgs<2> _args;
  _args[1] = RowN /*[VT_I4:0]*/;
  _args[2] = ColN /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITableCell**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITableCellPtr __fastcall
ITableDispT<T>::get_Cell(long RowN/*[in]*/, long ColN/*[in]*/)
{
  Kompasltapi7_tlb::ITableCellPtr Val;
  this->get_Cell(RowN, ColN, (Kompasltapi7_tlb::ITableCellPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::get_CellById(long CellID/*[in]*/, 
                             Kompasltapi7_tlb::ITableCellPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellById"), DISPID(2504));
  TAutoArgs<1> _args;
  _args[1] = CellID /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITableCell**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITableCellPtr __fastcall
ITableDispT<T>::get_CellById(long CellID/*[in]*/)
{
  Kompasltapi7_tlb::ITableCellPtr Val;
  this->get_CellById(CellID, (Kompasltapi7_tlb::ITableCellPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::AddColumn(long ColN/*[in]*/, TOLEBOOL Right/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddColumn"), DISPID(2505));
  TAutoArgs<2> _args;
  _args[1] = ColN /*[VT_I4:0]*/;
  _args[2] = Right /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableDispT<T>::AddColumn(long ColN/*[in]*/, TOLEBOOL Right/*[in]*/)
{
  TOLEBOOL PVal;
  this->AddColumn(ColN, Right, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::DeleteColumn(long ColN/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteColumn"), DISPID(2506));
  TAutoArgs<1> _args;
  _args[1] = ColN /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableDispT<T>::DeleteColumn(long ColN/*[in]*/)
{
  TOLEBOOL PVal;
  this->DeleteColumn(ColN, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::AddRow(long RowN/*[in]*/, TOLEBOOL Down/*[in]*/, TOLEBOOL* PVa/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddRow"), DISPID(2507));
  TAutoArgs<2> _args;
  _args[1] = RowN /*[VT_I4:0]*/;
  _args[2] = Down /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVa /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableDispT<T>::AddRow(long RowN/*[in]*/, TOLEBOOL Down/*[in]*/)
{
  TOLEBOOL PVa;
  this->AddRow(RowN, Down, (TOLEBOOL*)&PVa);
  return PVa;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::DeleteRow(long RowN/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteRow"), DISPID(2508));
  TAutoArgs<1> _args;
  _args[1] = RowN /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableDispT<T>::DeleteRow(long RowN/*[in]*/)
{
  TOLEBOOL PVal;
  this->DeleteRow(RowN, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::Clear(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(2509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableDispT<T>::Clear(void)
{
  TOLEBOOL PVal;
  this->Clear((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableDispT<T>::get_Range(long BeginRow/*[in]*/, long BeginColumn/*[in]*/, long EndRow/*[in]*/, 
                          long EndColumn/*[in]*/, 
                          Kompasltapi7_tlb::ITableRangePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Range"), DISPID(2510));
  TAutoArgs<4> _args;
  _args[1] = BeginRow /*[VT_I4:0]*/;
  _args[2] = BeginColumn /*[VT_I4:0]*/;
  _args[3] = EndRow /*[VT_I4:0]*/;
  _args[4] = EndColumn /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITableRange**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITableRangePtr __fastcall
ITableDispT<T>::get_Range(long BeginRow/*[in]*/, long BeginColumn/*[in]*/, long EndRow/*[in]*/, 
                          long EndColumn/*[in]*/)
{
  Kompasltapi7_tlb::ITableRangePtr PVal;
  this->get_Range(BeginRow, BeginColumn, EndRow, EndColumn, (Kompasltapi7_tlb::ITableRangePtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ITableRange
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D78E47DC-172B-4824-A519-9BC2C0387B5C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITableRangeDispT<T>::CombineCells(TOLEBOOL* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CombineCells"), DISPID(3501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableRangeDispT<T>::CombineCells(void)
{
  TOLEBOOL Val;
  this->CombineCells((TOLEBOOL*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableRangeDispT<T>::DivideCells(long ColumnCount/*[in]*/, long RowCount/*[in]*/, 
                                 TOLEBOOL PrepareCombine, TOLEBOOL* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DivideCells"), DISPID(3502));
  TAutoArgs<3> _args;
  _args[1] = ColumnCount /*[VT_I4:0]*/;
  _args[2] = RowCount /*[VT_I4:0]*/;
  _args[3] = PrepareCombine /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Val /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableRangeDispT<T>::DivideCells(long ColumnCount/*[in]*/, long RowCount/*[in]*/, 
                                 TOLEBOOL PrepareCombine)
{
  TOLEBOOL Val;
  this->DivideCells(ColumnCount, RowCount, PrepareCombine, (TOLEBOOL*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableRangeDispT<T>::ClearCells(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClearCells"), DISPID(3503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITableRangeDispT<T>::ClearCells(void)
{
  TOLEBOOL PVal;
  this->ClearCells((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableRangeDispT<T>::get_Cells(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cells"), DISPID(3504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ITableRangeDispT<T>::get_Cells(void)
{
  TVariant PVal;
  this->get_Cells((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableRangeDispT<T>::get_CellsFormat(Kompasltapi7_tlb::ICellFormatPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellsFormat"), DISPID(3505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICellFormat**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICellFormatPtr __fastcall
ITableRangeDispT<T>::get_CellsFormat(void)
{
  Kompasltapi7_tlb::ICellFormatPtr Val;
  this->get_CellsFormat((Kompasltapi7_tlb::ICellFormatPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableRangeDispT<T>::get_CellsBoundaries(Kompasltapi7_tlb::ICellBoundariesPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CellsBoundaries"), DISPID(3506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICellBoundaries**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICellBoundariesPtr __fastcall
ITableRangeDispT<T>::get_CellsBoundaries(void)
{
  Kompasltapi7_tlb::ICellBoundariesPtr Val;
  this->get_CellsBoundaries((Kompasltapi7_tlb::ICellBoundariesPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITableRangeDispT<T>::get_Texts(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Texts"), DISPID(3507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ITableRangeDispT<T>::get_Texts(void)
{
  TVariant PVal;
  this->get_Texts((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITableRangeDispT<T>::set_Texts(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Texts"), DISPID(3507));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ICellFormat
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9F2F27E7-8FB2-4C6C-A54D-35DB240060D8}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_TextStyle(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextStyle"), DISPID(4501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICellFormatDispT<T>::get_TextStyle(void)
{
  long Result;
  this->get_TextStyle((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_TextStyle(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextStyle"), DISPID(4501));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_ReadOnly(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(4502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICellFormatDispT<T>::get_ReadOnly(void)
{
  TOLEBOOL Result;
  this->get_ReadOnly((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_ReadOnly(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadOnly"), DISPID(4502));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_OneLine(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OneLine"), DISPID(4503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICellFormatDispT<T>::get_OneLine(void)
{
  TOLEBOOL Result;
  this->get_OneLine((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_OneLine(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OneLine"), DISPID(4503));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_LeftEdge(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftEdge"), DISPID(4504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICellFormatDispT<T>::get_LeftEdge(void)
{
  double Result;
  this->get_LeftEdge((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_LeftEdge(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftEdge"), DISPID(4504));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_RightEdge(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightEdge"), DISPID(4505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICellFormatDispT<T>::get_RightEdge(void)
{
  double Result;
  this->get_RightEdge((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_RightEdge(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightEdge"), DISPID(4505));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_SpaceBefore(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpaceBefore"), DISPID(4506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICellFormatDispT<T>::get_SpaceBefore(void)
{
  double Result;
  this->get_SpaceBefore((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_SpaceBefore(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpaceBefore"), DISPID(4506));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_SpaceAfter(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpaceAfter"), DISPID(4507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICellFormatDispT<T>::get_SpaceAfter(void)
{
  double Result;
  this->get_SpaceAfter((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_SpaceAfter(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpaceAfter"), DISPID(4507));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_Width(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(4508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICellFormatDispT<T>::get_Width(void)
{
  double Result;
  this->get_Width((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_Width(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(4508));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_Height(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICellFormatDispT<T>::get_Height(void)
{
  double Result;
  this->get_Height((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_Height(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4509));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HFormat"), DISPID(4510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTextHorizontalFormatEnum __fastcall
ICellFormatDispT<T>::get_HFormat(void)
{
  ksTextHorizontalFormatEnum Result;
  this->get_HFormat((ksTextHorizontalFormatEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HFormat"), DISPID(4510));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::get_VFormat(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VFormat"), DISPID(4511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICellFormatDispT<T>::get_VFormat(void)
{
  TOLEBOOL Result;
  this->get_VFormat((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellFormatDispT<T>::set_VFormat(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VFormat"), DISPID(4511));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ICellBoundaries
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1E29E849-1D1E-4791-BD31-8EF00ED5D118}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICellBoundariesDispT<T>::get_LineStyle(ksCellBoundariesEnum Index/*[in]*/, 
                                       ksCurveStyleEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineStyle"), DISPID(5501));
  TAutoArgs<1> _args;
  _args[1] = (int)Index /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksCurveStyleEnum __fastcall
ICellBoundariesDispT<T>::get_LineStyle(ksCellBoundariesEnum Index/*[in]*/)
{
  ksCurveStyleEnum Result;
  this->get_LineStyle(Index, (ksCurveStyleEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellBoundariesDispT<T>::set_LineStyle(ksCellBoundariesEnum Index/*[in]*/, 
                                       ksCurveStyleEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineStyle"), DISPID(5501));
  TAutoArgs<2> _args;
  _args[1] = (int)Index /*[VT_USERDEFINED:0]*/;
  _args[2] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICellBoundariesDispT<T>::get_LineVisible(ksCellBoundariesEnum Index/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineVisible"), DISPID(5502));
  TAutoArgs<1> _args;
  _args[1] = (int)Index /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICellBoundariesDispT<T>::get_LineVisible(ksCellBoundariesEnum Index/*[in]*/)
{
  TOLEBOOL Result;
  this->get_LineVisible(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICellBoundariesDispT<T>::set_LineVisible(ksCellBoundariesEnum Index/*[in]*/, 
                                         TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineVisible"), DISPID(5502));
  TAutoArgs<2> _args;
  _args[1] = (int)Index /*[VT_USERDEFINED:0]*/;
  _args[2] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ksPropertyManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {5A89C538-E0DD-4C21-B3D1-3BF65EEB8C3E}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::ButtonClick(long ButtonID)
{
  _TDispID _dispid(/* ButtonClick */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = ButtonID /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::ChangeControlValue(Kompasltapi7_tlb::IPropertyControlPtr Control)
{
  _TDispID _dispid(/* ChangeControlValue */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::ControlCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                                long ButtonID)
{
  _TDispID _dispid(/* ControlCommand */ DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
  _args[2] = ButtonID /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::ButtonUpdate(long ButtonID, long* Check, TOLEBOOL* Enable)
{
  _TDispID _dispid(/* ButtonUpdate */ DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = ButtonID /*[VT_I4:0]*/;
  _args[2] = Check /*[VT_I4:1]*/;
  _args[3] = Enable /*[VT_BOOL:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::ProcessActivate()
{
  _TDispID _dispid(/* ProcessActivate */ DISPID(5));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::ProcessDeactivate()
{
  _TDispID _dispid(/* ProcessDeactivate */ DISPID(6));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::CommandHelp(long Id)
{
  _TDispID _dispid(/* CommandHelp */ DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::SelectItem(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                            long Index, TOLEBOOL Select)
{
  _TDispID _dispid(/* SelectItem */ DISPID(8));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
  _args[2] = Index /*[VT_I4:0]*/;
  _args[3] = Select /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::CheckItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index
                                           , TOLEBOOL Check)
{
  _TDispID _dispid(/* CheckItem */ DISPID(9));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
  _args[2] = Index /*[VT_I4:0]*/;
  _args[3] = Check /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::ChangeActiveTab(long TabIndex)
{
  _TDispID _dispid(/* ChangeActiveTab */ DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = TabIndex /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::EditFocus(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                           TOLEBOOL Set)
{
  _TDispID _dispid(/* EditFocus */ DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
  _args[2] = Set /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyManagerNotifyDispT<T>::UserMenuCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                                 long MenuID)
{
  _TDispID _dispid(/* UserMenuCommand */ DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPropertyControl*)Control /*[VT_USERDEFINED:1]*/;
  _args[2] = MenuID /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksPropertyUserControlNotify
// Flags:     (4096) Dispatchable
// GUID:      {5A31BB02-026C-4419-A0FF-A93CF58DCA99}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksPropertyUserControlNotifyDispT<T>::CreateOCX(LPDISPATCH IOcx)
{
  _TDispID _dispid(/* CreateOCX */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = IOcx /*[VT_DISPATCH:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksPropertyUserControlNotifyDispT<T>::DestroyOCX()
{
  _TDispID _dispid(/* DestroyOCX */ DISPID(2));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksDocumentFrameNotify
// Flags:     (4096) Dispatchable
// GUID:      {6ECBB531-5609-4364-AC92-7A6A21D23313}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::BeginPaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj)
{
  _TDispID _dispid(/* BeginPaint */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPaintObject*)PaintObj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::ClosePaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj)
{
  _TDispID _dispid(/* ClosePaint */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IPaintObject*)PaintObj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::MouseDown(short NButton/*[in]*/, short NShiftState/*[in]*/, 
                                         long X/*[in]*/, long Y/*[in]*/)
{
  _TDispID _dispid(/* MouseDown */ DISPID(3));
  TAutoArgs<4> _args;
  _args[1] = NButton /*[VT_I2:0]*/;
  _args[2] = NShiftState /*[VT_I2:0]*/;
  _args[3] = X /*[VT_I4:0]*/;
  _args[4] = Y /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::MouseUp(short NButton/*[in]*/, short NShiftState/*[in]*/, 
                                       long X/*[in]*/, long Y/*[in]*/)
{
  _TDispID _dispid(/* MouseUp */ DISPID(4));
  TAutoArgs<4> _args;
  _args[1] = NButton /*[VT_I2:0]*/;
  _args[2] = NShiftState /*[VT_I2:0]*/;
  _args[3] = X /*[VT_I4:0]*/;
  _args[4] = Y /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::MouseDblClick(short NButton/*[in]*/, short NShiftState/*[in]*/, 
                                             long X/*[in]*/, long Y/*[in]*/)
{
  _TDispID _dispid(/* MouseDblClick */ DISPID(5));
  TAutoArgs<4> _args;
  _args[1] = NButton /*[VT_I2:0]*/;
  _args[2] = NShiftState /*[VT_I2:0]*/;
  _args[3] = X /*[VT_I4:0]*/;
  _args[4] = Y /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::BeginPaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj/*[in]*/, 
                                            long DrawMode/*[in]*/)
{
  _TDispID _dispid(/* BeginPaintGL */ DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ksGLObject*)GlObj /*[VT_USERDEFINED:1]*/;
  _args[2] = DrawMode /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::ClosePaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj/*[in]*/, 
                                            long DrawMode/*[in]*/)
{
  _TDispID _dispid(/* ClosePaintGL */ DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ksGLObject*)GlObj /*[VT_USERDEFINED:1]*/;
  _args[2] = DrawMode /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::AddGabarit(Kompasltapi7_tlb::IGabaritObjectPtr GabObj)
{
  _TDispID _dispid(/* AddGabarit */ DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IGabaritObject*)GabObj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::Activate()
{
  _TDispID _dispid(/* Activate */ DISPID(9));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::Deactivate()
{
  _TDispID _dispid(/* Deactivate */ DISPID(10));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::CloseFrame()
{
  _TDispID _dispid(/* CloseFrame */ DISPID(11));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::MouseMove(short NShiftState/*[in]*/, long X/*[in]*/, long Y/*[in]*/)
{
  _TDispID _dispid(/* MouseMove */ DISPID(12));
  TAutoArgs<3> _args;
  _args[1] = NShiftState /*[VT_I2:0]*/;
  _args[2] = X /*[VT_I4:0]*/;
  _args[3] = Y /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocumentFrameNotifyDispT<T>::ShowOcxTree(LPDISPATCH Ocx/*[in]*/, TOLEBOOL show/*[in]*/)
{
  _TDispID _dispid(/* ShowOcxTree */ DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = Ocx /*[VT_DISPATCH:0]*/;
  _args[2] = show /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  IPaintObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D14726D-0EC2-49CE-B02C-FEDAA6D65BBD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPaintObjectDispT<T>::GetHWND(OLE_HANDLE* HWnd/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetHWND"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(HWnd /*[VT_INT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> OLE_HANDLE __fastcall
IPaintObjectDispT<T>::GetHWND(void)
{
  OLE_HANDLE HWnd;
  this->GetHWND((OLE_HANDLE*)&HWnd);
  return HWnd;
}

template <class T> HRESULT __fastcall
IPaintObjectDispT<T>::GetTransformMatrix(double* A11/*[out]*/, double* A12/*[out]*/, 
                                         double* A13/*[out]*/, double* A14/*[out]*/, 
                                         double* A21/*[out]*/, double* A22/*[out]*/, 
                                         double* A23/*[out]*/, double* A24/*[out]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetTransformMatrix"), DISPID(2));
  TAutoArgs<8> _args;
  _args[1] = A11 /*[VT_R8:1]*/;
  _args[2] = A12 /*[VT_R8:1]*/;
  _args[3] = A13 /*[VT_R8:1]*/;
  _args[4] = A14 /*[VT_R8:1]*/;
  _args[5] = A21 /*[VT_R8:1]*/;
  _args[6] = A22 /*[VT_R8:1]*/;
  _args[7] = A23 /*[VT_R8:1]*/;
  _args[8] = A24 /*[VT_R8:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPaintObjectDispT<T>::GetDIBForOutput(BSTR* MapFileName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetDIBForOutput"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(MapFileName /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IPaintObjectDispT<T>::GetDIBForOutput(void)
{
  BSTR MapFileName;
  this->GetDIBForOutput((BSTR*)&MapFileName);
  return MapFileName;
}

// *********************************************************************//
// DispIntf:  ksGLObject
// Flags:     (4096) Dispatchable
// GUID:      {B1C65023-B908-4CAD-9238-C5026520E62C}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glBegin(long Mode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glBegin"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Mode /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glEnd()
{
  _TDispID _dispid(*this, OLETEXT("glEnd"), DISPID(2));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glEnable(long Cap/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glEnable"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Cap /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glDisable(long Cap/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glDisable"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Cap /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glColor3d(double R/*[in]*/, double G/*[in]*/, double B/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glColor3d"), DISPID(20));
  TAutoArgs<3> _args;
  _args[1] = R /*[VT_R8:0]*/;
  _args[2] = G /*[VT_R8:0]*/;
  _args[3] = B /*[VT_R8:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glLineWidth(double W/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glLineWidth"), DISPID(21));
  TAutoArgs<1> _args;
  _args[1] = W /*[VT_R8:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glLineStipple(long Factor/*[in]*/, short Pattern/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glLineStipple"), DISPID(22));
  TAutoArgs<2> _args;
  _args[1] = Factor /*[VT_I4:0]*/;
  _args[2] = Pattern /*[VT_I2:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glPointSize(double W/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glPointSize"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = W /*[VT_R8:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glPolygonMode(long Face/*[in]*/, long Mode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glPolygonMode"), DISPID(24));
  TAutoArgs<2> _args;
  _args[1] = Face /*[VT_I4:0]*/;
  _args[2] = Mode /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glVertex2d(double X/*[in]*/, double Y/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glVertex2d"), DISPID(40));
  TAutoArgs<2> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glVertex2dv(double* PData/*[in]*/, long CountDouble/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glVertex2dv"), DISPID(41));
  TAutoArgs<2> _args;
  _args[1] = PData /*[VT_R8:1]*/;
  _args[2] = CountDouble /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glVertex3d(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glVertex3d"), DISPID(42));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glVertex3dv(double* PData/*[in]*/, long CountDouble/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glVertex3dv"), DISPID(43));
  TAutoArgs<2> _args;
  _args[1] = PData /*[VT_R8:1]*/;
  _args[2] = CountDouble /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glVertex4d(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                               double W/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glVertex4d"), DISPID(44));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  _args[4] = W /*[VT_R8:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksGLObjectDispT<T>::glVertex4dv(double* PData/*[in]*/, long CountDouble/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("glVertex4dv"), DISPID(45));
  TAutoArgs<2> _args;
  _args[1] = PData /*[VT_R8:1]*/;
  _args[2] = CountDouble /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  IGabaritObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B6674824-CD9D-4220-B2CB-9F939A9C35C8}
// *********************************************************************//
template <class T> HRESULT __fastcall
IGabaritObjectDispT<T>::GetCurrentGabarit(long NPage/*[in]*/, double* P1X/*[out]*/, 
                                          double* P1Y/*[out]*/, double* P1Z/*[out]*/, 
                                          double* P2X/*[out]*/, double* P2Y/*[out]*/, 
                                          double* P2Z/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCurrentGabarit"), DISPID(1));
  TAutoArgs<7> _args;
  _args[1] = NPage /*[VT_I4:0]*/;
  _args[2] = P1X /*[VT_R8:1]*/;
  _args[3] = P1Y /*[VT_R8:1]*/;
  _args[4] = P1Z /*[VT_R8:1]*/;
  _args[5] = P2X /*[VT_R8:1]*/;
  _args[6] = P2Y /*[VT_R8:1]*/;
  _args[7] = P2Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IGabaritObjectDispT<T>::GetCurrentGabarit(long NPage/*[in]*/, double* P1X/*[out]*/, 
                                          double* P1Y/*[out]*/, double* P1Z/*[out]*/, 
                                          double* P2X/*[out]*/, double* P2Y/*[out]*/, 
                                          double* P2Z/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetCurrentGabarit(NPage, P1X, P1Y, P1Z, P2X, P2Y, P2Z, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IGabaritObjectDispT<T>::AddGabarit(double X1/*[in]*/, double Y1/*[in]*/, double Z1/*[in]*/, 
                                   double X2/*[in]*/, double Y2/*[in]*/, double Z2/*[in]*/, 
                                   TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddGabarit"), DISPID(2));
  TAutoArgs<6> _args;
  _args[1] = X1 /*[VT_R8:0]*/;
  _args[2] = Y1 /*[VT_R8:0]*/;
  _args[3] = Z1 /*[VT_R8:0]*/;
  _args[4] = X2 /*[VT_R8:0]*/;
  _args[5] = Y2 /*[VT_R8:0]*/;
  _args[6] = Z2 /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IGabaritObjectDispT<T>::AddGabarit(double X1/*[in]*/, double Y1/*[in]*/, double Z1/*[in]*/, 
                                   double X2/*[in]*/, double Y2/*[in]*/, double Z2/*[in]*/)
{
  TOLEBOOL PVal;
  this->AddGabarit(X1, Y1, Z1, X2, Y2, Z2, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IGabaritObjectDispT<T>::GetGabaritModifying(TOLEBOOL* DocGabaritModify/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetGabaritModifying"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(DocGabaritModify /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IGabaritObjectDispT<T>::GetGabaritModifying(void)
{
  TOLEBOOL DocGabaritModify;
  this->GetGabaritModifying((TOLEBOOL*)&DocGabaritModify);
  return DocGabaritModify;
}

// *********************************************************************//
// DispIntf:  ksDrawingObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {E335A73F-DF27-4D33-8CBD-E928F797FB94}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::ChangeActive(TVariant Obj)
{
  _TDispID _dispid(/* ChangeActive */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginDelete(TVariant Objects)
{
  _TDispID _dispid(/* BeginDelete */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::Delete(TVariant Objects)
{
  _TDispID _dispid(/* Delete */ DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginMove(TVariant Objects)
{
  _TDispID _dispid(/* BeginMove */ DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::Move(TVariant Objects)
{
  _TDispID _dispid(/* Move */ DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginRotate(TVariant Objects)
{
  _TDispID _dispid(/* BeginRotate */ DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::Rotate(TVariant Objects)
{
  _TDispID _dispid(/* Rotate */ DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginScale(TVariant Objects)
{
  _TDispID _dispid(/* BeginScale */ DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::Scale(TVariant Objects)
{
  _TDispID _dispid(/* Scale */ DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginTransform(TVariant Objects)
{
  _TDispID _dispid(/* BeginTransform */ DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::Transform(TVariant Objects)
{
  _TDispID _dispid(/* Transform */ DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginCopy(TVariant Objects)
{
  _TDispID _dispid(/* BeginCopy */ DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::Copy(TVariant Objects)
{
  _TDispID _dispid(/* Copy */ DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginSymmetry(TVariant Objects)
{
  _TDispID _dispid(/* BeginSymmetry */ DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::Symmetry(TVariant Objects)
{
  _TDispID _dispid(/* Symmetry */ DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginProcess(long PType, TVariant ObjRef)
{
  _TDispID _dispid(/* BeginProcess */ DISPID(16));
  TAutoArgs<2> _args;
  _args[1] = PType /*[VT_I4:0]*/;
  _args[2] = ObjRef /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::EndProcess(long PType)
{
  _TDispID _dispid(/* EndProcess */ DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = PType /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::CreateObject(TVariant Objects)
{
  _TDispID _dispid(/* CreateObject */ DISPID(18));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::UpdateObject(TVariant Objects)
{
  _TDispID _dispid(/* UpdateObject */ DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::BeginDestroyObject(TVariant Objects)
{
  _TDispID _dispid(/* BeginDestroyObject */ DISPID(20));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDrawingObjectNotifyDispT<T>::DestroyObject(TVariant Objects)
{
  _TDispID _dispid(/* DestroyObject */ DISPID(21));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksViewsAndLayersManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {FC04C62E-AB0F-4614-B3D9-0EA8671CEB08}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksViewsAndLayersManagerNotifyDispT<T>::BeginEdit()
{
  _TDispID _dispid(/* BeginEdit */ DISPID(1));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksViewsAndLayersManagerNotifyDispT<T>::EndEdit(TOLEBOOL IsOk)
{
  _TDispID _dispid(/* EndEdit */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = IsOk /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksLibraryManagerNotify
// Flags:     (4096) Dispatchable
// GUID:      {9B9CC387-E217-4EED-BCE9-9E1D645B49EE}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::BeginAttach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* BeginAttach */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::Attach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* Attach */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::BeginDetach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* BeginDetach */ DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::Detach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* Detach */ DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::BeginExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* BeginExecute */ DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::EndExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* EndExecute */ DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::SystemControlStop(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* SystemControlStop */ DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::SystemControlStart(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* SystemControlStart */ DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::AddLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* AddLibraryDescription */ DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::DeleteLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  _TDispID _dispid(/* DeleteLibraryDescription */ DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::AddInsert(Kompasltapi7_tlb::IInsertPtr PInsert, TOLEBOOL Create)
{
  _TDispID _dispid(/* AddInsert */ DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsert*)PInsert /*[VT_USERDEFINED:1]*/;
  _args[2] = Create /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::DeleteInsert(Kompasltapi7_tlb::IInsertPtr PInsert)
{
  _TDispID _dispid(/* DeleteInsert */ DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsert*)PInsert /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLibraryManagerNotifyDispT<T>::EditInsert(Kompasltapi7_tlb::ILibraryPtr PLibrary, 
                                           Kompasltapi7_tlb::IKompasDocumentPtr PDoc, 
                                           TOLEBOOL NewFrw)
{
  _TDispID _dispid(/* EditInsert */ DISPID(13));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILibrary*)PLibrary /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasDocument*)PDoc /*[VT_USERDEFINED:1]*/;
  _args[3] = NewFrw /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksSpecificationDescriptionNotify
// Flags:     (4096) Dispatchable
// GUID:      {A0DA14E6-4F92-4D18-8CD1-2BBAB695CE13}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::TuningSpcStyleBeginChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  _TDispID _dispid(/* TuningSpcStyleBeginChange */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::TuningSpcStyleChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr
                                                               , TOLEBOOL IsOk)
{
  _TDispID _dispid(/* TuningSpcStyleChange */ DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
  _args[2] = IsOk /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::ChangeCurrentSpcDescription(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  _TDispID _dispid(/* ChangeCurrentSpcDescription */ DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::SpcDescriptionAdd(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  _TDispID _dispid(/* SpcDescriptionAdd */ DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::SpcDescriptionRemove(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  _TDispID _dispid(/* SpcDescriptionRemove */ DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::SpcDescriptionBeginEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  _TDispID _dispid(/* SpcDescriptionBeginEdit */ DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::SpcDescriptionEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr
                                                             , TOLEBOOL IsOk)
{
  _TDispID _dispid(/* SpcDescriptionEdit */ DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationDescription*)Descr /*[VT_USERDEFINED:1]*/;
  _args[2] = IsOk /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::SynchronizationBegin()
{
  _TDispID _dispid(/* SynchronizationBegin */ DISPID(8));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::Synchronization()
{
  _TDispID _dispid(/* Synchronization */ DISPID(9));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::BeginCalcPositions()
{
  _TDispID _dispid(/* BeginCalcPositions */ DISPID(10));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::CalcPositions()
{
  _TDispID _dispid(/* CalcPositions */ DISPID(11));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationDescriptionNotifyDispT<T>::BeginCreateObject(long TypeObj)
{
  _TDispID _dispid(/* BeginCreateObject */ DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = TypeObj /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksSpecificationObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {1C4DEC41-A8EA-40EE-9AC8-F807232DB874}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* BeginDelete */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* Delete */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                  long Number)
{
  _TDispID _dispid(/* CellDblClick */ DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  _args[2] = Number /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                   long Number)
{
  _TDispID _dispid(/* CellBeginEdit */ DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  _args[2] = Number /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* ChangeCurrent */ DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* DocumentBeginAdd */ DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                 BSTR DocName)
{
  _TDispID _dispid(/* DocumentAdd */ DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  _args[2] = DocName /*[VT_BSTR:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                    BSTR DocName)
{
  _TDispID _dispid(/* DocumentRemove */ DISPID(8));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  _args[2] = DocName /*[VT_BSTR:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* BeginGeomChange */ DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* GeomChange */ DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::BeginProcess(long PType, 
                                                  Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* BeginProcess */ DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = PType /*[VT_I4:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::EndProcess(long PType)
{
  _TDispID _dispid(/* EndProcess */ DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PType /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* CreateObject */ DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksSpecificationObjectNotifyDispT<T>::UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  _TDispID _dispid(/* UpdateObject */ DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISpecificationObject*)Obj /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksLayoutSheetsNotify
// Flags:     (4096) Dispatchable
// GUID:      {58E30500-6073-4337-BFC1-32A74EA17DE8}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksLayoutSheetsNotifyDispT<T>::Add(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
{
  _TDispID _dispid(/* Add */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayoutSheet*)PSheet /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLayoutSheetsNotifyDispT<T>::Delete(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
{
  _TDispID _dispid(/* Delete */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayoutSheet*)PSheet /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksLayoutSheetsNotifyDispT<T>::_Update(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
{
  _TDispID _dispid(/* Update */ DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILayoutSheet*)PSheet /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksModelObjectNotify
// Flags:     (4096) Dispatchable
// GUID:      {7B8E86E1-4304-449D-9CEC-1B14F74A16FB}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::BeginDelete(TVariant Obj)
{
  _TDispID _dispid(/* BeginDelete */ DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::Delete(TVariant Obj)
{
  _TDispID _dispid(/* Delete */ DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::Excluded(TVariant Obj, TOLEBOOL Excluded)
{
  _TDispID _dispid(/* Excluded */ DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  _args[2] = Excluded /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::Hidden(TVariant Obj, TOLEBOOL _Hidden)
{
  _TDispID _dispid(/* Hidden */ DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  _args[2] = _Hidden /*[VT_BOOL:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::BeginPropertyChanged(TVariant Obj)
{
  _TDispID _dispid(/* BeginPropertyChanged */ DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::PropertyChanged(TVariant Obj)
{
  _TDispID _dispid(/* PropertyChanged */ DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::BeginPlacementChanged(TVariant Obj)
{
  _TDispID _dispid(/* BeginPlacementChanged */ DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::PlacementChanged(TVariant Obj)
{
  _TDispID _dispid(/* PlacementChanged */ DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::BeginProcess(long PType, TVariant Pbj)
{
  _TDispID _dispid(/* BeginProcess */ DISPID(9));
  TAutoArgs<2> _args;
  _args[1] = PType /*[VT_I4:0]*/;
  _args[2] = Pbj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::EndProcess(long PType)
{
  _TDispID _dispid(/* EndProcess */ DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PType /*[VT_I4:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::CreateObject(TVariant Obj)
{
  _TDispID _dispid(/* CreateObject */ DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksModelObjectNotifyDispT<T>::UpdateObject(TVariant Obj)
{
  _TDispID _dispid(/* UpdateObject */ DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Obj /*[VT_VARIANT:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  ksDocument3DNotify7
// Flags:     (4096) Dispatchable
// GUID:      {C784D45B-8C68-4189-8F27-A3B0D6CFAEB2}
// *********************************************************************//
template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::BeginRebuild()
{
  _TDispID _dispid(/* BeginRebuild */ DISPID(1));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::Rebuild()
{
  _TDispID _dispid(/* Rebuild */ DISPID(2));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::BeginChoiceMaterial()
{
  _TDispID _dispid(/* BeginChoiceMaterial */ DISPID(3));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::ChoiceMaterial(BSTR Material, double Density)
{
  _TDispID _dispid(/* ChoiceMaterial */ DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Material /*[VT_BSTR:0]*/;
  _args[2] = Density /*[VT_R8:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::BeginChoiceMarking()
{
  _TDispID _dispid(/* BeginChoiceMarking */ DISPID(5));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::ChoiceMarking(BSTR Marking)
{
  _TDispID _dispid(/* ChoiceMarking */ DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Marking /*[VT_BSTR:0]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::BeginSetPartFromFile()
{
  _TDispID _dispid(/* BeginSetPartFromFile */ DISPID(7));
  TAutoArgs<0> _args;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

template <class T> TOLEBOOL __fastcall
ksDocument3DNotify7DispT<T>::BeginCreatePartFromFile(TOLEBOOL TypeDoc, 
                                                     Kompasltapi7_tlb::IModelObjectPtr Plane)
{
  _TDispID _dispid(/* BeginCreatePartFromFile */ DISPID(8));
  TAutoArgs<2> _args;
  _args[1] = TypeDoc /*[VT_BOOL:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Plane /*[VT_USERDEFINED:1]*/;
  OleFunction(_dispid, _args);
  return _args.GetRetVariant();
}

// *********************************************************************//
// DispIntf:  IModelObjectNotifyResult
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {73653933-51B5-49D6-9EF2-6667639283CC}
// *********************************************************************//
template <class T> HRESULT __fastcall
IModelObjectNotifyResultDispT<T>::get_NotifyType(ksObject3DNotifyEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NotifyType"), DISPID(4001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObject3DNotifyEnum __fastcall
IModelObjectNotifyResultDispT<T>::get_NotifyType(void)
{
  ksObject3DNotifyEnum PVal;
  this->get_NotifyType((ksObject3DNotifyEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectNotifyResultDispT<T>::get_NotifyObjects(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NotifyObjects"), DISPID(4002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IModelObjectNotifyResultDispT<T>::get_NotifyObjects(void)
{
  TVariant PVal;
  this->get_NotifyObjects((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelObjectNotifyResultDispT<T>::get_ProcessType(ProcessTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProcessType"), DISPID(4003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ProcessTypeEnum __fastcall
IModelObjectNotifyResultDispT<T>::get_ProcessType(void)
{
  ProcessTypeEnum PVal;
  this->get_ProcessType((ProcessTypeEnum*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IKompasDocument3DNotifyResult
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {354EA69A-3191-4DA4-B980-821BE9B7683C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IKompasDocument3DNotifyResultDispT<T>::get_NotifyType(ksDocument3DNotifyEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NotifyType"), DISPID(4001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDocument3DNotifyEnum __fastcall
IKompasDocument3DNotifyResultDispT<T>::get_NotifyType(void)
{
  ksDocument3DNotifyEnum PVal;
  this->get_NotifyType((ksDocument3DNotifyEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DNotifyResultDispT<T>::get_NotifyObjectType(ksObj3dTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NotifyObjectType"), DISPID(4002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IKompasDocument3DNotifyResultDispT<T>::get_NotifyObjectType(void)
{
  ksObj3dTypeEnum PVal;
  this->get_NotifyObjectType((ksObj3dTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IKompasDocument3DNotifyResultDispT<T>::get_NotifyObject(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NotifyObject"), DISPID(4003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IKompasDocument3DNotifyResultDispT<T>::get_NotifyObject(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_NotifyObject((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IModelContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2C6E8A0F-EDC8-413C-9304-9278817B915B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IModelContainerDispT<T>::get_Objects(TVariantInParam ObjType/*[in]*/, 
                                     TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Objects"), DISPID(10001));
  TAutoArgs<1> _args;
  _args[1] = ObjType /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IModelContainerDispT<T>::get_Objects(TVariantInParam ObjType/*[in]*/)
{
  TVariant Result;
  this->get_Objects(ObjType, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IModelContainerDispT<T>::get_Sketchs(Kompasltapi7_tlb::ISketchsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketchs"), DISPID(10002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketchs**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchsPtr __fastcall
IModelContainerDispT<T>::get_Sketchs(void)
{
  Kompasltapi7_tlb::ISketchsPtr PVal;
  this->get_Sketchs((Kompasltapi7_tlb::ISketchsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelContainerDispT<T>::get_Extrusions(Kompasltapi7_tlb::IExtrusionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Extrusions"), DISPID(10003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IExtrusions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IExtrusionsPtr __fastcall
IModelContainerDispT<T>::get_Extrusions(void)
{
  Kompasltapi7_tlb::IExtrusionsPtr PVal;
  this->get_Extrusions((Kompasltapi7_tlb::IExtrusionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IModelContainerDispT<T>::get_Points3D(Kompasltapi7_tlb::IPoints3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points3D"), DISPID(10004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPoints3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPoints3DPtr __fastcall
IModelContainerDispT<T>::get_Points3D(void)
{
  Kompasltapi7_tlb::IPoints3DPtr PVal;
  this->get_Points3D((Kompasltapi7_tlb::IPoints3DPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISketchs
// Interface: ISketchs
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISketchsT<T>::get_Sketch(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Sketch(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
TCOMISketchsT<T>::get_Sketch(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  OLECHECK(this->get_Sketch(Index, (Kompasltapi7_tlb::ISketchPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISketchsT<T>::Add(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
TCOMISketchsT<T>::Add(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISketchPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISketchs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE562963-395C-4748-9726-FCA9C531B1CA}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISketchsDispT<T>::get_Sketch(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
ISketchsDispT<T>::get_Sketch(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  this->get_Sketch(Index, (Kompasltapi7_tlb::ISketchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::Add(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
ISketchsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  this->Add((Kompasltapi7_tlb::ISketchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISketchsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISketchsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISketchsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISketchsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISketchsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISketchsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISketchsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISketchsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISketch
// Interface: ISketch
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISketchT<T>::set_Plane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  return (*this)->set_Plane(Result);
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Plane(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISketchT<T>::get_Plane(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_Plane((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMISketchT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::GetLocation(double* X/*[out]*/, double* Y/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetLocation(X, Y, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISketchT<T>::GetLocation(double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetLocation(X, Y, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::SetLocation(double X/*[in]*/, double Y/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetLocation(X, Y, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISketchT<T>::SetLocation(double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetLocation(X, Y, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetLoftPoint(X, Y, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISketchT<T>::GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetLoftPoint(X, Y, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::SetLoftPoint(double X/*[in]*/, double Y/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetLoftPoint(X, Y, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISketchT<T>::SetLoftPoint(double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetLoftPoint(X, Y, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::BeginEdit(Kompasltapi7_tlb::IFragmentDocumentPtr* SketchDoc/*[out,retval]*/)
{
  return (*this)->BeginEdit(SketchDoc);
}

template <class T> Kompasltapi7_tlb::IFragmentDocumentPtr __fastcall
TCOMISketchT<T>::BeginEdit(void)
{
  Kompasltapi7_tlb::IFragmentDocumentPtr SketchDoc;
  OLECHECK(this->BeginEdit((Kompasltapi7_tlb::IFragmentDocumentPtr*)&SketchDoc));
  return SketchDoc;
}

template <class T> HRESULT __fastcall
TCOMISketchT<T>::EndEdit(TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->EndEdit(Res);
}

template <class T> TOLEBOOL __fastcall
TCOMISketchT<T>::EndEdit(void)
{
  TOLEBOOL Res;
  OLECHECK(this->EndEdit((TOLEBOOL*)&Res));
  return Res;
}

// *********************************************************************//
// DispIntf:  ISketch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E6BBF50D-8401-4FB3-A6B6-153D3F447255}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISketchDispT<T>::set_Plane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Plane"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Plane"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISketchDispT<T>::get_Plane(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Plane((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISketchDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::GetLocation(double* X/*[out]*/, double* Y/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLocation"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::GetLocation(double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetLocation(X, Y, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::SetLocation(double X/*[in]*/, double Y/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetLocation"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::SetLocation(double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetLocation(X, Y, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetLoftPoint"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::GetLoftPoint(double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetLoftPoint(X, Y, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::SetLoftPoint(double X/*[in]*/, double Y/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetLoftPoint"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::SetLoftPoint(double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetLoftPoint(X, Y, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::BeginEdit(Kompasltapi7_tlb::IFragmentDocumentPtr* SketchDoc/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BeginEdit"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFragmentDocument**)SketchDoc /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFragmentDocumentPtr __fastcall
ISketchDispT<T>::BeginEdit(void)
{
  Kompasltapi7_tlb::IFragmentDocumentPtr SketchDoc;
  this->BeginEdit((Kompasltapi7_tlb::IFragmentDocumentPtr*)&SketchDoc);
  return SketchDoc;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::EndEdit(TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndEdit"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::EndEdit(void)
{
  TOLEBOOL Res;
  this->EndEdit((TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISketchDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISketchDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISketchDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISketchDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISketchDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISketchDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISketchDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISketchDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISketchDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISketchDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIExtrusions
// Interface: IExtrusions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIExtrusionsT<T>::get_Extrusion(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Extrusion(Index, Result);
}

template <class T> Kompasltapi7_tlb::IExtrusionPtr __fastcall
TCOMIExtrusionsT<T>::get_Extrusion(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IExtrusionPtr Result;
  OLECHECK(this->get_Extrusion(Index, (Kompasltapi7_tlb::IExtrusionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionsT<T>::Add(ksObj3dTypeEnum ExtrusionType/*[in]*/, 
                         Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(ExtrusionType, Result);
}

template <class T> Kompasltapi7_tlb::IExtrusionPtr __fastcall
TCOMIExtrusionsT<T>::Add(ksObj3dTypeEnum ExtrusionType/*[in]*/)
{
  Kompasltapi7_tlb::IExtrusionPtr Result;
  OLECHECK(this->Add(ExtrusionType, (Kompasltapi7_tlb::IExtrusionPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IExtrusions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A160C032-CF96-4467-A682-CE2243DF76BD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get_Extrusion(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Extrusion"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IExtrusion**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IExtrusionPtr __fastcall
IExtrusionsDispT<T>::get_Extrusion(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IExtrusionPtr Result;
  this->get_Extrusion(Index, (Kompasltapi7_tlb::IExtrusionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::Add(ksObj3dTypeEnum ExtrusionType/*[in]*/, 
                         Kompasltapi7_tlb::IExtrusionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)ExtrusionType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IExtrusion**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IExtrusionPtr __fastcall
IExtrusionsDispT<T>::Add(ksObj3dTypeEnum ExtrusionType/*[in]*/)
{
  Kompasltapi7_tlb::IExtrusionPtr Result;
  this->Add(ExtrusionType, (Kompasltapi7_tlb::IExtrusionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IExtrusionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IExtrusionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IExtrusionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IExtrusionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IExtrusionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IExtrusionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IExtrusionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IExtrusionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIExtrusion
// Interface: IExtrusion
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  return (*this)->set_Sketch(Result);
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Sketch(Result);
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
TCOMIExtrusionT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::set_Direction(ksDirectionTypeEnum PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> ksDirectionTypeEnum __fastcall
TCOMIExtrusionT<T>::get_Direction(void)
{
  ksDirectionTypeEnum PVal;
  OLECHECK(this->get_Direction((ksDirectionTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum PVal/*[in]*/)
{
  return (*this)->set_ExtrusionType(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ExtrusionType(Normal, PVal);
}

template <class T> ksEndTypeEnum __fastcall
TCOMIExtrusionT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/)
{
  ksEndTypeEnum PVal;
  OLECHECK(this->get_ExtrusionType(Normal, (ksEndTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_Depth(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_Depth(Normal, PVal);
}

template <class T> double __fastcall
TCOMIExtrusionT<T>::get_Depth(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_Depth(Normal, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::set_DraftValue(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_DraftValue(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::get_DraftValue(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_DraftValue(Normal, PVal);
}

template <class T> double __fastcall
TCOMIExtrusionT<T>::get_DraftValue(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_DraftValue(Normal, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::set_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DraftOutward(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::get_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DraftOutward(Normal, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIExtrusionT<T>::get_DraftOutward(TOLEBOOL Normal/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DraftOutward(Normal, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  return (*this)->set_DepthObject(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_DepthObject(Normal, PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIExtrusionT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_DepthObject(Normal, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                      double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                      TOLEBOOL* DraftOutward/*[out]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, 
                                    DepthObject, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIExtrusionT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                      double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                      TOLEBOOL* DraftOutward/*[out]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, 
                                   DepthObject, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExtrusionT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum ExtrusionType/*[in]*/, 
                                      double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                      TOLEBOOL DraftOutward/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, 
                                    DepthObject, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIExtrusionT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum ExtrusionType/*[in]*/, 
                                      double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                      TOLEBOOL DraftOutward/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, 
                                   DepthObject, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IExtrusion
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0D7FFE70-33EB-442C-A9B6-A205EA85A237}
// *********************************************************************//
template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISketch*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
IExtrusionDispT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_Direction(ksDirectionTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDirectionTypeEnum __fastcall
IExtrusionDispT<T>::get_Direction(void)
{
  ksDirectionTypeEnum PVal;
  this->get_Direction((ksDirectionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExtrusionType"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExtrusionType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksEndTypeEnum __fastcall
IExtrusionDispT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/)
{
  ksEndTypeEnum PVal;
  this->get_ExtrusionType(Normal, (ksEndTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IExtrusionDispT<T>::get_Depth(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  this->get_Depth(Normal, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_DraftValue(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftValue"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_DraftValue(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftValue"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IExtrusionDispT<T>::get_DraftValue(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  this->get_DraftValue(Normal, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftOutward"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftOutward"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExtrusionDispT<T>::get_DraftOutward(TOLEBOOL Normal/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_DraftOutward(Normal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IExtrusionDispT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_DepthObject(Normal, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum* ExtrusionType/*[out]*/
                                      , double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                      TOLEBOOL* DraftOutward/*[out]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetSideParameters"), DISPID(8));
  TAutoArgs<6> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int*)ExtrusionType /*[VT_USERDEFINED:1]*/;
  _args[3] = Depth /*[VT_R8:1]*/;
  _args[4] = DraftValue /*[VT_R8:1]*/;
  _args[5] = DraftOutward /*[VT_BOOL:1]*/;
  _args[6] = (LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)DepthObject /*[VT_USERDEFINED:2]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExtrusionDispT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                      double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                      TOLEBOOL* DraftOutward/*[out]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, DepthObject, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum ExtrusionType/*[in]*/, 
                                      double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                      TOLEBOOL DraftOutward/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                      TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSideParameters"), DISPID(9));
  TAutoArgs<6> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int)ExtrusionType /*[VT_USERDEFINED:0]*/;
  _args[3] = Depth /*[VT_R8:0]*/;
  _args[4] = DraftValue /*[VT_R8:0]*/;
  _args[5] = DraftOutward /*[VT_BOOL:0]*/;
  _args[6] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)DepthObject /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExtrusionDispT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                      ksEndTypeEnum ExtrusionType/*[in]*/, 
                                      double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                      TOLEBOOL DraftOutward/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, DepthObject, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IExtrusionDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExtrusionDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExtrusionDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExtrusionDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IExtrusionDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IExtrusionDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IExtrusionDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IExtrusionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IExtrusionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IExtrusionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IExtrusionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IExtrusionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoints3D
// Interface: IPoints3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoints3DT<T>::get_Point3D(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Point3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IPoint3DPtr __fastcall
TCOMIPoints3DT<T>::get_Point3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPoint3DPtr Result;
  OLECHECK(this->get_Point3D(Index, (Kompasltapi7_tlb::IPoint3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoints3DT<T>::Add(Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IPoint3DPtr __fastcall
TCOMIPoints3DT<T>::Add(void)
{
  Kompasltapi7_tlb::IPoint3DPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IPoint3DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPoints3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {81EBB128-3963-4759-9D4E-2829C3078B0F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get_Point3D(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Point3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPoint3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPoint3DPtr __fastcall
IPoints3DDispT<T>::get_Point3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPoint3DPtr Result;
  this->get_Point3D(Index, (Kompasltapi7_tlb::IPoint3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::Add(Kompasltapi7_tlb::IPoint3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPoint3D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPoint3DPtr __fastcall
IPoints3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IPoint3DPtr Result;
  this->Add((Kompasltapi7_tlb::IPoint3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoints3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IPoints3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoints3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoints3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoints3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoints3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoints3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoints3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IMassInertiaParam7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {666C987F-2700-4C35-B8CE-DB8BFB5AAF02}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_Zc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Zc"), DISPID(3003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Zc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Zc"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Zc(void)
{
  double PVal;
  this->get_Zc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_ManualMassCentre(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ManualMassCentre"), DISPID(3004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_ManualMassCentre(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ManualMassCentre"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::get_ManualMassCentre(void)
{
  TOLEBOOL PVal;
  this->get_ManualMassCentre((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_LengthUnits(ksLengthUnitsEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LengthUnits"), DISPID(3005));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_LengthUnits(ksLengthUnitsEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LengthUnits"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLengthUnitsEnum __fastcall
IMassInertiaParam7DispT<T>::get_LengthUnits(void)
{
  ksLengthUnitsEnum PVal;
  this->get_LengthUnits((ksLengthUnitsEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_MassUnits(ksMassUnitsEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MassUnits"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_MassUnits(ksMassUnitsEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MassUnits"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMassUnitsEnum __fastcall
IMassInertiaParam7DispT<T>::get_MassUnits(void)
{
  ksMassUnitsEnum PVal;
  this->get_MassUnits((ksMassUnitsEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_ManualMass(double Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ManualMass"), DISPID(3007));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_CalculateMass(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CalculateMass"), DISPID(3008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_CalculateMass(void)
{
  double PVal;
  this->get_CalculateMass((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_MassSettingMode(ksMassSettingModeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MassSettingMode"), DISPID(3009));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_MassSettingMode(ksMassSettingModeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MassSettingMode"), DISPID(3009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMassSettingModeEnum __fastcall
IMassInertiaParam7DispT<T>::get_MassSettingMode(void)
{
  ksMassSettingModeEnum PVal;
  this->get_MassSettingMode((ksMassSettingModeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_ManualDensity(double Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ManualDensity"), DISPID(3010));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_HandBookDensity(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HandBookDensity"), DISPID(3011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_HandBookDensity(void)
{
  double PVal;
  this->get_HandBookDensity((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_DensityMode(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DensityMode"), DISPID(3012));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_DensityMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DensityMode"), DISPID(3012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::get_DensityMode(void)
{
  TOLEBOOL PVal;
  this->get_DensityMode((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Volume(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Volume"), DISPID(3013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Volume(void)
{
  double PVal;
  this->get_Volume((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Area(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Area"), DISPID(3014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Area(void)
{
  double PVal;
  this->get_Area((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::set_SourceData(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceData"), DISPID(3015));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_SourceData(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceData"), DISPID(3015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::get_SourceData(void)
{
  TOLEBOOL PVal;
  this->get_SourceData((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Actual(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Actual"), DISPID(3016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::get_Actual(void)
{
  TOLEBOOL PVal;
  this->get_Actual((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::Calculate(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Calculate"), DISPID(3017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::Calculate(void)
{
  TOLEBOOL PRes;
  this->Calculate((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_LX(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LX"), DISPID(3018));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_LX(void)
{
  double PVal;
  this->get_LX((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_LY(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LY"), DISPID(3019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_LY(void)
{
  double PVal;
  this->get_LY((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Lz(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Lz"), DISPID(3020));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Lz(void)
{
  double PVal;
  this->get_Lz((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Lxy(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Lxy"), DISPID(3021));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Lxy(void)
{
  double PVal;
  this->get_Lxy((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Lxz(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Lxz"), DISPID(3022));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Lxz(void)
{
  double PVal;
  this->get_Lxz((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Lyz(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Lyz"), DISPID(3023));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Lyz(void)
{
  double PVal;
  this->get_Lyz((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jx(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jx"), DISPID(3024));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jx(void)
{
  double PVal;
  this->get_Jx((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jy(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jy"), DISPID(3025));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jy(void)
{
  double PVal;
  this->get_Jy((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jz(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jz"), DISPID(3026));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jz(void)
{
  double PVal;
  this->get_Jz((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jxy(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jxy"), DISPID(3027));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jxy(void)
{
  double PVal;
  this->get_Jxy((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jxz(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jxz"), DISPID(3028));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jxz(void)
{
  double PVal;
  this->get_Jxz((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jyz(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jyz"), DISPID(3029));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jyz(void)
{
  double PVal;
  this->get_Jyz((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jx0(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jx0"), DISPID(3030));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jx0(void)
{
  double PVal;
  this->get_Jx0((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jy0(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jy0"), DISPID(3031));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jy0(void)
{
  double PVal;
  this->get_Jy0((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Jz0(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jz0"), DISPID(3032));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Jz0(void)
{
  double PVal;
  this->get_Jz0((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::GetAxisX(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                     TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAxisX"), DISPID(3033));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::GetAxisX(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL PRes;
  this->GetAxisX(X, Y, Z, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::GetAxisY(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                     TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAxisY"), DISPID(3034));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::GetAxisY(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL PRes;
  this->GetAxisY(X, Y, Z, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::GetAxisZ(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                     TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAxisZ"), DISPID(3035));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::GetAxisZ(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL PRes;
  this->GetAxisZ(X, Y, Z, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Mass(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mass"), DISPID(3036));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Mass(void)
{
  double PVal;
  this->get_Mass((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Density(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Density"), DISPID(3037));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMassInertiaParam7DispT<T>::get_Density(void)
{
  double PVal;
  this->get_Density((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::get_Material(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Material"), DISPID(3038));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMassInertiaParam7DispT<T>::get_Material(void)
{
  BSTR PVal;
  this->get_Material((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMassInertiaParam7DispT<T>::SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/, 
                                        TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetMaterial"), DISPID(3039));
  TAutoArgs<2> _args;
  _args[1] = Name /*[VT_BSTR:0]*/;
  _args[2] = Density /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMassInertiaParam7DispT<T>::SetMaterial(BSTR Name/*[in]*/, double Density/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetMaterial(Name, Density, (TOLEBOOL*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IThinParameters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B90D597D-4213-4A59-98D4-0B67E719551B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IThinParametersDispT<T>::set_Thin(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Thin"), DISPID(2501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IThinParametersDispT<T>::get_Thin(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Thin"), DISPID(2501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IThinParametersDispT<T>::get_Thin(void)
{
  TOLEBOOL PVal;
  this->get_Thin((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IThinParametersDispT<T>::set_ThinType(ksDirectionTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ThinType"), DISPID(2502));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IThinParametersDispT<T>::get_ThinType(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ThinType"), DISPID(2502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDirectionTypeEnum __fastcall
IThinParametersDispT<T>::get_ThinType(void)
{
  ksDirectionTypeEnum PVal;
  this->get_ThinType((ksDirectionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IThinParametersDispT<T>::set_Thickness(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Thickness"), DISPID(2503));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IThinParametersDispT<T>::get_Thickness(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Thickness"), DISPID(2503));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IThinParametersDispT<T>::get_Thickness(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  this->get_Thickness(Normal, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IThinParametersDispT<T>::GetThinParameters(TOLEBOOL* Thin/*[out]*/, 
                                           ksDirectionTypeEnum* ThinType/*[out]*/
                                           , double* ThicknessNormal/*[out]*/, 
                                           double* ThicknessReverse/*[out]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetThinParameters"), DISPID(2504));
  TAutoArgs<4> _args;
  _args[1] = Thin /*[VT_BOOL:1]*/;
  _args[2] = (int*)ThinType /*[VT_USERDEFINED:1]*/;
  _args[3] = ThicknessNormal /*[VT_R8:1]*/;
  _args[4] = ThicknessReverse /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IThinParametersDispT<T>::GetThinParameters(TOLEBOOL* Thin/*[out]*/, 
                                           ksDirectionTypeEnum* ThinType/*[out]*/, 
                                           double* ThicknessNormal/*[out]*/, 
                                           double* ThicknessReverse/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetThinParameters(Thin, ThinType, ThicknessNormal, ThicknessReverse, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IThinParametersDispT<T>::SetThinParameters(TOLEBOOL Thin/*[in]*/, 
                                           ksDirectionTypeEnum ThinType/*[in]*/
                                           , double ThicknessNormal/*[in]*/, 
                                           double ThicknessReverse/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetThinParameters"), DISPID(2505));
  TAutoArgs<4> _args;
  _args[1] = Thin /*[VT_BOOL:0]*/;
  _args[2] = (int)ThinType /*[VT_USERDEFINED:0]*/;
  _args[3] = ThicknessNormal /*[VT_R8:0]*/;
  _args[4] = ThicknessReverse /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IThinParametersDispT<T>::SetThinParameters(TOLEBOOL Thin/*[in]*/, 
                                           ksDirectionTypeEnum ThinType/*[in]*/, 
                                           double ThicknessNormal/*[in]*/, 
                                           double ThicknessReverse/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetThinParameters(Thin, ThinType, ThicknessNormal, ThicknessReverse, (TOLEBOOL*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICutExtrusion
// Interface: ICutExtrusion
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICutExtrusionT<T>::set_Cut(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Cut(PVal);
}

template <class T> HRESULT __fastcall
TCOMICutExtrusionT<T>::get_Cut(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Cut(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICutExtrusionT<T>::get_Cut(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Cut((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICutExtrusion
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D2A01420-9159-48C2-8302-C1B10A13D8F8}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_Cut(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cut"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Cut(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cut"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutExtrusionDispT<T>::get_Cut(void)
{
  TOLEBOOL PVal;
  this->get_Cut((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISketch*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
ICutExtrusionDispT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_Direction(ksDirectionTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDirectionTypeEnum __fastcall
ICutExtrusionDispT<T>::get_Direction(void)
{
  ksDirectionTypeEnum PVal;
  this->get_Direction((ksDirectionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                         ksEndTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExtrusionType"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                         ksEndTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExtrusionType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksEndTypeEnum __fastcall
ICutExtrusionDispT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/)
{
  ksEndTypeEnum PVal;
  this->get_ExtrusionType(Normal, (ksEndTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutExtrusionDispT<T>::get_Depth(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  this->get_Depth(Normal, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_DraftValue(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftValue"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_DraftValue(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftValue"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutExtrusionDispT<T>::get_DraftValue(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  this->get_DraftValue(Normal, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftOutward"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_DraftOutward(TOLEBOOL Normal/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DraftOutward"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutExtrusionDispT<T>::get_DraftOutward(TOLEBOOL Normal/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_DraftOutward(Normal, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ICutExtrusionDispT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_DepthObject(Normal, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                         ksEndTypeEnum* ExtrusionType/*[out]*/
                                         , double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                         TOLEBOOL* DraftOutward/*[out]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetSideParameters"), DISPID(8));
  TAutoArgs<6> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int*)ExtrusionType /*[VT_USERDEFINED:1]*/;
  _args[3] = Depth /*[VT_R8:1]*/;
  _args[4] = DraftValue /*[VT_R8:1]*/;
  _args[5] = DraftOutward /*[VT_BOOL:1]*/;
  _args[6] = (LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)DepthObject /*[VT_USERDEFINED:2]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutExtrusionDispT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                         ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                         double* Depth/*[out]*/, double* DraftValue/*[out]*/, 
                                         TOLEBOOL* DraftOutward/*[out]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, DepthObject, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                         ksEndTypeEnum ExtrusionType/*[in]*/
                                         , double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                         TOLEBOOL DraftOutward/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                         TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSideParameters"), DISPID(9));
  TAutoArgs<6> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int)ExtrusionType /*[VT_USERDEFINED:0]*/;
  _args[3] = Depth /*[VT_R8:0]*/;
  _args[4] = DraftValue /*[VT_R8:0]*/;
  _args[5] = DraftOutward /*[VT_BOOL:0]*/;
  _args[6] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)DepthObject /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutExtrusionDispT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                         ksEndTypeEnum ExtrusionType/*[in]*/, 
                                         double Depth/*[in]*/, double DraftValue/*[in]*/, 
                                         TOLEBOOL DraftOutward/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetSideParameters(Normal, ExtrusionType, Depth, DraftValue, DraftOutward, DepthObject, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ICutExtrusionDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutExtrusionDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutExtrusionDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutExtrusionDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ICutExtrusionDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ICutExtrusionDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ICutExtrusionDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICutExtrusionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICutExtrusionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICutExtrusionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutExtrusionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutExtrusionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IChooseBodies7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7BF80DAA-25F8-4AFF-AFEA-CAD390D4275D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IChooseBodies7DispT<T>::set_ChooseBodiesType(ksChooseBodiesType Type/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChooseBodiesType"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IChooseBodies7DispT<T>::get_ChooseBodiesType(ksChooseBodiesType* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ChooseBodiesType"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksChooseBodiesType __fastcall
IChooseBodies7DispT<T>::get_ChooseBodiesType(void)
{
  ksChooseBodiesType Type;
  this->get_ChooseBodiesType((ksChooseBodiesType*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IChooseBodies7DispT<T>::set_Bodies(TVariantInParam Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bodies"), DISPID(3002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IChooseBodies7DispT<T>::get_Bodies(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bodies"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IChooseBodies7DispT<T>::get_Bodies(void)
{
  TVariant Result;
  this->get_Bodies((TVariant*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMIBody7
// Interface: IBody7
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBody7T<T>::GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, double* Z1/*[out]*/, 
                           double* X2/*[out]*/, double* Y2/*[out]*/, double* Z2/*[out]*/, 
                           TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetGabarit(X1, Y1, Z1, X2, Y2, Z2, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBody7T<T>::GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, double* Z1/*[out]*/, 
                           double* X2/*[out]*/, double* Y2/*[out]*/, double* Z2/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetGabarit(X1, Y1, Z1, X2, Y2, Z2, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBody7T<T>::get_Marking(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Marking(PVal);
}

template <class T> BSTR __fastcall
TCOMIBody7T<T>::get_Marking(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Marking((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBody7T<T>::set_Marking(BSTR PVal/*[in]*/)
{
  return (*this)->set_Marking(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBody7T<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_Name(PVal);
}

template <class T> BSTR __fastcall
TCOMIBody7T<T>::get_Name(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_Name((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBody7T<T>::set_Name(BSTR PVal/*[in]*/)
{
  return (*this)->set_Name(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBody7T<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->_Update(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIBody7T<T>::_Update(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->_Update((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBody7T<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_Hidden(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBody7T<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Hidden(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIBody7T<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Hidden((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBody7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4F122E22-0AA6-46E1-841F-A2504B145995}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBody7DispT<T>::GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, double* Z1/*[out]*/, 
                           double* X2/*[out]*/, double* Y2/*[out]*/, double* Z2/*[out]*/, 
                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetGabarit"), DISPID(1));
  TAutoArgs<6> _args;
  _args[1] = X1 /*[VT_R8:1]*/;
  _args[2] = Y1 /*[VT_R8:1]*/;
  _args[3] = Z1 /*[VT_R8:1]*/;
  _args[4] = X2 /*[VT_R8:1]*/;
  _args[5] = Y2 /*[VT_R8:1]*/;
  _args[6] = Z2 /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBody7DispT<T>::GetGabarit(double* X1/*[out]*/, double* Y1/*[out]*/, double* Z1/*[out]*/, 
                           double* X2/*[out]*/, double* Y2/*[out]*/, double* Z2/*[out]*/)
{
  TOLEBOOL Result;
  this->GetGabarit(X1, Y1, Z1, X2, Y2, Z2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::get_Marking(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Marking"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IBody7DispT<T>::get_Marking(void)
{
  BSTR PVal;
  this->get_Marking((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::set_Marking(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Marking"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IBody7DispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBody7DispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBody7DispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBody7DispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBody7DispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBody7DispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBody7DispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBody7DispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBodies
// Interface: ISheetMetalBodies
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalBodiesT<T>::get_SheetMetalBody(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/)
{
  return (*this)->get_SheetMetalBody(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall
TCOMISheetMetalBodiesT<T>::get_SheetMetalBody(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalBodyPtr Result;
  OLECHECK(this->get_SheetMetalBody(Index, (Kompasltapi7_tlb::ISheetMetalBodyPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodiesT<T>::Add(Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall
TCOMISheetMetalBodiesT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalBodyPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalBodyPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISheetMetalBodies
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F56DBE72-48CC-48AD-9DA4-10D972C903EE}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get_SheetMetalBody(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalBody"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalBody**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall
ISheetMetalBodiesDispT<T>::get_SheetMetalBody(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalBodyPtr Result;
  this->get_SheetMetalBody(Index, (Kompasltapi7_tlb::ISheetMetalBodyPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::Add(Kompasltapi7_tlb::ISheetMetalBodyPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalBody**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalBodyPtr __fastcall
ISheetMetalBodiesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalBodyPtr Result;
  this->Add((Kompasltapi7_tlb::ISheetMetalBodyPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalBodiesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISheetMetalBodiesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalBodiesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalBodiesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalBodiesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalBodiesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalBodiesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalBodiesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBody
// Interface: ISheetMetalBody
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_ThicknessDirection(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ThicknessDirection(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_ThicknessDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ThicknessDirection(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBodyT<T>::get_ThicknessDirection(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ThicknessDirection((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_Thickness(double PVal/*[in]*/)
{
  return (*this)->set_Thickness(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_Thickness(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Thickness(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBodyT<T>::get_Thickness(void)
{
  double PVal;
  OLECHECK(this->get_Thickness((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_Straighten(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Straighten(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_Straighten(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Straighten(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBodyT<T>::get_Straighten(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Straighten((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBodyT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/)
{
  return (*this)->set_UnfoldType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_UnfoldType(PVal);
}

template <class T> ksUnfoldTypeEnum __fastcall
TCOMISheetMetalBodyT<T>::get_UnfoldType(void)
{
  ksUnfoldTypeEnum PVal;
  OLECHECK(this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_BendCoefficient(double PVal/*[in]*/)
{
  return (*this)->set_BendCoefficient(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_BendCoefficient(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendCoefficient(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBodyT<T>::get_BendCoefficient(void)
{
  double PVal;
  OLECHECK(this->get_BendCoefficient((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_BendValue(double PVal/*[in]*/)
{
  return (*this)->set_BendValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_BendValue(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendValue(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBodyT<T>::get_BendValue(void)
{
  double PVal;
  OLECHECK(this->get_BendValue((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_BendReduction(double PVal/*[in]*/)
{
  return (*this)->set_BendReduction(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_BendReduction(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendReduction(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBodyT<T>::get_BendReduction(void)
{
  double PVal;
  OLECHECK(this->get_BendReduction((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_BendTablePath(BSTR PVal/*[in]*/)
{
  return (*this)->set_BendTablePath(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_BendTablePath(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_BendTablePath(PVal);
}

template <class T> BSTR __fastcall
TCOMISheetMetalBodyT<T>::get_BendTablePath(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_BendTablePath((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  return (*this)->set_Sketch(Result);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Sketch(Result);
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
TCOMISheetMetalBodyT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_Direction(ksDirectionTypeEnum PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> ksDirectionTypeEnum __fastcall
TCOMISheetMetalBodyT<T>::get_Direction(void)
{
  ksDirectionTypeEnum PVal;
  OLECHECK(this->get_Direction((ksDirectionTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum PVal/*[in]*/)
{
  return (*this)->set_ExtrusionType(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ExtrusionType(Normal, PVal);
}

template <class T> ksEndTypeEnum __fastcall
TCOMISheetMetalBodyT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/)
{
  ksEndTypeEnum PVal;
  OLECHECK(this->get_ExtrusionType(Normal, (ksEndTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_Depth(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_Depth(Normal, PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBodyT<T>::get_Depth(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_Depth(Normal, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  return (*this)->set_DepthObject(Normal, PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_DepthObject(Normal, PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISheetMetalBodyT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_DepthObject(Normal, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                           double* Depth/*[out]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetSideParameters(Normal, ExtrusionType, Depth, DepthObject, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBodyT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                           double* Depth/*[out]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetSideParameters(Normal, ExtrusionType, Depth, DepthObject, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBodyT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum ExtrusionType/*[in]*/, 
                                           double Depth/*[in]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetSideParameters(Normal, ExtrusionType, Depth, DepthObject, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBodyT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum ExtrusionType/*[in]*/, 
                                           double Depth/*[in]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetSideParameters(Normal, ExtrusionType, Depth, DepthObject, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISheetMetalBody
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2DC533DC-829E-4EFF-A905-541E9220A12D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_ThicknessDirection(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ThicknessDirection"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_ThicknessDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ThicknessDirection"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBodyDispT<T>::get_ThicknessDirection(void)
{
  TOLEBOOL PVal;
  this->get_ThicknessDirection((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Thickness(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Thickness"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Thickness(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Thickness"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBodyDispT<T>::get_Thickness(void)
{
  double PVal;
  this->get_Thickness((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Straighten(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Straighten"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Straighten(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Straighten"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBodyDispT<T>::get_Straighten(void)
{
  TOLEBOOL PVal;
  this->get_Straighten((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBodyDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnfoldType"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnfoldType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksUnfoldTypeEnum __fastcall
ISheetMetalBodyDispT<T>::get_UnfoldType(void)
{
  ksUnfoldTypeEnum PVal;
  this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_BendCoefficient(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendCoefficient"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_BendCoefficient(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendCoefficient"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBodyDispT<T>::get_BendCoefficient(void)
{
  double PVal;
  this->get_BendCoefficient((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_BendValue(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendValue"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_BendValue(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendValue"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBodyDispT<T>::get_BendValue(void)
{
  double PVal;
  this->get_BendValue((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_BendReduction(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendReduction"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_BendReduction(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendReduction"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBodyDispT<T>::get_BendReduction(void)
{
  double PVal;
  this->get_BendReduction((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_BendTablePath(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendTablePath"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_BendTablePath(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendTablePath"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalBodyDispT<T>::get_BendTablePath(void)
{
  BSTR PVal;
  this->get_BendTablePath((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISketch*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
ISheetMetalBodyDispT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Direction(ksDirectionTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDirectionTypeEnum __fastcall
ISheetMetalBodyDispT<T>::get_Direction(void)
{
  ksDirectionTypeEnum PVal;
  this->get_Direction((ksDirectionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExtrusionType"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ExtrusionType"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksEndTypeEnum __fastcall
ISheetMetalBodyDispT<T>::get_ExtrusionType(TOLEBOOL Normal/*[in]*/)
{
  ksEndTypeEnum PVal;
  this->get_ExtrusionType(Normal, (ksEndTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Depth(TOLEBOOL Normal/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Depth(TOLEBOOL Normal/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBodyDispT<T>::get_Depth(TOLEBOOL Normal/*[in]*/)
{
  double PVal;
  this->get_Depth(Normal, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalBodyDispT<T>::get_DepthObject(TOLEBOOL Normal/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_DepthObject(Normal, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum* ExtrusionType/*[out]*/
                                           , double* Depth/*[out]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetSideParameters"), DISPID(15));
  TAutoArgs<4> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int*)ExtrusionType /*[VT_USERDEFINED:1]*/;
  _args[3] = Depth /*[VT_R8:1]*/;
  _args[4] = (LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)DepthObject /*[VT_USERDEFINED:2]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBodyDispT<T>::GetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum* ExtrusionType/*[out]*/, 
                                           double* Depth/*[out]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr* DepthObject/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetSideParameters(Normal, ExtrusionType, Depth, DepthObject, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum ExtrusionType/*[in]*/
                                           , double Depth/*[in]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/, 
                                           TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSideParameters"), DISPID(16));
  TAutoArgs<4> _args;
  _args[1] = Normal /*[VT_BOOL:0]*/;
  _args[2] = (int)ExtrusionType /*[VT_USERDEFINED:0]*/;
  _args[3] = Depth /*[VT_R8:0]*/;
  _args[4] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)DepthObject /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBodyDispT<T>::SetSideParameters(TOLEBOOL Normal/*[in]*/, 
                                           ksEndTypeEnum ExtrusionType/*[in]*/, 
                                           double Depth/*[in]*/, 
                                           Kompasltapi7_tlb::IModelObjectPtr DepthObject/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetSideParameters(Normal, ExtrusionType, Depth, DepthObject, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalBodyDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBodyDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBodyDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBodyDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISheetMetalBodyDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISheetMetalBodyDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISheetMetalBodyDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalBodyDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalBodyDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalBodyDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalBodyDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalBodyDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISheetMetalContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {77A4895D-9B09-4C63-A3FF-6857F4340840}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalBodies(Kompasltapi7_tlb::ISheetMetalBodiesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalBodies"), DISPID(11001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalBodies**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalBodiesPtr __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalBodies(void)
{
  Kompasltapi7_tlb::ISheetMetalBodiesPtr PVal;
  this->get_SheetMetalBodies((Kompasltapi7_tlb::ISheetMetalBodiesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalBends(Kompasltapi7_tlb::ISheetMetalBendsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalBends"), DISPID(11002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalBends**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalBendsPtr __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalBends(void)
{
  Kompasltapi7_tlb::ISheetMetalBendsPtr PVal;
  this->get_SheetMetalBends((Kompasltapi7_tlb::ISheetMetalBendsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalLineBends(Kompasltapi7_tlb::ISheetMetalLineBendsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalLineBends"), DISPID(11003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalLineBends**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalLineBendsPtr __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalLineBends(void)
{
  Kompasltapi7_tlb::ISheetMetalLineBendsPtr PVal;
  this->get_SheetMetalLineBends((Kompasltapi7_tlb::ISheetMetalLineBendsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalHoles(Kompasltapi7_tlb::ISheetMetalHolesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalHoles"), DISPID(11004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalHoles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalHolesPtr __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalHoles(void)
{
  Kompasltapi7_tlb::ISheetMetalHolesPtr PVal;
  this->get_SheetMetalHoles((Kompasltapi7_tlb::ISheetMetalHolesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalCuts(Kompasltapi7_tlb::ISheetMetalCutsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalCuts"), DISPID(11005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalCuts**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalCutsPtr __fastcall
ISheetMetalContainerDispT<T>::get_SheetMetalCuts(void)
{
  Kompasltapi7_tlb::ISheetMetalCutsPtr PVal;
  this->get_SheetMetalCuts((Kompasltapi7_tlb::ISheetMetalCutsPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBends
// Interface: ISheetMetalBends
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalBendsT<T>::get_SheetMetalBend(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/)
{
  return (*this)->get_SheetMetalBend(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall
TCOMISheetMetalBendsT<T>::get_SheetMetalBend(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalBendPtr Result;
  OLECHECK(this->get_SheetMetalBend(Index, (Kompasltapi7_tlb::ISheetMetalBendPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendsT<T>::Add(Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall
TCOMISheetMetalBendsT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalBendPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalBendPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISheetMetalBends
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6826CFD6-6A48-4EB1-8C89-7DB4E36702B4}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get_SheetMetalBend(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalBend"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalBend**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall
ISheetMetalBendsDispT<T>::get_SheetMetalBend(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalBendPtr Result;
  this->get_SheetMetalBend(Index, (Kompasltapi7_tlb::ISheetMetalBendPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::Add(Kompasltapi7_tlb::ISheetMetalBendPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalBend**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalBendPtr __fastcall
ISheetMetalBendsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalBendPtr Result;
  this->Add((Kompasltapi7_tlb::ISheetMetalBendPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalBendsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISheetMetalBendsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalBendsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalBendsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalBendsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalBendsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalBendsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalBendsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalBend
// Interface: ISheetMetalBend
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Disposal(ksBendDisposalEnum PVal/*[in]*/)
{
  return (*this)->set_Disposal(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Disposal(ksBendDisposalEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Disposal(PVal);
}

template <class T> ksBendDisposalEnum __fastcall
TCOMISheetMetalBendT<T>::get_Disposal(void)
{
  ksBendDisposalEnum PVal;
  OLECHECK(this->get_Disposal((ksBendDisposalEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Width(double PVal/*[in]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_Width(void)
{
  double PVal;
  OLECHECK(this->get_Width((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_LengthType(ksBendLengthTypeEnum PVal/*[in]*/)
{
  return (*this)->set_LengthType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_LengthType(ksBendLengthTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_LengthType(PVal);
}

template <class T> ksBendLengthTypeEnum __fastcall
TCOMISheetMetalBendT<T>::get_LengthType(void)
{
  ksBendLengthTypeEnum PVal;
  OLECHECK(this->get_LengthType((ksBendLengthTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_InternalLength(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_InternalLength(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_InternalLength(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_InternalLength(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_InternalLength(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_InternalLength((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_AngleType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AngleType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_AngleType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AngleType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_AngleType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AngleType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_OffsetType(ksBendOffsetTypeEnum PVal/*[in]*/)
{
  return (*this)->set_OffsetType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_OffsetType(ksBendOffsetTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_OffsetType(PVal);
}

template <class T> ksBendOffsetTypeEnum __fastcall
TCOMISheetMetalBendT<T>::get_OffsetType(void)
{
  ksBendOffsetTypeEnum PVal;
  OLECHECK(this->get_OffsetType((ksBendOffsetTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Offset(double PVal/*[in]*/)
{
  return (*this)->set_Offset(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Offset(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Offset(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_Offset(void)
{
  double PVal;
  OLECHECK(this->get_Offset((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Straighten(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Straighten(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Straighten(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Straighten(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_Straighten(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Straighten((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_LeftSideType(ksBendSideTypeEnum PVal/*[in]*/)
{
  return (*this)->set_LeftSideType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_LeftSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_LeftSideType(PVal);
}

template <class T> ksBendSideTypeEnum __fastcall
TCOMISheetMetalBendT<T>::get_LeftSideType(void)
{
  ksBendSideTypeEnum PVal;
  OLECHECK(this->get_LeftSideType((ksBendSideTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DistanceLeftSide(double PVal/*[in]*/)
{
  return (*this)->set_DistanceLeftSide(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DistanceLeftSide(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DistanceLeftSide(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_DistanceLeftSide(void)
{
  double PVal;
  OLECHECK(this->get_DistanceLeftSide((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_LeftSideAngle(double PVal/*[in]*/)
{
  return (*this)->set_LeftSideAngle(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_LeftSideAngle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_LeftSideAngle(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_LeftSideAngle(void)
{
  double PVal;
  OLECHECK(this->get_LeftSideAngle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DeviationLeftSide(double PVal/*[in]*/)
{
  return (*this)->set_DeviationLeftSide(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DeviationLeftSide(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DeviationLeftSide(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_DeviationLeftSide(void)
{
  double PVal;
  OLECHECK(this->get_DeviationLeftSide((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_WideningLeftSide(double PVal/*[in]*/)
{
  return (*this)->set_WideningLeftSide(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_WideningLeftSide(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WideningLeftSide(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_WideningLeftSide(void)
{
  double PVal;
  OLECHECK(this->get_WideningLeftSide((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_RightSideType(ksBendSideTypeEnum PVal/*[in]*/)
{
  return (*this)->set_RightSideType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_RightSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_RightSideType(PVal);
}

template <class T> ksBendSideTypeEnum __fastcall
TCOMISheetMetalBendT<T>::get_RightSideType(void)
{
  ksBendSideTypeEnum PVal;
  OLECHECK(this->get_RightSideType((ksBendSideTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DistanceRightSide(double PVal/*[in]*/)
{
  return (*this)->set_DistanceRightSide(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DistanceRightSide(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DistanceRightSide(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_DistanceRightSide(void)
{
  double PVal;
  OLECHECK(this->get_DistanceRightSide((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_RightSideAngle(double PVal/*[in]*/)
{
  return (*this)->set_RightSideAngle(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_RightSideAngle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_RightSideAngle(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_RightSideAngle(void)
{
  double PVal;
  OLECHECK(this->get_RightSideAngle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DeviationRightSide(double PVal/*[in]*/)
{
  return (*this)->set_DeviationRightSide(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DeviationRightSide(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DeviationRightSide(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_DeviationRightSide(void)
{
  double PVal;
  OLECHECK(this->get_DeviationRightSide((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_WideningRightSide(double PVal/*[in]*/)
{
  return (*this)->set_WideningRightSide(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_WideningRightSide(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WideningRightSide(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_WideningRightSide(void)
{
  double PVal;
  OLECHECK(this->get_WideningRightSide((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_WithoutAngleRelease(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_WithoutAngleRelease(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_WithoutAngleRelease(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_WithoutAngleRelease(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_WithoutAngleRelease(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_WithoutAngleRelease((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_WithoutBendRelease(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_WithoutBendRelease(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_WithoutBendRelease(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_WithoutBendRelease(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_WithoutBendRelease(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_WithoutBendRelease((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DismissalWithWidth(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DismissalWithWidth(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DismissalWithWidth(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DismissalWithWidth(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_DismissalWithWidth(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DismissalWithWidth((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_BendRelease(ksBendReleaseTypeEnum PVal/*[in]*/)
{
  return (*this)->set_BendRelease(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_BendRelease(ksBendReleaseTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_BendRelease(PVal);
}

template <class T> ksBendReleaseTypeEnum __fastcall
TCOMISheetMetalBendT<T>::get_BendRelease(void)
{
  ksBendReleaseTypeEnum PVal;
  OLECHECK(this->get_BendRelease((ksBendReleaseTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DismissalWidth(double PVal/*[in]*/)
{
  return (*this)->set_DismissalWidth(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DismissalWidth(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DismissalWidth(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_DismissalWidth(void)
{
  double PVal;
  OLECHECK(this->get_DismissalWidth((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DismissalDepth(double PVal/*[in]*/)
{
  return (*this)->set_DismissalDepth(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DismissalDepth(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DismissalDepth(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_DismissalDepth(void)
{
  double PVal;
  OLECHECK(this->get_DismissalDepth((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DismissalAngleType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DismissalAngleType(PVal);
}

template <class T> ksBendAngleReleaseTypeEnum __fastcall
TCOMISheetMetalBendT<T>::get_DismissalAngleType(void)
{
  ksBendAngleReleaseTypeEnum PVal;
  OLECHECK(this->get_DismissalAngleType((ksBendAngleReleaseTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_BendObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  return (*this)->set_BendObject(Result);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_BendObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BendObject(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISheetMetalBendT<T>::get_BendObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_BendObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_InternalRadius(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_InternalRadius(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_InternalRadius(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalBendT<T>::get_InternalRadius(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_InternalRadius((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/)
{
  return (*this)->set_UnfoldType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_UnfoldType(PVal);
}

template <class T> ksUnfoldTypeEnum __fastcall
TCOMISheetMetalBendT<T>::get_UnfoldType(void)
{
  ksUnfoldTypeEnum PVal;
  OLECHECK(this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_BendCoefficient(double PVal/*[in]*/)
{
  return (*this)->set_BendCoefficient(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_BendCoefficient(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendCoefficient(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_BendCoefficient(void)
{
  double PVal;
  OLECHECK(this->get_BendCoefficient((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_BendValue(double PVal/*[in]*/)
{
  return (*this)->set_BendValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_BendValue(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendValue(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_BendValue(void)
{
  double PVal;
  OLECHECK(this->get_BendValue((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::set_BendReduction(double PVal/*[in]*/)
{
  return (*this)->set_BendReduction(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_BendReduction(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendReduction(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalBendT<T>::get_BendReduction(void)
{
  double PVal;
  OLECHECK(this->get_BendReduction((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalBendT<T>::get_BendTablePath(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_BendTablePath(PVal);
}

template <class T> BSTR __fastcall
TCOMISheetMetalBendT<T>::get_BendTablePath(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_BendTablePath((BSTR*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISheetMetalBend
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B631D95F-C487-41D6-9726-C65E9F5A4505}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Disposal(ksBendDisposalEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Disposal"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Disposal(ksBendDisposalEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Disposal"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendDisposalEnum __fastcall
ISheetMetalBendDispT<T>::get_Disposal(void)
{
  ksBendDisposalEnum PVal;
  this->get_Disposal((ksBendDisposalEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Width(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_Width(void)
{
  double PVal;
  this->get_Width((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_LengthType(ksBendLengthTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LengthType"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_LengthType(ksBendLengthTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LengthType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendLengthTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_LengthType(void)
{
  ksBendLengthTypeEnum PVal;
  this->get_LengthType((ksBendLengthTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_InternalLength(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternalLength"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_InternalLength(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternalLength"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_InternalLength(void)
{
  TOLEBOOL PVal;
  this->get_InternalLength((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_AngleType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_AngleType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_AngleType(void)
{
  TOLEBOOL PVal;
  this->get_AngleType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_OffsetType(ksBendOffsetTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OffsetType"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_OffsetType(ksBendOffsetTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OffsetType"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendOffsetTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_OffsetType(void)
{
  ksBendOffsetTypeEnum PVal;
  this->get_OffsetType((ksBendOffsetTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Offset(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Offset(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_Offset(void)
{
  double PVal;
  this->get_Offset((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Straighten(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Straighten"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Straighten(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Straighten"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_Straighten(void)
{
  TOLEBOOL PVal;
  this->get_Straighten((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_LeftSideType(ksBendSideTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftSideType"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_LeftSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftSideType"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendSideTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_LeftSideType(void)
{
  ksBendSideTypeEnum PVal;
  this->get_LeftSideType((ksBendSideTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DistanceLeftSide(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DistanceLeftSide"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DistanceLeftSide(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DistanceLeftSide"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_DistanceLeftSide(void)
{
  double PVal;
  this->get_DistanceLeftSide((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_LeftSideAngle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftSideAngle"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_LeftSideAngle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftSideAngle"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_LeftSideAngle(void)
{
  double PVal;
  this->get_LeftSideAngle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DeviationLeftSide(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationLeftSide"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DeviationLeftSide(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationLeftSide"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_DeviationLeftSide(void)
{
  double PVal;
  this->get_DeviationLeftSide((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_WideningLeftSide(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WideningLeftSide"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_WideningLeftSide(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WideningLeftSide"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_WideningLeftSide(void)
{
  double PVal;
  this->get_WideningLeftSide((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_RightSideType(ksBendSideTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightSideType"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_RightSideType(ksBendSideTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightSideType"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendSideTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_RightSideType(void)
{
  ksBendSideTypeEnum PVal;
  this->get_RightSideType((ksBendSideTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DistanceRightSide(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DistanceRightSide"), DISPID(18));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DistanceRightSide(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DistanceRightSide"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_DistanceRightSide(void)
{
  double PVal;
  this->get_DistanceRightSide((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_RightSideAngle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightSideAngle"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_RightSideAngle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightSideAngle"), DISPID(19));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_RightSideAngle(void)
{
  double PVal;
  this->get_RightSideAngle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DeviationRightSide(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationRightSide"), DISPID(20));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DeviationRightSide(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeviationRightSide"), DISPID(20));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_DeviationRightSide(void)
{
  double PVal;
  this->get_DeviationRightSide((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_WideningRightSide(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WideningRightSide"), DISPID(21));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_WideningRightSide(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WideningRightSide"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_WideningRightSide(void)
{
  double PVal;
  this->get_WideningRightSide((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_WithoutAngleRelease(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithoutAngleRelease"), DISPID(22));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_WithoutAngleRelease(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithoutAngleRelease"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_WithoutAngleRelease(void)
{
  TOLEBOOL PVal;
  this->get_WithoutAngleRelease((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_WithoutBendRelease(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithoutBendRelease"), DISPID(23));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_WithoutBendRelease(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WithoutBendRelease"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_WithoutBendRelease(void)
{
  TOLEBOOL PVal;
  this->get_WithoutBendRelease((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DismissalWithWidth(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalWithWidth"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DismissalWithWidth(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalWithWidth"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_DismissalWithWidth(void)
{
  TOLEBOOL PVal;
  this->get_DismissalWithWidth((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_BendRelease(ksBendReleaseTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendRelease"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_BendRelease(ksBendReleaseTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendRelease"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendReleaseTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_BendRelease(void)
{
  ksBendReleaseTypeEnum PVal;
  this->get_BendRelease((ksBendReleaseTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DismissalWidth(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalWidth"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DismissalWidth(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalWidth"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_DismissalWidth(void)
{
  double PVal;
  this->get_DismissalWidth((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DismissalDepth(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalDepth"), DISPID(27));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DismissalDepth(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalDepth"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_DismissalDepth(void)
{
  double PVal;
  this->get_DismissalDepth((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalAngleType"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalAngleType"), DISPID(28));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendAngleReleaseTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_DismissalAngleType(void)
{
  ksBendAngleReleaseTypeEnum PVal;
  this->get_DismissalAngleType((ksBendAngleReleaseTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_BendObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendObject"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_BendObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendObject"), DISPID(29));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalBendDispT<T>::get_BendObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_BendObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_InternalRadius(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternalRadius"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternalRadius"), DISPID(30));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_InternalRadius(void)
{
  TOLEBOOL PVal;
  this->get_InternalRadius((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(31));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnfoldType"), DISPID(32));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnfoldType"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksUnfoldTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_UnfoldType(void)
{
  ksUnfoldTypeEnum PVal;
  this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_BendCoefficient(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendCoefficient"), DISPID(33));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_BendCoefficient(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendCoefficient"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_BendCoefficient(void)
{
  double PVal;
  this->get_BendCoefficient((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_BendValue(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendValue"), DISPID(34));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_BendValue(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendValue"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_BendValue(void)
{
  double PVal;
  this->get_BendValue((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_BendReduction(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendReduction"), DISPID(35));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_BendReduction(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendReduction"), DISPID(35));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalBendDispT<T>::get_BendReduction(void)
{
  double PVal;
  this->get_BendReduction((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_BendTablePath(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendTablePath"), DISPID(36));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalBendDispT<T>::get_BendTablePath(void)
{
  BSTR PVal;
  this->get_BendTablePath((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalBendDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalBendDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISheetMetalBendDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISheetMetalBendDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalBendDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalBendDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalBendDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalBendDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalBendDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalLineBends
// Interface: ISheetMetalLineBends
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendsT<T>::get_SheetMetalLineBend(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/)
{
  return (*this)->get_SheetMetalLineBend(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall
TCOMISheetMetalLineBendsT<T>::get_SheetMetalLineBend(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalLineBendPtr Result;
  OLECHECK(this->get_SheetMetalLineBend(Index, (Kompasltapi7_tlb::ISheetMetalLineBendPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendsT<T>::Add(Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall
TCOMISheetMetalLineBendsT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalLineBendPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalLineBendPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISheetMetalLineBends
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AF8B8310-AF82-4B02-8733-783FFAFD4DBD}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get_SheetMetalLineBend(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalLineBend"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalLineBend**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall
ISheetMetalLineBendsDispT<T>::get_SheetMetalLineBend(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalLineBendPtr Result;
  this->get_SheetMetalLineBend(Index, (Kompasltapi7_tlb::ISheetMetalLineBendPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::Add(Kompasltapi7_tlb::ISheetMetalLineBendPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalLineBend**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalLineBendPtr __fastcall
ISheetMetalLineBendsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalLineBendPtr Result;
  this->Add((Kompasltapi7_tlb::ISheetMetalLineBendPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalLineBendsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISheetMetalLineBendsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalLineBendsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalLineBendsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalLineBendsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalLineBendsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalLineBendsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalLineBend
// Interface: ISheetMetalLineBend
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalLineBendT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_BendLeftSideFixed(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_BendLeftSideFixed(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_BendLeftSideFixed(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_BendLeftSideFixed(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalLineBendT<T>::get_BendLeftSideFixed(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_BendLeftSideFixed((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_AngleType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AngleType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_AngleType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AngleType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalLineBendT<T>::get_AngleType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AngleType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalLineBendT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_BendType(ksBendTypeEnum PVal/*[in]*/)
{
  return (*this)->set_BendType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_BendType(ksBendTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_BendType(PVal);
}

template <class T> ksBendTypeEnum __fastcall
TCOMISheetMetalLineBendT<T>::get_BendType(void)
{
  ksBendTypeEnum PVal;
  OLECHECK(this->get_BendType((ksBendTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_Straighten(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Straighten(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_Straighten(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Straighten(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalLineBendT<T>::get_Straighten(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Straighten((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DismissalAngleType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DismissalAngleType(PVal);
}

template <class T> ksBendAngleReleaseTypeEnum __fastcall
TCOMISheetMetalLineBendT<T>::get_DismissalAngleType(void)
{
  ksBendAngleReleaseTypeEnum PVal;
  OLECHECK(this->get_DismissalAngleType((ksBendAngleReleaseTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_InternalRadius(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_InternalRadius(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_InternalRadius(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalLineBendT<T>::get_InternalRadius(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_InternalRadius((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalLineBendT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/)
{
  return (*this)->set_UnfoldType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_UnfoldType(PVal);
}

template <class T> ksUnfoldTypeEnum __fastcall
TCOMISheetMetalLineBendT<T>::get_UnfoldType(void)
{
  ksUnfoldTypeEnum PVal;
  OLECHECK(this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_BendCoefficient(double PVal/*[in]*/)
{
  return (*this)->set_BendCoefficient(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_BendCoefficient(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendCoefficient(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalLineBendT<T>::get_BendCoefficient(void)
{
  double PVal;
  OLECHECK(this->get_BendCoefficient((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_BendValue(double PVal/*[in]*/)
{
  return (*this)->set_BendValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_BendValue(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendValue(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalLineBendT<T>::get_BendValue(void)
{
  double PVal;
  OLECHECK(this->get_BendValue((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_BendReduction(double PVal/*[in]*/)
{
  return (*this)->set_BendReduction(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_BendReduction(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BendReduction(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalLineBendT<T>::get_BendReduction(void)
{
  double PVal;
  OLECHECK(this->get_BendReduction((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_BendTablePath(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_BendTablePath(PVal);
}

template <class T> BSTR __fastcall
TCOMISheetMetalLineBendT<T>::get_BendTablePath(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_BendTablePath((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_Faces(TVariantInParam Result/*[in]*/)
{
  return (*this)->set_Faces(Result);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_Faces(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_Faces(Result);
}

template <class T> TVariant __fastcall
TCOMISheetMetalLineBendT<T>::get_Faces(void)
{
  TVariant Result;
  OLECHECK(this->get_Faces((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::set_Line(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  return (*this)->set_Line(Result);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalLineBendT<T>::get_Line(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Line(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISheetMetalLineBendT<T>::get_Line(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_Line((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISheetMetalLineBend
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E13EF07A-B1E8-41FD-9C85-C17F01E52A03}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_BendLeftSideFixed(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendLeftSideFixed"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_BendLeftSideFixed(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendLeftSideFixed"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::get_BendLeftSideFixed(void)
{
  TOLEBOOL PVal;
  this->get_BendLeftSideFixed((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_AngleType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_AngleType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::get_AngleType(void)
{
  TOLEBOOL PVal;
  this->get_AngleType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalLineBendDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_BendType(ksBendTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendType"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_BendType(ksBendTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendTypeEnum __fastcall
ISheetMetalLineBendDispT<T>::get_BendType(void)
{
  ksBendTypeEnum PVal;
  this->get_BendType((ksBendTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Straighten(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Straighten"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Straighten(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Straighten"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::get_Straighten(void)
{
  TOLEBOOL PVal;
  this->get_Straighten((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_DismissalAngleType(ksBendAngleReleaseTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalAngleType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_DismissalAngleType(ksBendAngleReleaseTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DismissalAngleType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksBendAngleReleaseTypeEnum __fastcall
ISheetMetalLineBendDispT<T>::get_DismissalAngleType(void)
{
  ksBendAngleReleaseTypeEnum PVal;
  this->get_DismissalAngleType((ksBendAngleReleaseTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_InternalRadius(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternalRadius"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_InternalRadius(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InternalRadius"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::get_InternalRadius(void)
{
  TOLEBOOL PVal;
  this->get_InternalRadius((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalLineBendDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_UnfoldType(ksUnfoldTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnfoldType"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_UnfoldType(ksUnfoldTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnfoldType"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksUnfoldTypeEnum __fastcall
ISheetMetalLineBendDispT<T>::get_UnfoldType(void)
{
  ksUnfoldTypeEnum PVal;
  this->get_UnfoldType((ksUnfoldTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_BendCoefficient(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendCoefficient"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_BendCoefficient(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendCoefficient"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalLineBendDispT<T>::get_BendCoefficient(void)
{
  double PVal;
  this->get_BendCoefficient((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_BendValue(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendValue"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_BendValue(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendValue"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalLineBendDispT<T>::get_BendValue(void)
{
  double PVal;
  this->get_BendValue((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_BendReduction(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendReduction"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_BendReduction(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendReduction"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalLineBendDispT<T>::get_BendReduction(void)
{
  double PVal;
  this->get_BendReduction((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_BendTablePath(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BendTablePath"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalLineBendDispT<T>::get_BendTablePath(void)
{
  BSTR PVal;
  this->get_BendTablePath((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Faces(TVariantInParam Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Faces"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Faces(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Faces"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISheetMetalLineBendDispT<T>::get_Faces(void)
{
  TVariant Result;
  this->get_Faces((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Line(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Line"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Line(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Line"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalLineBendDispT<T>::get_Line(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Line((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalLineBendDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalLineBendDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISheetMetalLineBendDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISheetMetalLineBendDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISheetMetalLineBendDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalLineBendDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalLineBendDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalLineBendDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalLineBendDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalLineBendDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalHoles
// Interface: ISheetMetalHoles
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalHolesT<T>::get_SheetMetalHole(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/)
{
  return (*this)->get_SheetMetalHole(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall
TCOMISheetMetalHolesT<T>::get_SheetMetalHole(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalHolePtr Result;
  OLECHECK(this->get_SheetMetalHole(Index, (Kompasltapi7_tlb::ISheetMetalHolePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHolesT<T>::Add(Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall
TCOMISheetMetalHolesT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalHolePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalHolePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISheetMetalHoles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E117BDF9-5133-4672-9B8F-06046F6B9BF3}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get_SheetMetalHole(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalHole"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalHole**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall
ISheetMetalHolesDispT<T>::get_SheetMetalHole(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalHolePtr Result;
  this->get_SheetMetalHole(Index, (Kompasltapi7_tlb::ISheetMetalHolePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::Add(Kompasltapi7_tlb::ISheetMetalHolePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalHole**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalHolePtr __fastcall
ISheetMetalHolesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalHolePtr Result;
  this->Add((Kompasltapi7_tlb::ISheetMetalHolePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalHolesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISheetMetalHolesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalHolesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalHolesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalHolesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalHolesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalHolesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalHolesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalHole
// Interface: ISheetMetalHole
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalHoleT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalHoleT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_CutType(ksHoleCutTypeEnum PVal/*[in]*/)
{
  return (*this)->set_CutType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_CutType(PVal);
}

template <class T> ksHoleCutTypeEnum __fastcall
TCOMISheetMetalHoleT<T>::get_CutType(void)
{
  ksHoleCutTypeEnum PVal;
  OLECHECK(this->get_CutType((ksHoleCutTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_Diameter(double PVal/*[in]*/)
{
  return (*this)->set_Diameter(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_Diameter(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Diameter(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalHoleT<T>::get_Diameter(void)
{
  double PVal;
  OLECHECK(this->get_Diameter((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_Depth(double PVal/*[in]*/)
{
  return (*this)->set_Depth(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_Depth(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Depth(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalHoleT<T>::get_Depth(void)
{
  double PVal;
  OLECHECK(this->get_Depth((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_BasePlane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  return (*this)->set_BasePlane(Result);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_BasePlane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BasePlane(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISheetMetalHoleT<T>::get_BasePlane(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_BasePlane((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  return (*this)->set_DepthObject(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_DepthObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISheetMetalHoleT<T>::get_DepthObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_DepthObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Sketch(PVal);
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
TCOMISheetMetalHoleT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr PVal;
  OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/)
{
  return (*this)->set_Body(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalHoleT<T>::get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Body(PVal);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMISheetMetalHoleT<T>::get_Body(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  OLECHECK(this->get_Body((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISheetMetalHole
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3490B8B8-00D7-4BCF-AAD8-9487BF271084}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalHoleDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalHoleDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_CutType(ksHoleCutTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksHoleCutTypeEnum __fastcall
ISheetMetalHoleDispT<T>::get_CutType(void)
{
  ksHoleCutTypeEnum PVal;
  this->get_CutType((ksHoleCutTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_Diameter(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Diameter"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Diameter(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Diameter"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalHoleDispT<T>::get_Diameter(void)
{
  double PVal;
  this->get_Diameter((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_Depth(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Depth(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalHoleDispT<T>::get_Depth(void)
{
  double PVal;
  this->get_Depth((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_BasePlane(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_BasePlane(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalHoleDispT<T>::get_BasePlane(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_BasePlane((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalHoleDispT<T>::get_DepthObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_DepthObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
ISheetMetalHoleDispT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr PVal;
  this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasAPIObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalHoleDispT<T>::get_Body(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Body((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalHoleDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalHoleDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalHoleDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalHoleDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISheetMetalHoleDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISheetMetalHoleDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISheetMetalHoleDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalHoleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalHoleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalHoleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalHoleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalHoleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalCuts
// Interface: ISheetMetalCuts
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalCutsT<T>::get_SheetMetalCut(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/)
{
  return (*this)->get_SheetMetalCut(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall
TCOMISheetMetalCutsT<T>::get_SheetMetalCut(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalCutPtr Result;
  OLECHECK(this->get_SheetMetalCut(Index, (Kompasltapi7_tlb::ISheetMetalCutPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutsT<T>::Add(Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall
TCOMISheetMetalCutsT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalCutPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISheetMetalCutPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISheetMetalCuts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9515E4BB-7C60-4C3A-AF7A-847861E67B55}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get_SheetMetalCut(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SheetMetalCut"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalCut**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall
ISheetMetalCutsDispT<T>::get_SheetMetalCut(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISheetMetalCutPtr Result;
  this->get_SheetMetalCut(Index, (Kompasltapi7_tlb::ISheetMetalCutPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::Add(Kompasltapi7_tlb::ISheetMetalCutPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISheetMetalCut**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISheetMetalCutPtr __fastcall
ISheetMetalCutsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISheetMetalCutPtr Result;
  this->Add((Kompasltapi7_tlb::ISheetMetalCutPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalCutsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISheetMetalCutsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalCutsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalCutsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalCutsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalCutsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalCutsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalCutsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISheetMetalCut
// Interface: ISheetMetalCut
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  return (*this)->set_Sketch(Result);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Sketch(Result);
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
TCOMISheetMetalCutT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::set_CutType(ksHoleCutTypeEnum PVal/*[in]*/)
{
  return (*this)->set_CutType(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_CutType(PVal);
}

template <class T> ksHoleCutTypeEnum __fastcall
TCOMISheetMetalCutT<T>::get_CutType(void)
{
  ksHoleCutTypeEnum PVal;
  OLECHECK(this->get_CutType((ksHoleCutTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::set_Depth(double PVal/*[in]*/)
{
  return (*this)->set_Depth(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::get_Depth(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Depth(PVal);
}

template <class T> double __fastcall
TCOMISheetMetalCutT<T>::get_Depth(void)
{
  double PVal;
  OLECHECK(this->get_Depth((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  return (*this)->set_DepthObject(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_DepthObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISheetMetalCutT<T>::get_DepthObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_DepthObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::set_Cut(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Cut(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::get_Cut(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Cut(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMISheetMetalCutT<T>::get_Cut(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Cut((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/)
{
  return (*this)->set_Body(PVal);
}

template <class T> HRESULT __fastcall
TCOMISheetMetalCutT<T>::get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Body(PVal);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMISheetMetalCutT<T>::get_Body(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  OLECHECK(this->get_Body((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISheetMetalCut
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B50B1730-BACF-46F2-B10A-6CCDF4E4A2B1}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISketch*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
ISheetMetalCutDispT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_CutType(ksHoleCutTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutType"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_CutType(ksHoleCutTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutType"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksHoleCutTypeEnum __fastcall
ISheetMetalCutDispT<T>::get_CutType(void)
{
  ksHoleCutTypeEnum PVal;
  this->get_CutType((ksHoleCutTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_Depth(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Depth(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Depth"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISheetMetalCutDispT<T>::get_Depth(void)
{
  double PVal;
  this->get_Depth((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_DepthObject(Kompasltapi7_tlb::IModelObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_DepthObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DepthObject"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISheetMetalCutDispT<T>::get_DepthObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_DepthObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_Cut(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cut"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Cut(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Cut"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalCutDispT<T>::get_Cut(void)
{
  TOLEBOOL PVal;
  this->get_Cut((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IKompasAPIObject*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Body(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Body"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalCutDispT<T>::get_Body(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Body((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISheetMetalCutDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalCutDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalCutDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISheetMetalCutDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISheetMetalCutDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISheetMetalCutDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISheetMetalCutDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISheetMetalCutDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISheetMetalCutDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISheetMetalCutDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISheetMetalCutDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISheetMetalCutDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamDisplace
// Interface: IPoint3DParamDisplace
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::set_DX(double PVal/*[in]*/)
{
  return (*this)->set_DX(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_DX(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DX(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_DX(void)
{
  double PVal;
  OLECHECK(this->get_DX((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::set_DY(double PVal/*[in]*/)
{
  return (*this)->set_DY(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_DY(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DY(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_DY(void)
{
  double PVal;
  OLECHECK(this->get_DY((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::set_DZ(double PVal/*[in]*/)
{
  return (*this)->set_DZ(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_DZ(double* PVal/*[out,retval]*/)
{
  return (*this)->get_DZ(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_DZ(void)
{
  double PVal;
  OLECHECK(this->get_DZ((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetAssociationVertex(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamDisplaceT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetAssociationVertex(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AssociationVertex(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_AssociationVertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetGuidingObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamDisplaceT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetGuidingObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_GuidingObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_GuidingObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_GuidingObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::set_Distance(double PVal/*[in]*/)
{
  return (*this)->set_Distance(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_Distance(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Distance(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DParamDisplaceT<T>::get_Distance(void)
{
  double PVal;
  OLECHECK(this->get_Distance((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPoint3DParamDisplace
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6D57994F-C170-4CED-968A-6AD69C1A2C7D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::set_DX(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DX"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_DX(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DX"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DParamDisplaceDispT<T>::get_DX(void)
{
  double PVal;
  this->get_DX((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::set_DY(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DY"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_DY(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DY"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DParamDisplaceDispT<T>::get_DY(void)
{
  double PVal;
  this->get_DY((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::set_DZ(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DZ"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_DZ(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DZ"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DParamDisplaceDispT<T>::get_DZ(void)
{
  double PVal;
  this->get_DZ((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/
                                                    , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAssociationVertex"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamDisplaceDispT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAssociationVertex(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationVertex"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamDisplaceDispT<T>::get_AssociationVertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetGuidingObject"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamDisplaceDispT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetGuidingObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GuidingObject"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamDisplaceDispT<T>::get_GuidingObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_GuidingObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::set_Distance(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Distance"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_Distance(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Distance"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DParamDisplaceDispT<T>::get_Distance(void)
{
  double PVal;
  this->get_Distance((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DParamDisplaceDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoint3DParamDisplaceDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoint3DParamDisplaceDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DParamDisplaceDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DParamDisplaceDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamIntersect
// Interface: IPoint3DParamIntersect
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoint3DParamIntersectT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCurveObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamIntersectT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCurveObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamIntersectT<T>::get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_CurveObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamIntersectT<T>::get_CurveObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_CurveObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamIntersectT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetSurfaceObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamIntersectT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamIntersectT<T>::get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SurfaceObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamIntersectT<T>::get_SurfaceObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamIntersectT<T>::get_CartPointArray(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_CartPointArray(Result);
}

template <class T> TVariant __fastcall
TCOMIPoint3DParamIntersectT<T>::get_CartPointArray(void)
{
  TVariant Result;
  OLECHECK(this->get_CartPointArray((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamIntersectT<T>::set_Index(long PVal/*[in]*/)
{
  return (*this)->set_Index(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamIntersectT<T>::get_Index(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Index(PVal);
}

template <class T> long __fastcall
TCOMIPoint3DParamIntersectT<T>::get_Index(void)
{
  long PVal;
  OLECHECK(this->get_Index((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPoint3DParamIntersect
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C009F9ED-ED8A-4B1E-A4CE-156F43C3F6F3}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCurveObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamIntersectDispT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCurveObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurveObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamIntersectDispT<T>::get_CurveObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_CurveObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                 TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSurfaceObject"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamIntersectDispT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfaceObject"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamIntersectDispT<T>::get_SurfaceObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_CartPointArray(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CartPointArray"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPoint3DParamIntersectDispT<T>::get_CartPointArray(void)
{
  TVariant Result;
  this->get_CartPointArray((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::set_Index(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_Index(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DParamIntersectDispT<T>::get_Index(void)
{
  long PVal;
  this->get_Index((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DParamIntersectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoint3DParamIntersectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoint3DParamIntersectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DParamIntersectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DParamIntersectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamCenter
// Interface: IPoint3DParamCenter
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoint3DParamCenterT<T>::SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamCenterT<T>::SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCenterT<T>::get_Object(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Object(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamCenterT<T>::get_Object(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_Object((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPoint3DParamCenter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A92F2938-F1D4-475E-AAB4-962FAA4A4366}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoint3DParamCenterDispT<T>::SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamCenterDispT<T>::SetObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamCenterDispT<T>::get_Object(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamCenterDispT<T>::get_Object(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_Object((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCenterDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DParamCenterDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCenterDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoint3DParamCenterDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCenterDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoint3DParamCenterDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DParamCenterDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DParamCenterDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamCurve
// Interface: IPoint3DParamCurve
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCurveObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamCurveT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCurveObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_CurveObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamCurveT<T>::get_CurveObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_CurveObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::set_OffsetType(ksPoint3DCurveParamTypeEnum PVal/*[in]*/)
{
  return (*this)->set_OffsetType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::get_OffsetType(ksPoint3DCurveParamTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_OffsetType(PVal);
}

template <class T> ksPoint3DCurveParamTypeEnum __fastcall
TCOMIPoint3DParamCurveT<T>::get_OffsetType(void)
{
  ksPoint3DCurveParamTypeEnum PVal;
  OLECHECK(this->get_OffsetType((ksPoint3DCurveParamTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::set_Offset(double PVal/*[in]*/)
{
  return (*this)->set_Offset(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::get_Offset(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Offset(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DParamCurveT<T>::get_Offset(void)
{
  double PVal;
  OLECHECK(this->get_Offset((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamCurveT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamCurveT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPoint3DParamCurve
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {06B6BDA5-1DC6-4321-8B28-AC065D87E060}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCurveObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamCurveDispT<T>::SetCurveObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCurveObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_CurveObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurveObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamCurveDispT<T>::get_CurveObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_CurveObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::set_OffsetType(ksPoint3DCurveParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OffsetType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_OffsetType(ksPoint3DCurveParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OffsetType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPoint3DCurveParamTypeEnum __fastcall
IPoint3DParamCurveDispT<T>::get_OffsetType(void)
{
  ksPoint3DCurveParamTypeEnum PVal;
  this->get_OffsetType((ksPoint3DCurveParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::set_Offset(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_Offset(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DParamCurveDispT<T>::get_Offset(void)
{
  double PVal;
  this->get_Offset((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamCurveDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DParamCurveDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoint3DParamCurveDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoint3DParamCurveDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DParamCurveDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DParamCurveDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamSurface
// Interface: IPoint3DParamSurface
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetSurfaceObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamSurfaceT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SurfaceObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_SurfaceObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::set_OffsetType(ksPoint3DSurfaceParamTypeEnum PVal/*[in]*/)
{
  return (*this)->set_OffsetType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_OffsetType(ksPoint3DSurfaceParamTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_OffsetType(PVal);
}

template <class T> ksPoint3DSurfaceParamTypeEnum __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_OffsetType(void)
{
  ksPoint3DSurfaceParamTypeEnum PVal;
  OLECHECK(this->get_OffsetType((ksPoint3DSurfaceParamTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::set_Offset1(double PVal/*[in]*/)
{
  return (*this)->set_Offset1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Offset1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Offset1(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Offset1(void)
{
  double PVal;
  OLECHECK(this->get_Offset1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::set_Offset2(double PVal/*[in]*/)
{
  return (*this)->set_Offset2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Offset2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Offset2(PVal);
}

template <class T> double __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Offset2(void)
{
  double PVal;
  OLECHECK(this->get_Offset2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetObject1(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamSurfaceT<T>::SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetObject1(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Object1(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetObject2(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamSurfaceT<T>::SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetObject2(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Object2(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Object2(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamSurfaceT<T>::get_Object2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPoint3DParamSurface
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18CE6BBE-63FB-4C94-8998-E40BC5B5D1C6}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSurfaceObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamSurfaceDispT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfaceObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamSurfaceDispT<T>::get_SurfaceObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::set_OffsetType(ksPoint3DSurfaceParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OffsetType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_OffsetType(ksPoint3DSurfaceParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OffsetType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPoint3DSurfaceParamTypeEnum __fastcall
IPoint3DParamSurfaceDispT<T>::get_OffsetType(void)
{
  ksPoint3DSurfaceParamTypeEnum PVal;
  this->get_OffsetType((ksPoint3DSurfaceParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::set_Offset1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Offset1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DParamSurfaceDispT<T>::get_Offset1(void)
{
  double PVal;
  this->get_Offset1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::set_Offset2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset2"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Offset2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Offset2"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPoint3DParamSurfaceDispT<T>::get_Offset2(void)
{
  double PVal;
  this->get_Offset2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetObject1"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamSurfaceDispT<T>::SetObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetObject1(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamSurfaceDispT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetObject2"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamSurfaceDispT<T>::SetObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetObject2(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Object2(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object2"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamSurfaceDispT<T>::get_Object2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DParamSurfaceDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoint3DParamSurfaceDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoint3DParamSurfaceDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DParamSurfaceDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DParamSurfaceDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint3DParamProjection
// Interface: IPoint3DParamProjection
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPoint3DParamProjectionT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetAssociationVertex(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamProjectionT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetAssociationVertex(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamProjectionT<T>::get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AssociationVertex(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamProjectionT<T>::get_AssociationVertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamProjectionT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetSurfaceObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamProjectionT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamProjectionT<T>::get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_SurfaceObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamProjectionT<T>::get_SurfaceObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamProjectionT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetGuidingObject(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPoint3DParamProjectionT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetGuidingObject(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPoint3DParamProjectionT<T>::get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_GuidingObject(PVal);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIPoint3DParamProjectionT<T>::get_GuidingObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  OLECHECK(this->get_GuidingObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPoint3DParamProjection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B5D353DD-5F26-42FD-87D3-01C97C44E1BF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/
                                                      , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAssociationVertex"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamProjectionDispT<T>::SetAssociationVertex(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAssociationVertex(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationVertex"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamProjectionDispT<T>::get_AssociationVertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSurfaceObject"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamProjectionDispT<T>::SetSurfaceObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetSurfaceObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::get_SurfaceObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfaceObject"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamProjectionDispT<T>::get_SurfaceObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_SurfaceObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetGuidingObject"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPoint3DParamProjectionDispT<T>::SetGuidingObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetGuidingObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::get_GuidingObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GuidingObject"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPoint3DParamProjectionDispT<T>::get_GuidingObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_GuidingObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPoint3DParamProjectionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPoint3DParamProjectionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPoint3DParamProjectionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPoint3DParamProjectionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPoint3DParamProjectionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISourcePart7Params
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C9E03A9B-0A54-49AC-9397-8DE4465A8D1D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::get_SourceName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceName"), DISPID(12001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISourcePart7ParamsDispT<T>::get_SourceName(void)
{
  BSTR PVal;
  this->get_SourceName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::set_SourceName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceName"), DISPID(12001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::get_SourceMarking(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceMarking"), DISPID(12002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISourcePart7ParamsDispT<T>::get_SourceMarking(void)
{
  BSTR PVal;
  this->get_SourceMarking((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::set_SourceMarking(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceMarking"), DISPID(12002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::get_DocumentAuthor(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentAuthor"), DISPID(12003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISourcePart7ParamsDispT<T>::get_DocumentAuthor(void)
{
  BSTR PVal;
  this->get_DocumentAuthor((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::set_DocumentAuthor(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentAuthor"), DISPID(12003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::get_DocumentComment(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentComment"), DISPID(12004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISourcePart7ParamsDispT<T>::get_DocumentComment(void)
{
  TVariant PVal;
  this->get_DocumentComment((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISourcePart7ParamsDispT<T>::set_DocumentComment(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DocumentComment"), DISPID(12004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ISymbols3DContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D695D345-7054-4BBD-8D36-8E1F5AEDC5ED}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_LineDimensions3D(Kompasltapi7_tlb::ILineDimensions3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineDimensions3D"), DISPID(13001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILineDimensions3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILineDimensions3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_LineDimensions3D(void)
{
  Kompasltapi7_tlb::ILineDimensions3DPtr PVal;
  this->get_LineDimensions3D((Kompasltapi7_tlb::ILineDimensions3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_RadialDimensions3D(Kompasltapi7_tlb::IRadialDimensions3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RadialDimensions3D"), DISPID(13002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRadialDimensions3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRadialDimensions3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_RadialDimensions3D(void)
{
  Kompasltapi7_tlb::IRadialDimensions3DPtr PVal;
  this->get_RadialDimensions3D((Kompasltapi7_tlb::IRadialDimensions3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_DiametralDimensions3D(Kompasltapi7_tlb::IDiametralDimensions3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DiametralDimensions3D"), DISPID(13003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDiametralDimensions3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDiametralDimensions3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_DiametralDimensions3D(void)
{
  Kompasltapi7_tlb::IDiametralDimensions3DPtr PVal;
  this->get_DiametralDimensions3D((Kompasltapi7_tlb::IDiametralDimensions3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_AngleDimensions3D(Kompasltapi7_tlb::IAngleDimensions3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleDimensions3D"), DISPID(13004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAngleDimensions3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAngleDimensions3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_AngleDimensions3D(void)
{
  Kompasltapi7_tlb::IAngleDimensions3DPtr PVal;
  this->get_AngleDimensions3D((Kompasltapi7_tlb::IAngleDimensions3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_Leaders3D(Kompasltapi7_tlb::ILeaders3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Leaders3D"), DISPID(13005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILeaders3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILeaders3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_Leaders3D(void)
{
  Kompasltapi7_tlb::ILeaders3DPtr PVal;
  this->get_Leaders3D((Kompasltapi7_tlb::ILeaders3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_Roughs3D(Kompasltapi7_tlb::IRoughs3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Roughs3D"), DISPID(13006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRoughs3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRoughs3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_Roughs3D(void)
{
  Kompasltapi7_tlb::IRoughs3DPtr PVal;
  this->get_Roughs3D((Kompasltapi7_tlb::IRoughs3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_Bases3D(Kompasltapi7_tlb::IBases3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bases3D"), DISPID(13007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBases3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBases3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_Bases3D(void)
{
  Kompasltapi7_tlb::IBases3DPtr PVal;
  this->get_Bases3D((Kompasltapi7_tlb::IBases3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols3DContainerDispT<T>::get_Tolerances3D(Kompasltapi7_tlb::ITolerances3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tolerances3D"), DISPID(13008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITolerances3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITolerances3DPtr __fastcall
ISymbols3DContainerDispT<T>::get_Tolerances3D(void)
{
  Kompasltapi7_tlb::ITolerances3DPtr PVal;
  this->get_Tolerances3D((Kompasltapi7_tlb::ITolerances3DPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILineDimensions3D
// Interface: ILineDimensions3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILineDimensions3DT<T>::get_LineDimension3D(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_LineDimension3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall
TCOMILineDimensions3DT<T>::get_LineDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLineDimension3DPtr Result;
  OLECHECK(this->get_LineDimension3D(Index, (Kompasltapi7_tlb::IBaseLineDimension3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILineDimensions3DT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/, 
                               Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(DimType, Result);
}

template <class T> Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall
TCOMILineDimensions3DT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLineDimension3DPtr Result;
  OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IBaseLineDimension3DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILineDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8E30C80C-4C79-497B-A74B-84D44F96EF4D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get_LineDimension3D(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineDimension3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBaseLineDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall
ILineDimensions3DDispT<T>::get_LineDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLineDimension3DPtr Result;
  this->get_LineDimension3D(Index, (Kompasltapi7_tlb::IBaseLineDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/, 
                               Kompasltapi7_tlb::IBaseLineDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)DimType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBaseLineDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBaseLineDimension3DPtr __fastcall
ILineDimensions3DDispT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLineDimension3DPtr Result;
  this->Add(DimType, (Kompasltapi7_tlb::IBaseLineDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILineDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILineDimensions3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDimensions3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILineDimensions3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILineDimensions3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILineDimensions3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimensions3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDimensions3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBaseLineDimension3D
// Interface: IBaseLineDimension3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBaseLineDimension3DT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIBaseLineDimension3DT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBaseLineDimension3DT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBaseLineDimension3DT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_Object1(Object1);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIBaseLineDimension3DT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIBaseLineDimension3DT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  return (*this)->set_Object1(Object1);
}

template <class T> HRESULT __fastcall
TCOMIBaseLineDimension3DT<T>::get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/)
{
  return (*this)->get_Object2(Object2);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIBaseLineDimension3DT<T>::get_Object2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object2;
  OLECHECK(this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&Object2));
  return Object2;
}

template <class T> HRESULT __fastcall
TCOMIBaseLineDimension3DT<T>::set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/)
{
  return (*this)->set_Object2(Object2);
}

// *********************************************************************//
// DispIntf:  IBaseLineDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3514887E-321B-4CE3-A966-3EB1A02CEEF2}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBaseLineDimension3DDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IBaseLineDimension3DDispT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object2 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IBaseLineDimension3DDispT<T>::get_Object2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object2;
  this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&Object2);
  return Object2;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object2 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IBaseLineDimension3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLineDimension3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLineDimension3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLineDimension3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IBaseLineDimension3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IBaseLineDimension3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IBaseLineDimension3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBaseLineDimension3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBaseLineDimension3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBaseLineDimension3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLineDimension3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBaseLineDimension3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRadialDimensions3D
// Interface: IRadialDimensions3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRadialDimensions3DT<T>::get_RadialDimension3D(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_RadialDimension3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall
TCOMIRadialDimensions3DT<T>::get_RadialDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRadialDimension3DPtr Result;
  OLECHECK(this->get_RadialDimension3D(Index, (Kompasltapi7_tlb::IRadialDimension3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensions3DT<T>::Add(Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall
TCOMIRadialDimensions3DT<T>::Add(void)
{
  Kompasltapi7_tlb::IRadialDimension3DPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRadialDimension3DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRadialDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {153924CD-E046-4334-8798-46A6D6663DE4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get_RadialDimension3D(TVariantInParam Index/*[in]*/, 
                                                   Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RadialDimension3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRadialDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall
IRadialDimensions3DDispT<T>::get_RadialDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRadialDimension3DPtr Result;
  this->get_RadialDimension3D(Index, (Kompasltapi7_tlb::IRadialDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::Add(Kompasltapi7_tlb::IRadialDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRadialDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRadialDimension3DPtr __fastcall
IRadialDimensions3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRadialDimension3DPtr Result;
  this->Add((Kompasltapi7_tlb::IRadialDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                      Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IRadialDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRadialDimensions3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRadialDimensions3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRadialDimensions3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRadialDimensions3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRadialDimensions3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimensions3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRadialDimensions3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRadialDimension3D
// Interface: IRadialDimension3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_Object1(Object1);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIRadialDimension3DT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  return (*this)->set_Object1(Object1);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/)
{
  return (*this)->get_PlaneObject(Object);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIRadialDimension3DT<T>::get_PlaneObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object;
  OLECHECK(this->get_PlaneObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object));
  return Object;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  return (*this)->set_PlaneObject(Object);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIRadialDimension3DT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIRadialDimension3DT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetSurfacePoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRadialDimension3DT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetSurfacePoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRadialDimension3DT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                           double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetCenterPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRadialDimension3DT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                           double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimension3DT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCenterPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRadialDimension3DT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRadialDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5711B871-1FAE-425C-898E-583442D851CD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IRadialDimension3DDispT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PlaneObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IRadialDimension3DDispT<T>::get_PlaneObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object;
  this->get_PlaneObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object);
  return Object;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PlaneObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  this->get_DimensionType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRadialDimension3DDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetSurfacePoint"), DISPID(5));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                            double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSurfacePoint"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                           double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCenterPoint"), DISPID(7));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                           double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCenterPoint"), DISPID(8));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IRadialDimension3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimension3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IRadialDimension3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IRadialDimension3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IRadialDimension3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRadialDimension3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRadialDimension3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRadialDimension3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimension3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRadialDimension3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimensions3D
// Interface: IDiametralDimensions3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDiametralDimensions3DT<T>::get_DiametralDimension3D(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DiametralDimension3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall
TCOMIDiametralDimensions3DT<T>::get_DiametralDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDiametralDimension3DPtr Result;
  OLECHECK(this->get_DiametralDimension3D(Index, (Kompasltapi7_tlb::IDiametralDimension3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensions3DT<T>::Add(Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall
TCOMIDiametralDimensions3DT<T>::Add(void)
{
  Kompasltapi7_tlb::IDiametralDimension3DPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IDiametralDimension3DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IDiametralDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {79B5AC3B-9B2F-4C75-8482-3C0D6B07D911}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get_DiametralDimension3D(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DiametralDimension3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDiametralDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall
IDiametralDimensions3DDispT<T>::get_DiametralDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDiametralDimension3DPtr Result;
  this->get_DiametralDimension3D(Index, (Kompasltapi7_tlb::IDiametralDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::Add(Kompasltapi7_tlb::IDiametralDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDiametralDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDiametralDimension3DPtr __fastcall
IDiametralDimensions3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IDiametralDimension3DPtr Result;
  this->Add((Kompasltapi7_tlb::IDiametralDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IDiametralDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDiametralDimensions3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDiametralDimensions3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDiametralDimensions3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDiametralDimensions3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDiametralDimensions3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimensions3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDiametralDimensions3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimension3D
// Interface: IDiametralDimension3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_Object1(Object1);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIDiametralDimension3DT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  return (*this)->set_Object1(Object1);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/)
{
  return (*this)->get_PlaneObject(Object2);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIDiametralDimension3DT<T>::get_PlaneObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object2;
  OLECHECK(this->get_PlaneObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object2));
  return Object2;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/)
{
  return (*this)->set_PlaneObject(Object2);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDiametralDimension3DT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIDiametralDimension3DT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetSurfacePoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDiametralDimension3DT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetSurfacePoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDiametralDimension3DT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetCenterPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDiametralDimension3DT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimension3DT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCenterPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDiametralDimension3DT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IDiametralDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {261AE065-69B8-4B42-B103-C8746720C5BF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IDiametralDimension3DDispT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PlaneObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object2 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IDiametralDimension3DDispT<T>::get_PlaneObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object2;
  this->get_PlaneObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object2);
  return Object2;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::set_PlaneObject(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PlaneObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object2 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  this->get_DimensionType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDiametralDimension3DDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetSurfacePoint"), DISPID(5));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::GetSurfacePoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                               double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/
                                               , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetSurfacePoint"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::SetSurfacePoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetSurfacePoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCenterPoint"), DISPID(7));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, 
                                              double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                              TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCenterPoint"), DISPID(8));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IDiametralDimension3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimension3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IDiametralDimension3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IDiametralDimension3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IDiametralDimension3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDiametralDimension3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDiametralDimension3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDiametralDimension3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimension3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDiametralDimension3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAngleDimensions3D
// Interface: IAngleDimensions3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAngleDimensions3DT<T>::get_AngleDimension3D(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_AngleDimension3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall
TCOMIAngleDimensions3DT<T>::get_AngleDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAngleDimension3DPtr Result;
  OLECHECK(this->get_AngleDimension3D(Index, (Kompasltapi7_tlb::IAngleDimension3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensions3DT<T>::Add(Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall
TCOMIAngleDimensions3DT<T>::Add(void)
{
  Kompasltapi7_tlb::IAngleDimension3DPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IAngleDimension3DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IAngleDimensions3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E0E8DB05-F71B-457E-BFEB-7EC2E803E77A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get_AngleDimension3D(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleDimension3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAngleDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall
IAngleDimensions3DDispT<T>::get_AngleDimension3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAngleDimension3DPtr Result;
  this->get_AngleDimension3D(Index, (Kompasltapi7_tlb::IAngleDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::Add(Kompasltapi7_tlb::IAngleDimension3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAngleDimension3D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAngleDimension3DPtr __fastcall
IAngleDimensions3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IAngleDimension3DPtr Result;
  this->Add((Kompasltapi7_tlb::IAngleDimension3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IAngleDimensions3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IAngleDimensions3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAngleDimensions3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAngleDimensions3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAngleDimensions3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAngleDimensions3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimensions3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAngleDimensions3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAngleDimension3D
// Interface: IAngleDimension3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_Object1(Object1);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIAngleDimension3DT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  OLECHECK(this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  return (*this)->set_Object1(Object1);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/)
{
  return (*this)->get_Object2(Object2);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIAngleDimension3DT<T>::get_Object2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object2;
  OLECHECK(this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&Object2));
  return Object2;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/)
{
  return (*this)->set_Object2(Object2);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimension3DT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> ksAngleDimTypeEnum __fastcall
TCOMIAngleDimension3DT<T>::get_DimensionType(void)
{
  ksAngleDimTypeEnum PVal;
  OLECHECK(this->get_DimensionType((ksAngleDimTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::Inverse(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Inverse(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAngleDimension3DT<T>::Inverse(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Inverse((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetCenterPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAngleDimension3DT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimension3DT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCenterPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIAngleDimension3DT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IAngleDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C22870B5-F002-4C76-9E67-46854E938824}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IAngleDimension3DDispT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object2"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object2 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IAngleDimension3DDispT<T>::get_Object2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object2;
  this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&Object2);
  return Object2;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object2"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object2 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimension3DDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAngleDimTypeEnum __fastcall
IAngleDimension3DDispT<T>::get_DimensionType(void)
{
  ksAngleDimTypeEnum PVal;
  this->get_DimensionType((ksAngleDimTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::Inverse(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Inverse"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimension3DDispT<T>::Inverse(void)
{
  TOLEBOOL Result;
  this->Inverse((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/
                                          , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCenterPoint"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimension3DDispT<T>::GetCenterPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCenterPoint"), DISPID(7));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimension3DDispT<T>::SetCenterPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCenterPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IAngleDimension3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimension3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimension3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimension3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IAngleDimension3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IAngleDimension3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IAngleDimension3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAngleDimension3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAngleDimension3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAngleDimension3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimension3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAngleDimension3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILeaders3D
// Interface: ILeaders3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILeaders3DT<T>::get_Leader3D(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLeader3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Leader3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall
TCOMILeaders3DT<T>::get_Leader3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeader3DPtr Result;
  OLECHECK(this->get_Leader3D(Index, (Kompasltapi7_tlb::IBaseLeader3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILeaders3DT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/, 
                        Kompasltapi7_tlb::IBaseLeader3DPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(DimType, Value);
}

template <class T> Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall
TCOMILeaders3DT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeader3DPtr Value;
  OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IBaseLeader3DPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ILeaders3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C6E6BDD4-2B0E-49BF-87D3-04E800200DDC}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get_Leader3D(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IBaseLeader3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Leader3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBaseLeader3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall
ILeaders3DDispT<T>::get_Leader3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeader3DPtr Result;
  this->get_Leader3D(Index, (Kompasltapi7_tlb::IBaseLeader3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/, 
                        Kompasltapi7_tlb::IBaseLeader3DPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)DimType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBaseLeader3D**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBaseLeader3DPtr __fastcall
ILeaders3DDispT<T>::Add(ksObj3dTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeader3DPtr Value;
  this->Add(DimType, (Kompasltapi7_tlb::IBaseLeader3DPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILeaders3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILeaders3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILeaders3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILeaders3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILeaders3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILeaders3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILeaders3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILeaders3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBaseLeader3D
// Interface: IBaseLeader3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  return (*this)->get_BasePlane(Val);
}

template <class T> ksObj3dTypeEnum __fastcall
TCOMIBaseLeader3DT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  return (*this)->set_BasePlane(Val);
}

template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  return (*this)->get_PositionObject(Val);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIBaseLeader3DT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  return (*this)->set_PositionObject(Val);
}

template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBaseLeader3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBaseLeader3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::get_ArrowType(ksArrowEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ArrowType(Result);
}

template <class T> ksArrowEnum __fastcall
TCOMIBaseLeader3DT<T>::get_ArrowType(void)
{
  ksArrowEnum Result;
  OLECHECK(this->get_ArrowType((ksArrowEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseLeader3DT<T>::set_ArrowType(ksArrowEnum Result/*[in]*/)
{
  return (*this)->set_ArrowType(Result);
}

// *********************************************************************//
// DispIntf:  IBaseLeader3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7170F38E-8230-4C9C-B36B-0BACBB27B123}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Val /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IBaseLeader3DDispT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  this->get_BasePlane((ksObj3dTypeEnum*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IBaseLeader3DDispT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Val /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPosition"), DISPID(3));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeader3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPosition"), DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeader3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_ArrowType(ksArrowEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksArrowEnum __fastcall
IBaseLeader3DDispT<T>::get_ArrowType(void)
{
  ksArrowEnum Result;
  this->get_ArrowType((ksArrowEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::set_ArrowType(ksArrowEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IBaseLeader3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeader3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeader3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeader3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IBaseLeader3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IBaseLeader3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IBaseLeader3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBaseLeader3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBaseLeader3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBaseLeader3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLeader3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBaseLeader3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRoughs3D
// Interface: IRoughs3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRoughs3DT<T>::get_Rough3D(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IRough3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Rough3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRough3DPtr __fastcall
TCOMIRoughs3DT<T>::get_Rough3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRough3DPtr Result;
  OLECHECK(this->get_Rough3D(Index, (Kompasltapi7_tlb::IRough3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRoughs3DT<T>::Add(Kompasltapi7_tlb::IRough3DPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IRough3DPtr __fastcall
TCOMIRoughs3DT<T>::Add(void)
{
  Kompasltapi7_tlb::IRough3DPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRough3DPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IRoughs3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8533772B-1C43-4FDD-9F0E-BC92F15862C9}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get_Rough3D(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IRough3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rough3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRough3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRough3DPtr __fastcall
IRoughs3DDispT<T>::get_Rough3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRough3DPtr Result;
  this->get_Rough3D(Index, (Kompasltapi7_tlb::IRough3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::Add(Kompasltapi7_tlb::IRough3DPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRough3D**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRough3DPtr __fastcall
IRoughs3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRough3DPtr Value;
  this->Add((Kompasltapi7_tlb::IRough3DPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IRoughs3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRoughs3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRoughs3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRoughs3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRoughs3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRoughs3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRoughs3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRoughs3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRough3D
// Interface: IRough3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  return (*this)->get_BasePlane(Val);
}

template <class T> ksObj3dTypeEnum __fastcall
TCOMIRough3DT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  return (*this)->set_BasePlane(Val);
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  return (*this)->get_PositionObject(Val);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIRough3DT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  return (*this)->set_PositionObject(Val);
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRough3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRough3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIRough3DT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetBasePosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRough3DT<T>::GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetBasePosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetBasePosition(X, Y, Z, Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRough3DT<T>::SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetBasePosition(X, Y, Z, Object, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetShelfPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRough3DT<T>::GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetShelfPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRough3DT<T>::SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetShelfPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRough3DT<T>::SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetShelfPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRough3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {083A4984-199E-4591-8FC3-CB8A9D7D4303}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Val /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IRough3DDispT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  this->get_BasePlane((ksObj3dTypeEnum*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IRough3DDispT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Val /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPosition"), DISPID(3));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPosition"), DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IRough3DDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBasePosition"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::GetBasePosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBasePosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetBasePosition"), DISPID(7));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  _args[4] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::SetBasePosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->SetBasePosition(X, Y, Z, Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetShelfPosition"), DISPID(8));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::GetShelfPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetShelfPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetShelfPosition"), DISPID(9));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::SetShelfPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetShelfPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IRough3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRough3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IRough3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IRough3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IRough3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRough3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRough3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRough3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRough3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRough3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBases3D
// Interface: IBases3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBases3DT<T>::get_Base3D(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IBase3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Base3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBase3DPtr __fastcall
TCOMIBases3DT<T>::get_Base3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBase3DPtr Result;
  OLECHECK(this->get_Base3D(Index, (Kompasltapi7_tlb::IBase3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBases3DT<T>::Add(Kompasltapi7_tlb::IBase3DPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IBase3DPtr __fastcall
TCOMIBases3DT<T>::Add(void)
{
  Kompasltapi7_tlb::IBase3DPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IBase3DPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IBases3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8BC582B3-1F82-4D19-AF95-24CBAD412E52}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBases3DDispT<T>::get_Base3D(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IBase3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Base3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBase3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBase3DPtr __fastcall
IBases3DDispT<T>::get_Base3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBase3DPtr Result;
  this->get_Base3D(Index, (Kompasltapi7_tlb::IBase3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::Add(Kompasltapi7_tlb::IBase3DPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBase3D**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBase3DPtr __fastcall
IBases3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IBase3DPtr Value;
  this->Add((Kompasltapi7_tlb::IBase3DPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IBases3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBases3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBases3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBases3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBases3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBases3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBases3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBases3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBase3D
// Interface: IBase3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  return (*this)->get_BasePlane(Val);
}

template <class T> ksObj3dTypeEnum __fastcall
TCOMIBase3DT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  return (*this)->set_BasePlane(Val);
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  return (*this)->get_PositionObject(Val);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIBase3DT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  return (*this)->set_PositionObject(Val);
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIBase3DT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::get_DrawType(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_DrawType(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::get_DrawType(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_DrawType((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::set_DrawType(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_DrawType(Result);
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSorted(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSorted(Result);
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIBase3DT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetBranchBeginPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetBranchBeginPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetBranchBeginPoint(X, Y, Z, Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetBranchBeginPoint(X, Y, Z, Object, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetBranchEndPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetBranchEndPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBase3DT<T>::SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetBranchEndPoint(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBase3DT<T>::SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetBranchEndPoint(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IBase3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D5B737F6-FD3D-49F8-B3D8-C8475E5E3D3A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Val /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IBase3DDispT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  this->get_BasePlane((ksObj3dTypeEnum*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IBase3DDispT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Val /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPosition"), DISPID(3));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                             TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPosition"), DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IBase3DDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_DrawType(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawType"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::get_DrawType(void)
{
  TOLEBOOL Result;
  this->get_DrawType((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::set_DrawType(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawType"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  this->get_AutoSorted((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBase3DDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBranchBeginPoint"), DISPID(9));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBranchBeginPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetBranchBeginPoint"), DISPID(10));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  _args[4] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->SetBranchBeginPoint(X, Y, Z, Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBranchEndPoint"), DISPID(11));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::GetBranchEndPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBranchEndPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetBranchEndPoint"), DISPID(12));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::SetBranchEndPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetBranchEndPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IBase3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBase3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IBase3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IBase3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IBase3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBase3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBase3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBase3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBase3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBase3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITolerances3D
// Interface: ITolerances3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITolerances3DT<T>::get_Tolerance3D(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::ITolerance3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Tolerance3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::ITolerance3DPtr __fastcall
TCOMITolerances3DT<T>::get_Tolerance3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ITolerance3DPtr Result;
  OLECHECK(this->get_Tolerance3D(Index, (Kompasltapi7_tlb::ITolerance3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITolerances3DT<T>::Add(Kompasltapi7_tlb::ITolerance3DPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::ITolerance3DPtr __fastcall
TCOMITolerances3DT<T>::Add(void)
{
  Kompasltapi7_tlb::ITolerance3DPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::ITolerance3DPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ITolerances3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {82ADDA0C-B8DE-4336-A5CC-B36504A80E2D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get_Tolerance3D(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::ITolerance3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tolerance3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITolerance3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITolerance3DPtr __fastcall
ITolerances3DDispT<T>::get_Tolerance3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ITolerance3DPtr Result;
  this->get_Tolerance3D(Index, (Kompasltapi7_tlb::ITolerance3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::Add(Kompasltapi7_tlb::ITolerance3DPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITolerance3D**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITolerance3DPtr __fastcall
ITolerances3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ITolerance3DPtr Value;
  this->Add((Kompasltapi7_tlb::ITolerance3DPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ITolerances3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ITolerances3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITolerances3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITolerances3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITolerances3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITolerances3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITolerances3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITolerances3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITolerance3D
// Interface: ITolerance3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  return (*this)->get_BasePlane(Val);
}

template <class T> ksObj3dTypeEnum __fastcall
TCOMITolerance3DT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  OLECHECK(this->get_BasePlane((ksObj3dTypeEnum*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  return (*this)->set_BasePlane(Val);
}

template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  return (*this)->get_PositionObject(Val);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMITolerance3DT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  OLECHECK(this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  return (*this)->set_PositionObject(Val);
}

template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITolerance3DT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPosition(X, Y, Z, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITolerance3DT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_ArrowType(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMITolerance3DT<T>::get_ArrowType(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->get_ArrowType(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITolerance3DT<T>::set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_ArrowType(Index, Result);
}

// *********************************************************************//
// DispIntf:  ITolerance3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9CF700CF-72DB-44EB-A191-3814A3CC21BD}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_BasePlane(ksObj3dTypeEnum* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Val /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ITolerance3DDispT<T>::get_BasePlane(void)
{
  ksObj3dTypeEnum Val;
  this->get_BasePlane((ksObj3dTypeEnum*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::set_BasePlane(ksObj3dTypeEnum Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePlane"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_PositionObject(Kompasltapi7_tlb::IModelObjectPtr* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Val /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ITolerance3DDispT<T>::get_PositionObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Val;
  this->get_PositionObject((Kompasltapi7_tlb::IModelObjectPtr*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::set_PositionObject(Kompasltapi7_tlb::IModelObjectPtr Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositionObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Val /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPosition"), DISPID(3));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITolerance3DDispT<T>::GetPosition(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPosition"), DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITolerance3DDispT<T>::SetPosition(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPosition(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITolerance3DDispT<T>::get_ArrowType(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->get_ArrowType(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ITolerance3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITolerance3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITolerance3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ITolerance3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ITolerance3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ITolerance3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ITolerance3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITolerance3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITolerance3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITolerance3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITolerance3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITolerance3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILineDimension3D
// Interface: ILineDimension3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILineDimension3DT<T>::get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Plane/*[out,retval]*/)
{
  return (*this)->get_Plane(Plane);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMILineDimension3DT<T>::get_Plane(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Plane;
  OLECHECK(this->get_Plane((Kompasltapi7_tlb::IModelObjectPtr*)&Plane));
  return Plane;
}

template <class T> HRESULT __fastcall
TCOMILineDimension3DT<T>::set_Plane(Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/)
{
  return (*this)->set_Plane(Plane);
}

// *********************************************************************//
// DispIntf:  ILineDimension3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F38E986B-9CC0-4492-B850-180D3A6AF713}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Plane(Kompasltapi7_tlb::IModelObjectPtr* Plane/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Plane"), DISPID(101));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Plane /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILineDimension3DDispT<T>::get_Plane(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Plane;
  this->get_Plane((Kompasltapi7_tlb::IModelObjectPtr*)&Plane);
  return Plane;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::set_Plane(Kompasltapi7_tlb::IModelObjectPtr Plane/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Plane"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Plane /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimension3DDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Object1(Kompasltapi7_tlb::IModelObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILineDimension3DDispT<T>::get_Object1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object1;
  this->get_Object1((Kompasltapi7_tlb::IModelObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::set_Object1(Kompasltapi7_tlb::IModelObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Object2(Kompasltapi7_tlb::IModelObjectPtr* Object2/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object2 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILineDimension3DDispT<T>::get_Object2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object2;
  this->get_Object2((Kompasltapi7_tlb::IModelObjectPtr*)&Object2);
  return Object2;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::set_Object2(Kompasltapi7_tlb::IModelObjectPtr Object2/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Object2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object2 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ILineDimension3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDimension3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDimension3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDimension3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ILineDimension3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ILineDimension3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ILineDimension3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILineDimension3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILineDimension3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILineDimension3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimension3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDimension3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICurveVertexParam
// Interface: ICurveVertexParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::set_BuildingType(ksLineBuildingType Result/*[in]*/)
{
  return (*this)->set_BuildingType(Result);
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::get_BuildingType(ksLineBuildingType* Result/*[out,retval]*/)
{
  return (*this)->get_BuildingType(Result);
}

template <class T> ksLineBuildingType __fastcall
TCOMICurveVertexParamT<T>::get_BuildingType(void)
{
  ksLineBuildingType Result;
  OLECHECK(this->get_BuildingType((ksLineBuildingType*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::set_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  return (*this)->set_BuildingObject(Result);
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::get_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BuildingObject(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMICurveVertexParamT<T>::get_BuildingObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_BuildingObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::set_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  return (*this)->set_AssociationVertex(Result);
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_AssociationVertex(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMICurveVertexParamT<T>::get_AssociationVertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::get_Vertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Vertex(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMICurveVertexParamT<T>::get_Vertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_Vertex((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::get_Index(int* Result/*[out,retval]*/)
{
  return (*this)->get_Index(Result);
}

template <class T> int __fastcall
TCOMICurveVertexParamT<T>::get_Index(void)
{
  int Result;
  OLECHECK(this->get_Index((int*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::get_PointParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_PointParameters(Result);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMICurveVertexParamT<T>::get_PointParameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  OLECHECK(this->get_PointParameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::set_PointType(ksPoint3DTypeEnum Result/*[in]*/)
{
  return (*this)->set_PointType(Result);
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::get_PointType(ksPoint3DTypeEnum* Result/*[out,retval]*/)
{
  return (*this)->get_PointType(Result);
}

template <class T> ksPoint3DTypeEnum __fastcall
TCOMICurveVertexParamT<T>::get_PointType(void)
{
  ksPoint3DTypeEnum Result;
  OLECHECK(this->get_PointType((ksPoint3DTypeEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                          double* Value/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetParamVertex(X, Y, Z, Value, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveVertexParamT<T>::GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                          double* Value/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetParamVertex(X, Y, Z, Value, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                          double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetParamVertex(X, Y, Z, Value, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveVertexParamT<T>::SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                          double Value/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetParamVertex(X, Y, Z, Value, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                            double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetParamByVertex(Obj, Value, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveVertexParamT<T>::SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                            double Value/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetParamByVertex(Obj, Value, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetParamByDistance(Distance, Value, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveVertexParamT<T>::GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetParamByDistance(Distance, Value, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveVertexParamT<T>::SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->SetParamByDistance(Distance, Value, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveVertexParamT<T>::SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->SetParamByDistance(Distance, Value, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICurveVertexParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2AD2E4B4-B870-437A-8D57-5807729FCB05}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::set_BuildingType(ksLineBuildingType Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BuildingType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_BuildingType(ksLineBuildingType* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BuildingType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLineBuildingType __fastcall
ICurveVertexParamDispT<T>::get_BuildingType(void)
{
  ksLineBuildingType Result;
  this->get_BuildingType((ksLineBuildingType*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::set_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BuildingObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_BuildingObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BuildingObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ICurveVertexParamDispT<T>::get_BuildingObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_BuildingObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::set_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationVertex"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_AssociationVertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationVertex"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ICurveVertexParamDispT<T>::get_AssociationVertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_AssociationVertex((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_Vertex(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Vertex"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ICurveVertexParamDispT<T>::get_Vertex(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Vertex((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_Index(int* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Index"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_INT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> int __fastcall
ICurveVertexParamDispT<T>::get_Index(void)
{
  int Result;
  this->get_Index((int*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_PointParameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointParameters"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICurveVertexParamDispT<T>::get_PointParameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_PointParameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::set_PointType(ksPoint3DTypeEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_PointType(ksPoint3DTypeEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPoint3DTypeEnum __fastcall
ICurveVertexParamDispT<T>::get_PointType(void)
{
  ksPoint3DTypeEnum Result;
  this->get_PointType((ksPoint3DTypeEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/
                                          , double* Value/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetParamVertex"), DISPID(8));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  _args[4] = Value /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveVertexParamDispT<T>::GetParamVertex(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                          double* Value/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetParamVertex(X, Y, Z, Value, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                          double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetParamVertex"), DISPID(9));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  _args[4] = Value /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveVertexParamDispT<T>::SetParamVertex(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                          double Value/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetParamVertex(X, Y, Z, Value, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                            double Value/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetParamByVertex"), DISPID(10));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Obj /*[VT_USERDEFINED:1]*/;
  _args[2] = Value /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveVertexParamDispT<T>::SetParamByVertex(Kompasltapi7_tlb::IModelObjectPtr Obj/*[in]*/, 
                                            double Value/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetParamByVertex(Obj, Value, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetParamByDistance"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = Distance /*[VT_R8:1]*/;
  _args[2] = Value /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveVertexParamDispT<T>::GetParamByDistance(double* Distance/*[out]*/, double* Value/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetParamByDistance(Distance, Value, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetParamByDistance"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = Distance /*[VT_R8:0]*/;
  _args[2] = Value /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveVertexParamDispT<T>::SetParamByDistance(double Distance/*[in]*/, double Value/*[in]*/)
{
  TOLEBOOL PVal;
  this->SetParamByDistance(Distance, Value, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICurveVertexParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICurveVertexParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICurveVertexParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICurveVertexParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICurveVertexParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISplines3D
// Interface: ISplines3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISplines3DT<T>::get_Spline3D(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Spline3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISpline3DPtr __fastcall
TCOMISplines3DT<T>::get_Spline3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpline3DPtr Result;
  OLECHECK(this->get_Spline3D(Index, (Kompasltapi7_tlb::ISpline3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISplines3DT<T>::Add(Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISpline3DPtr __fastcall
TCOMISplines3DT<T>::Add(void)
{
  Kompasltapi7_tlb::ISpline3DPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISpline3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISplines3DT<T>::Convert(TVariantInParam Objects/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  return (*this)->Convert(Objects, Result);
}

template <class T> TVariant __fastcall
TCOMISplines3DT<T>::Convert(TVariantInParam Objects/*[in]*/)
{
  TVariant Result;
  OLECHECK(this->Convert(Objects, (TVariant*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISplines3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C4BC0839-932F-4DBC-9A84-5D1FE8927351}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get_Spline3D(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Spline3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpline3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpline3DPtr __fastcall
ISplines3DDispT<T>::get_Spline3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISpline3DPtr Result;
  this->get_Spline3D(Index, (Kompasltapi7_tlb::ISpline3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::Add(Kompasltapi7_tlb::ISpline3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISpline3D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISpline3DPtr __fastcall
ISplines3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISpline3DPtr Result;
  this->Add((Kompasltapi7_tlb::ISpline3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::Convert(TVariantInParam Objects/*[in]*/, TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Convert"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
ISplines3DDispT<T>::Convert(TVariantInParam Objects/*[in]*/)
{
  TVariant Result;
  this->Convert(Objects, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISplines3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISplines3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISplines3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISplines3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISplines3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISplines3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISplines3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISplines3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISpline3D
// Interface: ISpline3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Closed(Result);
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Closed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpline3DT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::set_SplineOnPoles(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_SplineOnPoles(Result);
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::get_SplineOnPoles(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_SplineOnPoles(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpline3DT<T>::get_SplineOnPoles(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_SplineOnPoles((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::set_SplineOrder(long Result/*[in]*/)
{
  return (*this)->set_SplineOrder(Result);
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::get_SplineOrder(long* Result/*[out,retval]*/)
{
  return (*this)->get_SplineOrder(Result);
}

template <class T> long __fastcall
TCOMISpline3DT<T>::get_SplineOrder(void)
{
  long Result;
  OLECHECK(this->get_SplineOrder((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::get_VertexCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_VertexCount(Result);
}

template <class T> long __fastcall
TCOMISpline3DT<T>::get_VertexCount(void)
{
  long Result;
  OLECHECK(this->get_VertexCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::get_VertexParams(long Index/*[in]*/, 
                                    Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  return (*this)->get_VertexParams(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
TCOMISpline3DT<T>::get_VertexParams(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  OLECHECK(this->get_VertexParams(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::AddVertex(long Index/*[in]*/, 
                             Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  return (*this)->AddVertex(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
TCOMISpline3DT<T>::AddVertex(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  OLECHECK(this->AddVertex(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteVertex(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpline3DT<T>::DeleteVertex(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteVertex(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::Flush(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Flush(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpline3DT<T>::Flush(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Flush((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ReadFromFile(FileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpline3DT<T>::ReadFromFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ReadFromFile(FileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->WriteToFile(FileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpline3DT<T>::WriteToFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->WriteToFile(FileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::get_VertexParamsArray(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_VertexParamsArray(Result);
}

template <class T> TVariant __fastcall
TCOMISpline3DT<T>::get_VertexParamsArray(void)
{
  TVariant Result;
  OLECHECK(this->get_VertexParamsArray((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Weights/*[out]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetVertexCoordinatesArray(Coordinates, Weights, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISpline3DT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Weights/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetVertexCoordinatesArray(Coordinates, Weights, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::set_Knots(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Knots(PVal);
}

template <class T> HRESULT __fastcall
TCOMISpline3DT<T>::get_Knots(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Knots(PVal);
}

template <class T> TVariant __fastcall
TCOMISpline3DT<T>::get_Knots(void)
{
  TVariant PVal;
  OLECHECK(this->get_Knots((TVariant*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISpline3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D0940A0-6A4A-4CE8-A08A-EA0A4AE91942}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISpline3DDispT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  this->get_Closed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::set_SplineOnPoles(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SplineOnPoles"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_SplineOnPoles(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SplineOnPoles"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::get_SplineOnPoles(void)
{
  TOLEBOOL Result;
  this->get_SplineOnPoles((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::set_SplineOrder(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SplineOrder"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_SplineOrder(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SplineOrder"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpline3DDispT<T>::get_SplineOrder(void)
{
  long Result;
  this->get_SplineOrder((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_VertexCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexCount"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpline3DDispT<T>::get_VertexCount(void)
{
  long Result;
  this->get_VertexCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_VertexParams(long Index/*[in]*/, 
                                    Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexParams"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurveVertexParam**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
ISpline3DDispT<T>::get_VertexParams(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  this->get_VertexParams(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::AddVertex(long Index/*[in]*/, 
                             Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddVertex"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurveVertexParam**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
ISpline3DDispT<T>::AddVertex(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  this->AddVertex(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteVertex"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::DeleteVertex(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteVertex(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::Flush(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Flush"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::Flush(void)
{
  TOLEBOOL Result;
  this->Flush((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadFromFile"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::ReadFromFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  this->ReadFromFile(FileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WriteToFile"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::WriteToFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  this->WriteToFile(FileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_VertexParamsArray(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexParamsArray"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISpline3DDispT<T>::get_VertexParamsArray(void)
{
  TVariant Result;
  this->get_VertexParamsArray((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Weights/*[out]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetVertexCoordinatesArray"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = Coordinates /*[VT_VARIANT:1]*/;
  _args[2] = Weights /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Weights/*[out]*/)
{
  TOLEBOOL Result;
  this->GetVertexCoordinatesArray(Coordinates, Weights, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::set_Knots(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Knots"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Knots(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Knots"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISpline3DDispT<T>::get_Knots(void)
{
  TVariant PVal;
  this->get_Knots((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISpline3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISpline3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISpline3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISpline3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISpline3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISpline3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISpline3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISpline3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISpline3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISpline3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILocalCoordinateSystems
// Interface: ILocalCoordinateSystems
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemsT<T>::get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/, 
                                                           Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/)
{
  return (*this)->get_LocalCoordinateSystem(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall
TCOMILocalCoordinateSystemsT<T>::get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr Result;
  OLECHECK(this->get_LocalCoordinateSystem(Index, (Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemsT<T>::Add(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall
TCOMILocalCoordinateSystemsT<T>::Add(void)
{
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemsT<T>::get_Current(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Current(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMILocalCoordinateSystemsT<T>::get_Current(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_Current((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCoordinateSystemsT<T>::SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCurrent(Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCoordinateSystemsT<T>::SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCurrent(Object, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILocalCoordinateSystems
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CC04CBF6-F0D4-456E-903A-C0B0D3551368}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/, 
                                                           Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LocalCoordinateSystem"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILocalCoordinateSystem**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall
ILocalCoordinateSystemsDispT<T>::get_LocalCoordinateSystem(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr Result;
  this->get_LocalCoordinateSystem(Index, (Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::Add(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILocalCoordinateSystem**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall
ILocalCoordinateSystemsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr Result;
  this->Add((Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_Current(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Current"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILocalCoordinateSystemsDispT<T>::get_Current(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Current((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/
                                            , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCurrent"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ILocalCoordinateSystem*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCoordinateSystemsDispT<T>::SetCurrent(Kompasltapi7_tlb::ILocalCoordinateSystemPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCurrent(Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILocalCoordinateSystemsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILocalCoordinateSystemsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILocalCoordinateSystemsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILocalCoordinateSystemsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILocalCoordinateSystemsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILocalCoordinateSystemsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILocalCoordinateSystemsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILocalCoordinateSystemsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAuxiliaryGeomContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {950FEBE2-F916-4E77-A37D-B061E5C22FA8}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_LocalCoordinateSystems(Kompasltapi7_tlb::ILocalCoordinateSystemsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LocalCoordinateSystems"), DISPID(14001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILocalCoordinateSystems**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILocalCoordinateSystemsPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_LocalCoordinateSystems(void)
{
  Kompasltapi7_tlb::ILocalCoordinateSystemsPtr PVal;
  this->get_LocalCoordinateSystems((Kompasltapi7_tlb::ILocalCoordinateSystemsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_Splines3D(Kompasltapi7_tlb::ISplines3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Splines3D"), DISPID(14002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISplines3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISplines3DPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_Splines3D(void)
{
  Kompasltapi7_tlb::ISplines3DPtr PVal;
  this->get_Splines3D((Kompasltapi7_tlb::ISplines3DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_PolyLines(Kompasltapi7_tlb::IPolyLinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PolyLines"), DISPID(14003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPolyLines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPolyLinesPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_PolyLines(void)
{
  Kompasltapi7_tlb::IPolyLinesPtr PVal;
  this->get_PolyLines((Kompasltapi7_tlb::IPolyLinesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_ControlPoints(Kompasltapi7_tlb::IControlPointsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlPoints"), DISPID(14004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IControlPoints**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IControlPointsPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_ControlPoints(void)
{
  Kompasltapi7_tlb::IControlPointsPtr PVal;
  this->get_ControlPoints((Kompasltapi7_tlb::IControlPointsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_ConjunctivePoints(Kompasltapi7_tlb::IConjunctivePointsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConjunctivePoints"), DISPID(14005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IConjunctivePoints**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IConjunctivePointsPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_ConjunctivePoints(void)
{
  Kompasltapi7_tlb::IConjunctivePointsPtr PVal;
  this->get_ConjunctivePoints((Kompasltapi7_tlb::IConjunctivePointsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_SplitLines(Kompasltapi7_tlb::ISplitLinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SplitLines"), DISPID(14006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISplitLines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISplitLinesPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_SplitLines(void)
{
  Kompasltapi7_tlb::ISplitLinesPtr PVal;
  this->get_SplitLines((Kompasltapi7_tlb::ISplitLinesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_SurfacesIntersectionCurves(Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfacesIntersectionCurves"), DISPID(14007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfacesIntersectionCurves**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_SurfacesIntersectionCurves(void)
{
  Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr PVal;
  this->get_SurfacesIntersectionCurves((Kompasltapi7_tlb::ISurfacesIntersectionCurvesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAuxiliaryGeomContainerDispT<T>::get_Equidistants3D(Kompasltapi7_tlb::IEquidistants3DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Equidistants3D"), DISPID(14008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEquidistants3D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEquidistants3DPtr __fastcall
IAuxiliaryGeomContainerDispT<T>::get_Equidistants3D(void)
{
  Kompasltapi7_tlb::IEquidistants3DPtr PVal;
  this->get_Equidistants3D((Kompasltapi7_tlb::IEquidistants3DPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPolyLines
// Interface: IPolyLines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPolyLinesT<T>::get_PolyLine(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_PolyLine(Index, Result);
}

template <class T> Kompasltapi7_tlb::IPolyLinePtr __fastcall
TCOMIPolyLinesT<T>::get_PolyLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPolyLinePtr Result;
  OLECHECK(this->get_PolyLine(Index, (Kompasltapi7_tlb::IPolyLinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLinesT<T>::Add(Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IPolyLinePtr __fastcall
TCOMIPolyLinesT<T>::Add(void)
{
  Kompasltapi7_tlb::IPolyLinePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IPolyLinePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPolyLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0CF9B989-29F8-495F-9DDA-8C2CAD840BB6}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get_PolyLine(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PolyLine"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPolyLine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPolyLinePtr __fastcall
IPolyLinesDispT<T>::get_PolyLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPolyLinePtr Result;
  this->get_PolyLine(Index, (Kompasltapi7_tlb::IPolyLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::Add(Kompasltapi7_tlb::IPolyLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPolyLine**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPolyLinePtr __fastcall
IPolyLinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IPolyLinePtr Result;
  this->Add((Kompasltapi7_tlb::IPolyLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IPolyLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IPolyLinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPolyLinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPolyLinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPolyLinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPolyLine
// Interface: IPolyLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Closed(Result);
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Closed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLineT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::set_VertexVisible(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_VertexVisible(Result);
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::get_VertexVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_VertexVisible(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLineT<T>::get_VertexVisible(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_VertexVisible((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::get_VertexCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_VertexCount(Result);
}

template <class T> long __fastcall
TCOMIPolyLineT<T>::get_VertexCount(void)
{
  long Result;
  OLECHECK(this->get_VertexCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::get_Edges(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_Edges(Result);
}

template <class T> TVariant __fastcall
TCOMIPolyLineT<T>::get_Edges(void)
{
  TVariant Result;
  OLECHECK(this->get_Edges((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::get_VertexParams(long Index/*[in]*/, 
                                    Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  return (*this)->get_VertexParams(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
TCOMIPolyLineT<T>::get_VertexParams(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  OLECHECK(this->get_VertexParams(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ReadFromFile(FileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLineT<T>::ReadFromFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->ReadFromFile(FileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->WriteToFile(FileName, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLineT<T>::WriteToFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->WriteToFile(FileName, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::AddVertex(long Index/*[in]*/, 
                             Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  return (*this)->AddVertex(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
TCOMIPolyLineT<T>::AddVertex(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  OLECHECK(this->AddVertex(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteVertex(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLineT<T>::DeleteVertex(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteVertex(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::Flush(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Flush(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLineT<T>::Flush(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Flush((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::get_VertexParamsArray(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_VertexParamsArray(Result);
}

template <class T> TVariant __fastcall
TCOMIPolyLineT<T>::get_VertexParamsArray(void)
{
  TVariant Result;
  OLECHECK(this->get_VertexParamsArray((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLineT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Radiuses/*[out]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetVertexCoordinatesArray(Coordinates, Radiuses, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLineT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Radiuses/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetVertexCoordinatesArray(Coordinates, Radiuses, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPolyLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6CE7843D-9AFA-48FF-B444-61CDF036D118}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPolyLineDispT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  this->get_Closed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::set_VertexVisible(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexVisible"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_VertexVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexVisible"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::get_VertexVisible(void)
{
  TOLEBOOL Result;
  this->get_VertexVisible((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_VertexCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexCount"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLineDispT<T>::get_VertexCount(void)
{
  long Result;
  this->get_VertexCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Edges(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edges"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPolyLineDispT<T>::get_Edges(void)
{
  TVariant Result;
  this->get_Edges((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_VertexParams(long Index/*[in]*/, 
                                    Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexParams"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurveVertexParam**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
IPolyLineDispT<T>::get_VertexParams(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  this->get_VertexParams(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::ReadFromFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ReadFromFile"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::ReadFromFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  this->ReadFromFile(FileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::WriteToFile(BSTR FileName/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WriteToFile"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::WriteToFile(BSTR FileName/*[in]*/)
{
  TOLEBOOL Result;
  this->WriteToFile(FileName, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::AddVertex(long Index/*[in]*/, 
                             Kompasltapi7_tlb::ICurveVertexParamPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddVertex"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurveVertexParam**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurveVertexParamPtr __fastcall
IPolyLineDispT<T>::AddVertex(long Index/*[in]*/)
{
  Kompasltapi7_tlb::ICurveVertexParamPtr Result;
  this->AddVertex(Index, (Kompasltapi7_tlb::ICurveVertexParamPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::DeleteVertex(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteVertex"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::DeleteVertex(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteVertex(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::Flush(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Flush"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::Flush(void)
{
  TOLEBOOL Result;
  this->Flush((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_VertexParamsArray(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexParamsArray"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPolyLineDispT<T>::get_VertexParamsArray(void)
{
  TVariant Result;
  this->get_VertexParamsArray((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Radiuses/*[out]*/, 
                                             TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetVertexCoordinatesArray"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = Coordinates /*[VT_VARIANT:1]*/;
  _args[2] = Radiuses /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::GetVertexCoordinatesArray(TVariant* Coordinates/*[out]*/, 
                                             TVariant* Radiuses/*[out]*/)
{
  TOLEBOOL Result;
  this->GetVertexCoordinatesArray(Coordinates, Radiuses, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPolyLineDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLineDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IPolyLineDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IPolyLineDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IPolyLineDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPolyLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPolyLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPolyLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIControlPoints
// Interface: IControlPoints
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIControlPointsT<T>::get_ControlPoint(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ControlPoint(Index, Result);
}

template <class T> Kompasltapi7_tlb::IControlPointPtr __fastcall
TCOMIControlPointsT<T>::get_ControlPoint(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IControlPointPtr Result;
  OLECHECK(this->get_ControlPoint(Index, (Kompasltapi7_tlb::IControlPointPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIControlPointsT<T>::Add(Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IControlPointPtr __fastcall
TCOMIControlPointsT<T>::Add(void)
{
  Kompasltapi7_tlb::IControlPointPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IControlPointPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IControlPoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E22E30F6-05EE-4FB5-9EEB-E288234F256A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get_ControlPoint(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlPoint"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IControlPoint**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IControlPointPtr __fastcall
IControlPointsDispT<T>::get_ControlPoint(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IControlPointPtr Result;
  this->get_ControlPoint(Index, (Kompasltapi7_tlb::IControlPointPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::Add(Kompasltapi7_tlb::IControlPointPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IControlPoint**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IControlPointPtr __fastcall
IControlPointsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IControlPointPtr Result;
  this->Add((Kompasltapi7_tlb::IControlPointPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IControlPointsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IControlPointsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IControlPointsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IControlPointsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IControlPointsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IControlPointsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IControlPointsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IControlPointsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIControlPoint
// Interface: IControlPoint
// *********************************************************************//
// *********************************************************************//
// DispIntf:  IControlPoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {39F4FC2C-99E7-411B-9036-9C756A71E211}
// *********************************************************************//
template <class T> HRESULT __fastcall
IControlPointDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IControlPointDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IControlPointDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::set_Z(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Z(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IControlPointDispT<T>::get_Z(void)
{
  double PVal;
  this->get_Z((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                            TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAssociationObject"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IControlPointDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAssociationObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IControlPointDispT<T>::get_AssociationObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_AssociationObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAnnotationSymbolEnum __fastcall
IControlPointDispT<T>::get_Symbol(void)
{
  ksAnnotationSymbolEnum PVal;
  this->get_Symbol((ksAnnotationSymbolEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPoint3DTypeEnum __fastcall
IControlPointDispT<T>::get_ParameterType(void)
{
  ksPoint3DTypeEnum PVal;
  this->get_ParameterType((ksPoint3DTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parameters"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IControlPointDispT<T>::get_Parameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_Parameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IControlPointDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IControlPointDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IControlPointDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IControlPointDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IControlPointDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IControlPointDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IControlPointDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IControlPointDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IControlPointDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IControlPointDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IControlPointDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IControlPointDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIConjunctivePoints
// Interface: IConjunctivePoints
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIConjunctivePointsT<T>::get_ConjunctivePoint(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ConjunctivePoint(Index, Result);
}

template <class T> Kompasltapi7_tlb::IConjunctivePointPtr __fastcall
TCOMIConjunctivePointsT<T>::get_ConjunctivePoint(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IConjunctivePointPtr Result;
  OLECHECK(this->get_ConjunctivePoint(Index, (Kompasltapi7_tlb::IConjunctivePointPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointsT<T>::Add(Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IConjunctivePointPtr __fastcall
TCOMIConjunctivePointsT<T>::Add(void)
{
  Kompasltapi7_tlb::IConjunctivePointPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IConjunctivePointPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IConjunctivePoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4DF343A0-8744-429D-A605-0EEABB7B5F23}
// *********************************************************************//
template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get_ConjunctivePoint(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ConjunctivePoint"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IConjunctivePoint**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IConjunctivePointPtr __fastcall
IConjunctivePointsDispT<T>::get_ConjunctivePoint(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IConjunctivePointPtr Result;
  this->get_ConjunctivePoint(Index, (Kompasltapi7_tlb::IConjunctivePointPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::Add(Kompasltapi7_tlb::IConjunctivePointPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IConjunctivePoint**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IConjunctivePointPtr __fastcall
IConjunctivePointsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IConjunctivePointPtr Result;
  this->Add((Kompasltapi7_tlb::IConjunctivePointPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IConjunctivePointsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IConjunctivePointsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IConjunctivePointsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IConjunctivePointsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IConjunctivePointsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IConjunctivePointsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IConjunctivePointsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IConjunctivePointsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIConjunctivePoint
// Interface: IConjunctivePoint
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetDirectionObject1(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIConjunctivePointT<T>::SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetDirectionObject1(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::get_DirectionObject1(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DirectionObject1(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIConjunctivePointT<T>::get_DirectionObject1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_DirectionObject1((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetDirectionObject2(NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIConjunctivePointT<T>::SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetDirectionObject2(NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::get_DirectionObject2(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DirectionObject2(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIConjunctivePointT<T>::get_DirectionObject2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_DirectionObject2((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::get_Direction1(TOLEBOOL* Val/*[out,retval]*/)
{
  return (*this)->get_Direction1(Val);
}

template <class T> TOLEBOOL __fastcall
TCOMIConjunctivePointT<T>::get_Direction1(void)
{
  TOLEBOOL Val;
  OLECHECK(this->get_Direction1((TOLEBOOL*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::set_Direction1(TOLEBOOL Val/*[in]*/)
{
  return (*this)->set_Direction1(Val);
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::get_Direction2(TOLEBOOL* Val/*[out,retval]*/)
{
  return (*this)->get_Direction2(Val);
}

template <class T> TOLEBOOL __fastcall
TCOMIConjunctivePointT<T>::get_Direction2(void)
{
  TOLEBOOL Val;
  OLECHECK(this->get_Direction2((TOLEBOOL*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::set_Direction2(TOLEBOOL Val/*[in]*/)
{
  return (*this)->set_Direction2(Val);
}

template <class T> HRESULT __fastcall
TCOMIConjunctivePointT<T>::get_Axis(ksObj3dTypeEnum Val/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Axis(Val, Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIConjunctivePointT<T>::get_Axis(ksObj3dTypeEnum Val/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_Axis(Val, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IConjunctivePoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BC7AD518-9599-490B-9E2B-9711FD9B8D4C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetDirectionObject1"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::SetDirectionObject1(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetDirectionObject1(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_DirectionObject1(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DirectionObject1"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IConjunctivePointDispT<T>::get_DirectionObject1(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_DirectionObject1((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetDirectionObject2"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::SetDirectionObject2(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetDirectionObject2(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_DirectionObject2(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DirectionObject2"), DISPID(104));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IConjunctivePointDispT<T>::get_DirectionObject2(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_DirectionObject2((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Direction1(TOLEBOOL* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction1"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::get_Direction1(void)
{
  TOLEBOOL Val;
  this->get_Direction1((TOLEBOOL*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_Direction1(TOLEBOOL Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction1"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Direction2(TOLEBOOL* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction2"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::get_Direction2(void)
{
  TOLEBOOL Val;
  this->get_Direction2((TOLEBOOL*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_Direction2(TOLEBOOL Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction2"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Axis(ksObj3dTypeEnum Val/*[in]*/, 
                                    Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Axis"), DISPID(107));
  TAutoArgs<1> _args;
  _args[1] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IConjunctivePointDispT<T>::get_Axis(ksObj3dTypeEnum Val/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Axis(Val, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IConjunctivePointDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IConjunctivePointDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_Z(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Z(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Z"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IConjunctivePointDispT<T>::get_Z(void)
{
  double PVal;
  this->get_Z((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/, 
                                                TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAssociationObject"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)NewVal /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::SetAssociationObject(Kompasltapi7_tlb::IModelObjectPtr NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAssociationObject(NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_AssociationObject(Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AssociationObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IConjunctivePointDispT<T>::get_AssociationObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_AssociationObject((Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_Symbol(ksAnnotationSymbolEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Symbol(ksAnnotationSymbolEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Symbol"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAnnotationSymbolEnum __fastcall
IConjunctivePointDispT<T>::get_Symbol(void)
{
  ksAnnotationSymbolEnum PVal;
  this->get_Symbol((ksAnnotationSymbolEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_ParameterType(ksPoint3DTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_ParameterType(ksPoint3DTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParameterType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPoint3DTypeEnum __fastcall
IConjunctivePointDispT<T>::get_ParameterType(void)
{
  ksPoint3DTypeEnum PVal;
  this->get_ParameterType((ksPoint3DTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Parameters(Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parameters"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IConjunctivePointDispT<T>::get_Parameters(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_Parameters((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IConjunctivePointDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IConjunctivePointDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IConjunctivePointDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IConjunctivePointDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IConjunctivePointDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IConjunctivePointDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IConjunctivePointDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IConjunctivePointDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IConjunctivePointDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IConjunctivePointDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISplitLines
// Interface: ISplitLines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISplitLinesT<T>::get_SplitLine(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_SplitLine(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISplitLinePtr __fastcall
TCOMISplitLinesT<T>::get_SplitLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISplitLinePtr Result;
  OLECHECK(this->get_SplitLine(Index, (Kompasltapi7_tlb::ISplitLinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISplitLinesT<T>::Add(Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISplitLinePtr __fastcall
TCOMISplitLinesT<T>::Add(void)
{
  Kompasltapi7_tlb::ISplitLinePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISplitLinePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISplitLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {986E4A45-362F-469D-A3AE-CE081B8EA93A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get_SplitLine(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SplitLine"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISplitLine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISplitLinePtr __fastcall
ISplitLinesDispT<T>::get_SplitLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISplitLinePtr Result;
  this->get_SplitLine(Index, (Kompasltapi7_tlb::ISplitLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::Add(Kompasltapi7_tlb::ISplitLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISplitLine**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISplitLinePtr __fastcall
ISplitLinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISplitLinePtr Result;
  this->Add((Kompasltapi7_tlb::ISplitLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISplitLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISplitLinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISplitLinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISplitLinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISplitLinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISplitLinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISplitLinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISplitLinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISplitLine
// Interface: ISplitLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISplitLineT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  return (*this)->set_Sketch(Result);
}

template <class T> HRESULT __fastcall
TCOMISplitLineT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Sketch(Result);
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
TCOMISplitLineT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  OLECHECK(this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISplitLineT<T>::get_Faces(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Faces(PVal);
}

template <class T> TVariant __fastcall
TCOMISplitLineT<T>::get_Faces(void)
{
  TVariant PVal;
  OLECHECK(this->get_Faces((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISplitLineT<T>::set_Faces(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Faces(PVal);
}

template <class T> HRESULT __fastcall
TCOMISplitLineT<T>::set_Direction(ksDirectionTypeEnum PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMISplitLineT<T>::get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> ksDirectionTypeEnum __fastcall
TCOMISplitLineT<T>::get_Direction(void)
{
  ksDirectionTypeEnum PVal;
  OLECHECK(this->get_Direction((ksDirectionTypeEnum*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISplitLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {969B49D1-E660-4E94-9343-DE5B0F397B03}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISplitLineDispT<T>::set_Sketch(Kompasltapi7_tlb::ISketchPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::ISketch*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Sketch(Kompasltapi7_tlb::ISketchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sketch"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISketch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISketchPtr __fastcall
ISplitLineDispT<T>::get_Sketch(void)
{
  Kompasltapi7_tlb::ISketchPtr Result;
  this->get_Sketch((Kompasltapi7_tlb::ISketchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Faces(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Faces"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISplitLineDispT<T>::get_Faces(void)
{
  TVariant PVal;
  this->get_Faces((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::set_Faces(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Faces"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::set_Direction(ksDirectionTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Direction(ksDirectionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDirectionTypeEnum __fastcall
ISplitLineDispT<T>::get_Direction(void)
{
  ksDirectionTypeEnum PVal;
  this->get_Direction((ksDirectionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISplitLineDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISplitLineDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISplitLineDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISplitLineDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISplitLineDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISplitLineDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISplitLineDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISplitLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISplitLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISplitLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISplitLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISplitLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISurfacesIntersectionCurves
// Interface: ISurfacesIntersectionCurves
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurvesT<T>::get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/, 
                                                                   Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/)
{
  return (*this)->get_SurfacesIntersectionCurve(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall
TCOMISurfacesIntersectionCurvesT<T>::get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr Result;
  OLECHECK(this->get_SurfacesIntersectionCurve(Index, (Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurvesT<T>::Add(Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall
TCOMISurfacesIntersectionCurvesT<T>::Add(void)
{
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISurfacesIntersectionCurves
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {453E0E34-4D2D-47B2-8E95-EB05C731961D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/, 
                                                                   Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfacesIntersectionCurve"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfacesIntersectionCurve**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_SurfacesIntersectionCurve(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr Result;
  this->get_SurfacesIntersectionCurve(Index, (Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::Add(Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfacesIntersectionCurve**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr __fastcall
ISurfacesIntersectionCurvesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr Result;
  this->Add((Kompasltapi7_tlb::ISurfacesIntersectionCurvePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISurfacesIntersectionCurvesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacesIntersectionCurvesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISurfacesIntersectionCurve
// Interface: ISurfacesIntersectionCurve
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                               TVariantInParam ObjectsArray2/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetObjects(ObjectsArray1, ObjectsArray2, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISurfacesIntersectionCurveT<T>::SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                               TVariantInParam ObjectsArray2/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetObjects(ObjectsArray1, ObjectsArray2, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                               TVariant* ObjectsArray2/*[out]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetObjects(ObjectsArray1, ObjectsArray2, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISurfacesIntersectionCurveT<T>::GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                               TVariant* ObjectsArray2/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetObjects(ObjectsArray1, ObjectsArray2, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::AddObjects(TOLEBOOL ForArray1/*[in]*/, 
                                               TVariantInParam Objects/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddObjects(ForArray1, Objects, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISurfacesIntersectionCurveT<T>::AddObjects(TOLEBOOL ForArray1/*[in]*/, 
                                               TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddObjects(ForArray1, Objects, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::Clear(TOLEBOOL ForArray1/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(ForArray1, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISurfacesIntersectionCurveT<T>::Clear(TOLEBOOL ForArray1/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear(ForArray1, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/, 
                                                     long* Count/*[out,retval]*/)
{
  return (*this)->get_ObjectsCount(ForArray1, Count);
}

template <class T> long __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/)
{
  long Count;
  OLECHECK(this->get_ObjectsCount(ForArray1, (long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::GetObject(TOLEBOOL ForArray1/*[in]*/, long Index/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/)
{
  return (*this)->GetObject(ForArray1, Index, Object);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMISurfacesIntersectionCurveT<T>::GetObject(TOLEBOOL ForArray1/*[in]*/, long Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Object;
  OLECHECK(this->GetObject(ForArray1, Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Object));
  return Object;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_AutoCheck(TOLEBOOL* CheckValue/*[out,retval]*/)
{
  return (*this)->get_AutoCheck(CheckValue);
}

template <class T> TOLEBOOL __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_AutoCheck(void)
{
  TOLEBOOL CheckValue;
  OLECHECK(this->get_AutoCheck((TOLEBOOL*)&CheckValue));
  return CheckValue;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::set_AutoCheck(TOLEBOOL CheckValue/*[in]*/)
{
  return (*this)->set_AutoCheck(CheckValue);
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_EdgesChecks(TVariant* Checks/*[out,retval]*/)
{
  return (*this)->get_EdgesChecks(Checks);
}

template <class T> TVariant __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_EdgesChecks(void)
{
  TVariant Checks;
  OLECHECK(this->get_EdgesChecks((TVariant*)&Checks));
  return Checks;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::set_EdgesChecks(TVariantInParam Checks/*[in]*/)
{
  return (*this)->set_EdgesChecks(Checks);
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_EdgesArraysCount(long* Count/*[out,retval]*/)
{
  return (*this)->get_EdgesArraysCount(Count);
}

template <class T> long __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_EdgesArraysCount(void)
{
  long Count;
  OLECHECK(this->get_EdgesArraysCount((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_Edges(long Index/*[in]*/, TVariant* Edges/*[out,retval]*/)
{
  return (*this)->get_Edges(Index, Edges);
}

template <class T> TVariant __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_Edges(long Index/*[in]*/)
{
  TVariant Edges;
  OLECHECK(this->get_Edges(Index, (TVariant*)&Edges));
  return Edges;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                                   TOLEBOOL* CheckValue/*[out,retval]*/)
{
  return (*this)->get_EdgesCheck(EdgesArrayIndex, CheckValue);
}

template <class T> TOLEBOOL __fastcall
TCOMISurfacesIntersectionCurveT<T>::get_EdgesCheck(long EdgesArrayIndex/*[in]*/)
{
  TOLEBOOL CheckValue;
  OLECHECK(this->get_EdgesCheck(EdgesArrayIndex, (TOLEBOOL*)&CheckValue));
  return CheckValue;
}

template <class T> HRESULT __fastcall
TCOMISurfacesIntersectionCurveT<T>::set_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                                   TOLEBOOL CheckValue/*[in]*/)
{
  return (*this)->set_EdgesCheck(EdgesArrayIndex, CheckValue);
}

// *********************************************************************//
// DispIntf:  ISurfacesIntersectionCurve
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {758420A0-BECB-4FDA-BDDE-1F398B41117C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                               TVariantInParam ObjectsArray2/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetObjects"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = ObjectsArray1 /*[VT_VARIANT:0]*/;
  _args[2] = ObjectsArray2 /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::SetObjects(TVariantInParam ObjectsArray1/*[in]*/, 
                                               TVariantInParam ObjectsArray2/*[in]*/)
{
  TOLEBOOL Result;
  this->SetObjects(ObjectsArray1, ObjectsArray2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                               TVariant* ObjectsArray2/*[out]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetObjects"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = ObjectsArray1 /*[VT_VARIANT:1]*/;
  _args[2] = ObjectsArray2 /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::GetObjects(TVariant* ObjectsArray1/*[out]*/, 
                                               TVariant* ObjectsArray2/*[out]*/)
{
  TOLEBOOL Result;
  this->GetObjects(ObjectsArray1, ObjectsArray2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::AddObjects(TOLEBOOL ForArray1/*[in]*/, 
                                               TVariantInParam Objects/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddObjects"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = ForArray1 /*[VT_BOOL:0]*/;
  _args[2] = Objects /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::AddObjects(TOLEBOOL ForArray1/*[in]*/, 
                                               TVariantInParam Objects/*[in]*/)
{
  TOLEBOOL Result;
  this->AddObjects(ForArray1, Objects, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::Clear(TOLEBOOL ForArray1/*[in]*/, 
                                          TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = ForArray1 /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::Clear(TOLEBOOL ForArray1/*[in]*/)
{
  TOLEBOOL Result;
  this->Clear(ForArray1, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/, 
                                                     long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectsCount"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = ForArray1 /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacesIntersectionCurveDispT<T>::get_ObjectsCount(TOLEBOOL ForArray1/*[in]*/)
{
  long Count;
  this->get_ObjectsCount(ForArray1, (long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::GetObject(TOLEBOOL ForArray1/*[in]*/, long Index/*[in]*/, 
                                              Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetObject"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = ForArray1 /*[VT_BOOL:0]*/;
  _args[2] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISurfacesIntersectionCurveDispT<T>::GetObject(TOLEBOOL ForArray1/*[in]*/, long Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Object;
  this->GetObject(ForArray1, Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Object);
  return Object;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_AutoCheck(TOLEBOOL* CheckValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoCheck"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(CheckValue /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::get_AutoCheck(void)
{
  TOLEBOOL CheckValue;
  this->get_AutoCheck((TOLEBOOL*)&CheckValue);
  return CheckValue;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::set_AutoCheck(TOLEBOOL CheckValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoCheck"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = CheckValue /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_EdgesChecks(TVariant* Checks/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EdgesChecks"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Checks /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISurfacesIntersectionCurveDispT<T>::get_EdgesChecks(void)
{
  TVariant Checks;
  this->get_EdgesChecks((TVariant*)&Checks);
  return Checks;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::set_EdgesChecks(TVariantInParam Checks/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EdgesChecks"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Checks /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_EdgesArraysCount(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EdgesArraysCount"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacesIntersectionCurveDispT<T>::get_EdgesArraysCount(void)
{
  long Count;
  this->get_EdgesArraysCount((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Edges(long Index/*[in]*/, TVariant* Edges/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edges"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Edges /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Edges(long Index/*[in]*/)
{
  TVariant Edges;
  this->get_Edges(Index, (TVariant*)&Edges);
  return Edges;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                                   TOLEBOOL* CheckValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EdgesCheck"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = EdgesArrayIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(CheckValue /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::get_EdgesCheck(long EdgesArrayIndex/*[in]*/)
{
  TOLEBOOL CheckValue;
  this->get_EdgesCheck(EdgesArrayIndex, (TOLEBOOL*)&CheckValue);
  return CheckValue;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::set_EdgesCheck(long EdgesArrayIndex/*[in]*/, 
                                                   TOLEBOOL CheckValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EdgesCheck"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = EdgesArrayIndex /*[VT_I4:0]*/;
  _args[2] = CheckValue /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISurfacesIntersectionCurveDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacesIntersectionCurveDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEquidistants3D
// Interface: IEquidistants3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEquidistants3DT<T>::get_Equidistant3D(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Equidistant3D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IEquidistant3DPtr __fastcall
TCOMIEquidistants3DT<T>::get_Equidistant3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEquidistant3DPtr Result;
  OLECHECK(this->get_Equidistant3D(Index, (Kompasltapi7_tlb::IEquidistant3DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEquidistants3DT<T>::Add(Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IEquidistant3DPtr __fastcall
TCOMIEquidistants3DT<T>::Add(void)
{
  Kompasltapi7_tlb::IEquidistant3DPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IEquidistant3DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IEquidistants3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8B94F332-EEFD-4610-9C55-20A1F7336122}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get_Equidistant3D(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Equidistant3D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEquidistant3D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEquidistant3DPtr __fastcall
IEquidistants3DDispT<T>::get_Equidistant3D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEquidistant3DPtr Result;
  this->get_Equidistant3D(Index, (Kompasltapi7_tlb::IEquidistant3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::Add(Kompasltapi7_tlb::IEquidistant3DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEquidistant3D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEquidistant3DPtr __fastcall
IEquidistants3DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IEquidistant3DPtr Result;
  this->Add((Kompasltapi7_tlb::IEquidistant3DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IEquidistants3DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IEquidistants3DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistants3DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEquidistants3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEquidistants3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEquidistants3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistants3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistants3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEquidistant3D
// Interface: IEquidistant3D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_Edges(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Edges(PVal);
}

template <class T> TVariant __fastcall
TCOMIEquidistant3DT<T>::get_Edges(void)
{
  TVariant PVal;
  OLECHECK(this->get_Edges((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_Edges(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Edges(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_OnFace(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_OnFace(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_OnFace(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_OnFace(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIEquidistant3DT<T>::get_OnFace(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_OnFace((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMIEquidistant3DT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_BaseObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  return (*this)->set_BaseObject(Result);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIEquidistant3DT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_Distance(double PVal/*[in]*/)
{
  return (*this)->set_Distance(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_Distance(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Distance(PVal);
}

template <class T> double __fastcall
TCOMIEquidistant3DT<T>::get_Distance(void)
{
  double PVal;
  OLECHECK(this->get_Distance((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_CutMode(ksEquidistant3DCutModeEnum PVal/*[in]*/)
{
  return (*this)->set_CutMode(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_CutMode(ksEquidistant3DCutModeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_CutMode(PVal);
}

template <class T> ksEquidistant3DCutModeEnum __fastcall
TCOMIEquidistant3DT<T>::get_CutMode(void)
{
  ksEquidistant3DCutModeEnum PVal;
  OLECHECK(this->get_CutMode((ksEquidistant3DCutModeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_KeepRadius(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_KeepRadius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_KeepRadius(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_KeepRadius(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIEquidistant3DT<T>::get_KeepRadius(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_KeepRadius((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::set_DirFromBegin(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DirFromBegin(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistant3DT<T>::get_DirFromBegin(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DirFromBegin(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIEquidistant3DT<T>::get_DirFromBegin(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DirFromBegin((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IEquidistant3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C25DDBF4-3CC1-467D-B996-E30ED4D529B6}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Edges(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edges"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IEquidistant3DDispT<T>::get_Edges(void)
{
  TVariant PVal;
  this->get_Edges((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_Edges(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edges"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_OnFace(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OnFace"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_OnFace(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OnFace"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistant3DDispT<T>::get_OnFace(void)
{
  TOLEBOOL PVal;
  this->get_OnFace((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_BaseObject(Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IEquidistant3DDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_BaseObject((Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_BaseObject(Kompasltapi7_tlb::IModelObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEquidistant3DDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_Distance(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Distance"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Distance(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Distance"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEquidistant3DDispT<T>::get_Distance(void)
{
  double PVal;
  this->get_Distance((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_CutMode(ksEquidistant3DCutModeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutMode"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_CutMode(ksEquidistant3DCutModeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutMode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksEquidistant3DCutModeEnum __fastcall
IEquidistant3DDispT<T>::get_CutMode(void)
{
  ksEquidistant3DCutModeEnum PVal;
  this->get_CutMode((ksEquidistant3DCutModeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_KeepRadius(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("KeepRadius"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_KeepRadius(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("KeepRadius"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistant3DDispT<T>::get_KeepRadius(void)
{
  TOLEBOOL PVal;
  this->get_KeepRadius((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_DirFromBegin(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DirFromBegin"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_DirFromBegin(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DirFromBegin"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistant3DDispT<T>::get_DirFromBegin(void)
{
  TOLEBOOL PVal;
  this->get_DirFromBegin((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IEquidistant3DDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistant3DDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistant3DDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistant3DDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IEquidistant3DDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IEquidistant3DDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IEquidistant3DDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEquidistant3DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEquidistant3DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEquidistant3DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistant3DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistant3DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILocalCSAxesDirectionParam
// Interface: ILocalCSAxesDirectionParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILocalCSAxesDirectionParamT<T>::SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                       Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                       TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetDirectingObject(Axis, Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCSAxesDirectionParamT<T>::SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                       Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetDirectingObject(Axis, Object, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCSAxesDirectionParamT<T>::get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                        Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DirectingObject(Axis, Result);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMILocalCSAxesDirectionParamT<T>::get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  OLECHECK(this->get_DirectingObject(Axis, (Kompasltapi7_tlb::IModelObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCSAxesDirectionParamT<T>::RotateAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->RotateAxis(Axis, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCSAxesDirectionParamT<T>::RotateAxis(ksObj3dTypeEnum Axis/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->RotateAxis(Axis, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCSAxesDirectionParamT<T>::set_AngleByOwnAxis(ksObj3dTypeEnum Axis/*[in]*/, 
                                                       double Param2/*[in]*/)
{
  return (*this)->set_AngleByOwnAxis(Axis, Param2);
}

// *********************************************************************//
// DispIntf:  ILocalCSAxesDirectionParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {919DF6DB-0BA9-4EDD-B681-33E0B519834B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/
                                                       , 
                                                       Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/
                                                       , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetDirectingObject"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = (int)Axis /*[VT_USERDEFINED:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCSAxesDirectionParamDispT<T>::SetDirectingObject(ksObj3dTypeEnum Axis/*[in]*/, 
                                                       Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->SetDirectingObject(Axis, Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/
                                                        , 
                                                        Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DirectingObject"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)Axis /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_DirectingObject(ksObj3dTypeEnum Axis/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_DirectingObject(Axis, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::RotateAxis(ksObj3dTypeEnum Axis/*[in]*/
                                               , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RotateAxis"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (int)Axis /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCSAxesDirectionParamDispT<T>::RotateAxis(ksObj3dTypeEnum Axis/*[in]*/)
{
  TOLEBOOL Result;
  this->RotateAxis(Axis, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::set_AngleByOwnAxis(ksObj3dTypeEnum Axis/*[in]*/
                                                       , double Param2/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleByOwnAxis"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = (int)Axis /*[VT_USERDEFINED:0]*/;
  _args[2] = Param2 /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILocalCSAxesDirectionParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILocalCSEulerParam
// Interface: ILocalCSEulerParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILocalCSEulerParamT<T>::set_NutationAngle(double Result/*[in]*/)
{
  return (*this)->set_NutationAngle(Result);
}

template <class T> HRESULT __fastcall
TCOMILocalCSEulerParamT<T>::get_NutationAngle(double* Result/*[out,retval]*/)
{
  return (*this)->get_NutationAngle(Result);
}

template <class T> double __fastcall
TCOMILocalCSEulerParamT<T>::get_NutationAngle(void)
{
  double Result;
  OLECHECK(this->get_NutationAngle((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCSEulerParamT<T>::set_PrecessionAngle(double Result/*[in]*/)
{
  return (*this)->set_PrecessionAngle(Result);
}

template <class T> HRESULT __fastcall
TCOMILocalCSEulerParamT<T>::get_PrecessionAngle(double* Result/*[out,retval]*/)
{
  return (*this)->get_PrecessionAngle(Result);
}

template <class T> double __fastcall
TCOMILocalCSEulerParamT<T>::get_PrecessionAngle(void)
{
  double Result;
  OLECHECK(this->get_PrecessionAngle((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCSEulerParamT<T>::set_RotationAngle(double Result/*[in]*/)
{
  return (*this)->set_RotationAngle(Result);
}

template <class T> HRESULT __fastcall
TCOMILocalCSEulerParamT<T>::get_RotationAngle(double* Result/*[out,retval]*/)
{
  return (*this)->get_RotationAngle(Result);
}

template <class T> double __fastcall
TCOMILocalCSEulerParamT<T>::get_RotationAngle(void)
{
  double Result;
  OLECHECK(this->get_RotationAngle((double*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILocalCSEulerParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AD261149-1455-49BD-BA0A-B1760A0C8CB0}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::set_NutationAngle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NutationAngle"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::get_NutationAngle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NutationAngle"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILocalCSEulerParamDispT<T>::get_NutationAngle(void)
{
  double Result;
  this->get_NutationAngle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::set_PrecessionAngle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PrecessionAngle"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::get_PrecessionAngle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PrecessionAngle"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILocalCSEulerParamDispT<T>::get_PrecessionAngle(void)
{
  double Result;
  this->get_PrecessionAngle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::set_RotationAngle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RotationAngle"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::get_RotationAngle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RotationAngle"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILocalCSEulerParamDispT<T>::get_RotationAngle(void)
{
  double Result;
  this->get_RotationAngle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILocalCSEulerParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILocalCSEulerParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILocalCSEulerParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILocalCSEulerParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILocalCSEulerParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IRoughParams
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6C1943CE-8FDB-47D2-9B2F-95F7B851BE3D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_SignType(ksRoughSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksRoughSignEnum __fastcall
IRoughParamsDispT<T>::get_SignType(void)
{
  ksRoughSignEnum Result;
  this->get_SignType((ksRoughSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::set_SignType(ksRoughSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_RoughParamText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RoughParamText"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IRoughParamsDispT<T>::get_RoughParamText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_RoughParamText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_ProcessText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProcessText"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IRoughParamsDispT<T>::get_ProcessText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_ProcessText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_BaseLengthText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseLengthText"), DISPID(1504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IRoughParamsDispT<T>::get_BaseLengthText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_BaseLengthText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_TrendText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TrendText"), DISPID(1505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IRoughParamsDispT<T>::get_TrendText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TrendText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_ProcessingByContour(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProcessingByContour"), DISPID(1506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRoughParamsDispT<T>::get_ProcessingByContour(void)
{
  TOLEBOOL Result;
  this->get_ProcessingByContour((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::set_ProcessingByContour(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ProcessingByContour"), DISPID(1506));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(1507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IRoughParamsDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(1507));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_LeaderLength(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeaderLength"), DISPID(1508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRoughParamsDispT<T>::get_LeaderLength(void)
{
  double Result;
  this->get_LeaderLength((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::set_LeaderLength(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeaderLength"), DISPID(1508));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_LeaderAngle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeaderAngle"), DISPID(1509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRoughParamsDispT<T>::get_LeaderAngle(void)
{
  double Result;
  this->get_LeaderAngle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::set_LeaderAngle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeaderAngle"), DISPID(1509));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_ArrowType(ksArrowEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksArrowEnum __fastcall
IRoughParamsDispT<T>::get_ArrowType(void)
{
  ksArrowEnum Result;
  this->get_ArrowType((ksArrowEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::set_ArrowType(ksArrowEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1510));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::get_ArrowInside(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowInside"), DISPID(1511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRoughParamsDispT<T>::get_ArrowInside(void)
{
  TOLEBOOL Result;
  this->get_ArrowInside((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughParamsDispT<T>::set_ArrowInside(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowInside"), DISPID(1511));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IBranchs3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AFE08AEC-F751-42D9-A6F5-3C004E4D41A6}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::get_BranchCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchCount"), DISPID(5001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBranchs3DDispT<T>::get_BranchCount(void)
{
  long Result;
  this->get_BranchCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBranchBeginPoint"), DISPID(5002));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchs3DDispT<T>::GetBranchBeginPoint(double* X/*[out]*/, double* Y/*[out]*/, double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBranchBeginPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetBranchBeginPoint"), DISPID(5003));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchs3DDispT<T>::SetBranchBeginPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetBranchBeginPoint(X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::GetBranchEndPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      double* Z/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBranchEndPoint"), DISPID(5004));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:1]*/;
  _args[3] = Y /*[VT_R8:1]*/;
  _args[4] = Z /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchs3DDispT<T>::GetBranchEndPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                                      double* Z/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBranchEndPoint(Index, X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::SetBranchEndPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      double Z/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetBranchEndPoint"), DISPID(5005));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  _args[4] = Z /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchs3DDispT<T>::SetBranchEndPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                      double Z/*[in]*/)
{
  TOLEBOOL Result;
  this->SetBranchEndPoint(Index, X, Y, Z, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(5006));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(5006));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IBranchs3DDispT<T>::get_BranchPoints(long Index/*[in]*/)
{
  TVariant PVal;
  this->get_BranchPoints(Index, (TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPointsCount"), DISPID(5007));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBranchs3DDispT<T>::get_BranchPointsCount(long Index/*[in]*/)
{
  long Result;
  this->get_BranchPointsCount(Index, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::AddBranch(TVariantInParam Points/*[in]*/, 
                              Kompasltapi7_tlb::IModelObjectPtr Object, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranch"), DISPID(5008));
  TAutoArgs<2> _args;
  _args[1] = Points /*[VT_VARIANT:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchs3DDispT<T>::AddBranch(TVariantInParam Points/*[in]*/, 
                              Kompasltapi7_tlb::IModelObjectPtr Object)
{
  TOLEBOOL Result;
  this->AddBranch(Points, Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::AddBranchByPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr Object, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranchByPoint"), DISPID(5009));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Z /*[VT_R8:0]*/;
  _args[4] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchs3DDispT<T>::AddBranchByPoint(double X/*[in]*/, double Y/*[in]*/, double Z/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr Object)
{
  TOLEBOOL Result;
  this->AddBranchByPoint(X, Y, Z, Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteBranch"), DISPID(5010));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchs3DDispT<T>::DeleteBranch(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteBranch(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::get_BranchObject(long Index/*[in]*/, 
                                     Kompasltapi7_tlb::IModelObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchObject"), DISPID(5011));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IBranchs3DDispT<T>::get_BranchObject(long Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr PVal;
  this->get_BranchObject(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::get_BranchObjects(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchObjects"), DISPID(5012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IBranchs3DDispT<T>::get_BranchObjects(void)
{
  TVariant PVal;
  this->get_BranchObjects((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBranchs3DDispT<T>::get_BranchEndPoints(TVariant* Points/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchEndPoints"), DISPID(5013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Points /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IBranchs3DDispT<T>::get_BranchEndPoints(void)
{
  TVariant Points;
  this->get_BranchEndPoints((TVariant*)&Points);
  return Points;
}

// *********************************************************************//
// SmartIntf: TCOMILocalCSOrientByObjectParam
// Interface: ILocalCSOrientByObjectParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILocalCSOrientByObjectParamT<T>::SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/, 
                                                          TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetOrientationObject(Object, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMILocalCSOrientByObjectParamT<T>::SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetOrientationObject(Object, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILocalCSOrientByObjectParamT<T>::get_OrientationObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/)
{
  return (*this)->get_OrientationObject(Object);
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
TCOMILocalCSOrientByObjectParamT<T>::get_OrientationObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object;
  OLECHECK(this->get_OrientationObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object));
  return Object;
}

// *********************************************************************//
// DispIntf:  ILocalCSOrientByObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {618485E7-D88A-4DCC-8896-7EA04D831DBB}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILocalCSOrientByObjectParamDispT<T>::SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/
                                                          , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetOrientationObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Object /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILocalCSOrientByObjectParamDispT<T>::SetOrientationObject(Kompasltapi7_tlb::IModelObjectPtr Object/*[in]*/)
{
  TOLEBOOL Result;
  this->SetOrientationObject(Object, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_OrientationObject(Kompasltapi7_tlb::IModelObjectPtr* Object/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OrientationObject"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Object /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_OrientationObject(void)
{
  Kompasltapi7_tlb::IModelObjectPtr Object;
  this->get_OrientationObject((Kompasltapi7_tlb::IModelObjectPtr*)&Object);
  return Object;
}

template <class T> HRESULT __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILocalCSOrientByObjectParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILocalCSObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {116F7E59-F175-47D2-8346-EB3C87D60578}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILocalCSObjectDispT<T>::set_ModelObjectParamType(ksModelObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectParamType"), DISPID(901));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILocalCSObjectDispT<T>::get_ModelObjectParamType(ksModelObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectParamType"), DISPID(901));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksModelObjectParamTypeEnum __fastcall
ILocalCSObjectDispT<T>::get_ModelObjectParamType(void)
{
  ksModelObjectParamTypeEnum PVal;
  this->get_ModelObjectParamType((ksModelObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILocalCSObjectDispT<T>::get_LocalCoordinateSystem(Kompasltapi7_tlb::ILocalCoordinateSystemPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LocalCoordinateSystem"), DISPID(902));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILocalCoordinateSystem**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILocalCoordinateSystemPtr __fastcall
ILocalCSObjectDispT<T>::get_LocalCoordinateSystem(void)
{
  Kompasltapi7_tlb::ILocalCoordinateSystemPtr PVal;
  this->get_LocalCoordinateSystem((Kompasltapi7_tlb::ILocalCoordinateSystemPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISurfaceContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2FE3B199-A6B2-4644-9950-F9905250FF0D}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISurfaceContainerDispT<T>::get_SurfacePatches(Kompasltapi7_tlb::ISurfacePatchesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfacePatches"), DISPID(15001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfacePatches**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfacePatchesPtr __fastcall
ISurfaceContainerDispT<T>::get_SurfacePatches(void)
{
  Kompasltapi7_tlb::ISurfacePatchesPtr PVal;
  this->get_SurfacePatches((Kompasltapi7_tlb::ISurfacePatchesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceContainerDispT<T>::get_FaceRemovers(Kompasltapi7_tlb::IFaceRemoversPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FaceRemovers"), DISPID(15002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFaceRemovers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFaceRemoversPtr __fastcall
ISurfaceContainerDispT<T>::get_FaceRemovers(void)
{
  Kompasltapi7_tlb::IFaceRemoversPtr PVal;
  this->get_FaceRemovers((Kompasltapi7_tlb::IFaceRemoversPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceContainerDispT<T>::get_SurfaceSewers(Kompasltapi7_tlb::ISurfaceSewersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfaceSewers"), DISPID(15003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfaceSewers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfaceSewersPtr __fastcall
ISurfaceContainerDispT<T>::get_SurfaceSewers(void)
{
  Kompasltapi7_tlb::ISurfaceSewersPtr PVal;
  this->get_SurfaceSewers((Kompasltapi7_tlb::ISurfaceSewersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceContainerDispT<T>::get_NurbsSurfaces(Kompasltapi7_tlb::INurbsSurfacesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NurbsSurfaces"), DISPID(15004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::INurbsSurfaces**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::INurbsSurfacesPtr __fastcall
ISurfaceContainerDispT<T>::get_NurbsSurfaces(void)
{
  Kompasltapi7_tlb::INurbsSurfacesPtr PVal;
  this->get_NurbsSurfaces((Kompasltapi7_tlb::INurbsSurfacesPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISurfacePatches
// Interface: ISurfacePatches
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISurfacePatchesT<T>::get_SurfacePatch(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/)
{
  return (*this)->get_SurfacePatch(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISurfacePatchPtr __fastcall
TCOMISurfacePatchesT<T>::get_SurfacePatch(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISurfacePatchPtr Result;
  OLECHECK(this->get_SurfacePatch(Index, (Kompasltapi7_tlb::ISurfacePatchPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfacePatchesT<T>::Add(Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISurfacePatchPtr __fastcall
TCOMISurfacePatchesT<T>::Add(void)
{
  Kompasltapi7_tlb::ISurfacePatchPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISurfacePatchPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISurfacePatches
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DEE5B135-4D8E-4AD8-AEA4-E763F68290B2}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get_SurfacePatch(TVariantInParam Index/*[in]*/, 
                                          Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfacePatch"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfacePatch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfacePatchPtr __fastcall
ISurfacePatchesDispT<T>::get_SurfacePatch(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISurfacePatchPtr Result;
  this->get_SurfacePatch(Index, (Kompasltapi7_tlb::ISurfacePatchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::Add(Kompasltapi7_tlb::ISurfacePatchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfacePatch**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfacePatchPtr __fastcall
ISurfacePatchesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISurfacePatchPtr Result;
  this->Add((Kompasltapi7_tlb::ISurfacePatchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISurfacePatchesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISurfacePatchesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacePatchesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISurfacePatchesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISurfacePatchesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISurfacePatchesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfacePatchesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacePatchesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISurfacePatch
// Interface: ISurfacePatch
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISurfacePatchT<T>::get_Edges(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Edges(PVal);
}

template <class T> TVariant __fastcall
TCOMISurfacePatchT<T>::get_Edges(void)
{
  TVariant PVal;
  OLECHECK(this->get_Edges((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISurfacePatchT<T>::set_Edges(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Edges(PVal);
}

// *********************************************************************//
// DispIntf:  ISurfacePatch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B6330040-7ABA-4ECD-8C92-5B441AF11C3B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Edges(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edges"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISurfacePatchDispT<T>::get_Edges(void)
{
  TVariant PVal;
  this->get_Edges((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::set_Edges(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Edges"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISurfacePatchDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacePatchDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacePatchDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfacePatchDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISurfacePatchDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISurfacePatchDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISurfacePatchDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISurfacePatchDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISurfacePatchDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISurfacePatchDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfacePatchDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfacePatchDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIFaceRemovers
// Interface: IFaceRemovers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIFaceRemoversT<T>::get_FaceRemover(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/)
{
  return (*this)->get_FaceRemover(Index, Result);
}

template <class T> Kompasltapi7_tlb::IFaceRemoverPtr __fastcall
TCOMIFaceRemoversT<T>::get_FaceRemover(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IFaceRemoverPtr Result;
  OLECHECK(this->get_FaceRemover(Index, (Kompasltapi7_tlb::IFaceRemoverPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIFaceRemoversT<T>::Add(Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IFaceRemoverPtr __fastcall
TCOMIFaceRemoversT<T>::Add(void)
{
  Kompasltapi7_tlb::IFaceRemoverPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IFaceRemoverPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IFaceRemovers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6E177627-05D6-40B4-B955-9203F00656B5}
// *********************************************************************//
template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get_FaceRemover(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FaceRemover"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFaceRemover**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFaceRemoverPtr __fastcall
IFaceRemoversDispT<T>::get_FaceRemover(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IFaceRemoverPtr Result;
  this->get_FaceRemover(Index, (Kompasltapi7_tlb::IFaceRemoverPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::Add(Kompasltapi7_tlb::IFaceRemoverPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFaceRemover**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFaceRemoverPtr __fastcall
IFaceRemoversDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IFaceRemoverPtr Result;
  this->Add((Kompasltapi7_tlb::IFaceRemoverPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
IFaceRemoversDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IFaceRemoversDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IFaceRemoversDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IFaceRemoversDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IFaceRemoversDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IFaceRemoversDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IFaceRemoversDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IFaceRemoversDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIFaceRemover
// Interface: IFaceRemover
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIFaceRemoverT<T>::get_Faces(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Faces(PVal);
}

template <class T> TVariant __fastcall
TCOMIFaceRemoverT<T>::get_Faces(void)
{
  TVariant PVal;
  OLECHECK(this->get_Faces((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIFaceRemoverT<T>::set_Faces(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Faces(PVal);
}

// *********************************************************************//
// DispIntf:  IFaceRemover
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4CAE21E3-4183-47A6-94B8-8AD14D5775EE}
// *********************************************************************//
template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Faces(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Faces"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IFaceRemoverDispT<T>::get_Faces(void)
{
  TVariant PVal;
  this->get_Faces((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::set_Faces(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Faces"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IFaceRemoverDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFaceRemoverDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFaceRemoverDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IFaceRemoverDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
IFaceRemoverDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
IFaceRemoverDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
IFaceRemoverDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IFaceRemoverDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IFaceRemoverDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IFaceRemoverDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IFaceRemoverDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IFaceRemoverDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISurfaceSewers
// Interface: ISurfaceSewers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISurfaceSewersT<T>::get_SurfaceSewer(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/)
{
  return (*this)->get_SurfaceSewer(Index, Result);
}

template <class T> Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall
TCOMISurfaceSewersT<T>::get_SurfaceSewer(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISurfaceSewerPtr Result;
  OLECHECK(this->get_SurfaceSewer(Index, (Kompasltapi7_tlb::ISurfaceSewerPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfaceSewersT<T>::Add(Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall
TCOMISurfaceSewersT<T>::Add(void)
{
  Kompasltapi7_tlb::ISurfaceSewerPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ISurfaceSewerPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ISurfaceSewers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {70AE0BA0-2059-4EAB-BE41-A6E8C8ACFA8A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get_SurfaceSewer(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SurfaceSewer"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfaceSewer**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall
ISurfaceSewersDispT<T>::get_SurfaceSewer(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ISurfaceSewerPtr Result;
  this->get_SurfaceSewer(Index, (Kompasltapi7_tlb::ISurfaceSewerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::Add(Kompasltapi7_tlb::ISurfaceSewerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ISurfaceSewer**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ISurfaceSewerPtr __fastcall
ISurfaceSewersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ISurfaceSewerPtr Result;
  this->Add((Kompasltapi7_tlb::ISurfaceSewerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
ISurfaceSewersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISurfaceSewersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfaceSewersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISurfaceSewersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISurfaceSewersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISurfaceSewersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfaceSewersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfaceSewersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMISurfaceSewer
// Interface: ISurfaceSewer
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMISurfaceSewerT<T>::get_Shells(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Shells(PVal);
}

template <class T> TVariant __fastcall
TCOMISurfaceSewerT<T>::get_Shells(void)
{
  TVariant PVal;
  OLECHECK(this->get_Shells((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMISurfaceSewerT<T>::set_Shells(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Shells(PVal);
}

template <class T> HRESULT __fastcall
TCOMISurfaceSewerT<T>::get_Precision(double* Result/*[out,retval]*/)
{
  return (*this)->get_Precision(Result);
}

template <class T> double __fastcall
TCOMISurfaceSewerT<T>::get_Precision(void)
{
  double Result;
  OLECHECK(this->get_Precision((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfaceSewerT<T>::set_Precision(double Result/*[in]*/)
{
  return (*this)->set_Precision(Result);
}

template <class T> HRESULT __fastcall
TCOMISurfaceSewerT<T>::get_CreateBody(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_CreateBody(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMISurfaceSewerT<T>::get_CreateBody(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_CreateBody((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMISurfaceSewerT<T>::set_CreateBody(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_CreateBody(Result);
}

// *********************************************************************//
// DispIntf:  ISurfaceSewer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {031FD1C7-9CB6-4E49-A27D-73B8D0B648D4}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Shells(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Shells"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISurfaceSewerDispT<T>::get_Shells(void)
{
  TVariant PVal;
  this->get_Shells((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::set_Shells(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Shells"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Precision(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Precision"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ISurfaceSewerDispT<T>::get_Precision(void)
{
  double Result;
  this->get_Precision((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::set_Precision(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Precision"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_CreateBody(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateBody"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfaceSewerDispT<T>::get_CreateBody(void)
{
  TOLEBOOL Result;
  this->get_CreateBody((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::set_CreateBody(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateBody"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISurfaceSewerDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfaceSewerDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfaceSewerDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISurfaceSewerDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
ISurfaceSewerDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
ISurfaceSewerDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
ISurfaceSewerDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ISurfaceSewerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ISurfaceSewerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ISurfaceSewerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ISurfaceSewerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISurfaceSewerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMINurbsSurfaces
// Interface: INurbsSurfaces
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMINurbsSurfacesT<T>::get_NurbsSurface(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/)
{
  return (*this)->get_NurbsSurface(Index, Result);
}

template <class T> Kompasltapi7_tlb::INurbsSurfacePtr __fastcall
TCOMINurbsSurfacesT<T>::get_NurbsSurface(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::INurbsSurfacePtr Result;
  OLECHECK(this->get_NurbsSurface(Index, (Kompasltapi7_tlb::INurbsSurfacePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfacesT<T>::Add(Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::INurbsSurfacePtr __fastcall
TCOMINurbsSurfacesT<T>::Add(void)
{
  Kompasltapi7_tlb::INurbsSurfacePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::INurbsSurfacePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  INurbsSurfaces
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DB184867-6207-4FB7-9B3F-882BEAA16B4D}
// *********************************************************************//
template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get_NurbsSurface(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NurbsSurface"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::INurbsSurface**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::INurbsSurfacePtr __fastcall
INurbsSurfacesDispT<T>::get_NurbsSurface(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::INurbsSurfacePtr Result;
  this->get_NurbsSurface(Index, (Kompasltapi7_tlb::INurbsSurfacePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::Add(Kompasltapi7_tlb::INurbsSurfacePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::INurbsSurface**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::INurbsSurfacePtr __fastcall
INurbsSurfacesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::INurbsSurfacePtr Result;
  this->Add((Kompasltapi7_tlb::INurbsSurfacePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IModelObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IModelObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IModelObjectPtr __fastcall
INurbsSurfacesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IModelObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IModelObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
INurbsSurfacesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsSurfacesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
INurbsSurfacesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
INurbsSurfacesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
INurbsSurfacesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsSurfacesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsSurfacesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMINurbsSurface
// Interface: INurbsSurface
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                      long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                      TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                      TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, 
                                 KnotsV, KnotsU, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                      long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                      TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                      TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, 
                                KnotsV, KnotsU, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long DegreeV/*[in]*/, long DegreeU/*[in]*/, long NPV/*[in]*/, 
                                      long NPU/*[in]*/, TVariantInParam Points/*[in]*/, 
                                      TVariantInParam Weights/*[in]*/, 
                                      TVariantInParam KnotsV/*[in]*/, TVariantInParam KnotsU/*[in]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, 
                                 KnotsV, KnotsU, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long DegreeV/*[in]*/, long DegreeU/*[in]*/, long NPV/*[in]*/, 
                                      long NPU/*[in]*/, TVariantInParam Points/*[in]*/, 
                                      TVariantInParam Weights/*[in]*/, 
                                      TVariantInParam KnotsV/*[in]*/, TVariantInParam KnotsU/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, 
                                KnotsV, KnotsU, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/, 
                                       TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->InitParamByFace(Face, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->InitParamByFace(Face, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::get_ClosedU(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ClosedU(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::get_ClosedU(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ClosedU((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::set_ClosedU(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ClosedU(PVal);
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::get_ClosedV(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ClosedV(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::get_ClosedV(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ClosedV((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::set_ClosedV(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ClosedV(PVal);
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::get_BoundaryCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_BoundaryCount(PVal);
}

template <class T> long __fastcall
TCOMINurbsSurfaceT<T>::get_BoundaryCount(void)
{
  long PVal;
  OLECHECK(this->get_BoundaryCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                   TVariantInParam Points/*[in]*/, TVariantInParam Weights/*[in]*/, 
                                   TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                   double TMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddBoundary(UV, Closed, Degree, Points, Weights, Knots, TMin, TMax, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                   TVariantInParam Points/*[in]*/, TVariantInParam Weights/*[in]*/, 
                                   TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                   double TMax/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddBoundary(UV, Closed, Degree, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                   long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                   TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                   TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                   double* TMax/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetBoundary(UV, Closed, BoundaryIndex, Degree, Points, Weights, Knots, TMin, TMax, 
                              Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                   long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                   TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                   TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                   double* TMax/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetBoundary(UV, Closed, BoundaryIndex, Degree, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsSurfaceT<T>::DeleteBoundary(long BoundaryIndex/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->DeleteBoundary(BoundaryIndex, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsSurfaceT<T>::DeleteBoundary(long BoundaryIndex/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->DeleteBoundary(BoundaryIndex, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  INurbsSurface
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5DAFC690-B3A7-4771-8E98-F83B5BF0D454}
// *********************************************************************//
template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                      long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                      TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                      TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/, 
                                      TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNurbsParams"), DISPID(1));
  TAutoArgs<10> _args;
  _args[1] = ClosedV /*[VT_BOOL:0]*/;
  _args[2] = ClosedU /*[VT_BOOL:0]*/;
  _args[3] = DegreeV /*[VT_I4:1]*/;
  _args[4] = DegreeU /*[VT_I4:1]*/;
  _args[5] = NPV /*[VT_I4:1]*/;
  _args[6] = NPU /*[VT_I4:1]*/;
  _args[7] = Points /*[VT_VARIANT:1]*/;
  _args[8] = Weights /*[VT_VARIANT:1]*/;
  _args[9] = KnotsV /*[VT_VARIANT:1]*/;
  _args[10] = KnotsU /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::GetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long* DegreeV/*[out]*/, long* DegreeU/*[out]*/, 
                                      long* NPV/*[out]*/, long* NPU/*[out]*/, 
                                      TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                      TVariant* KnotsV/*[out]*/, TVariant* KnotsU/*[out]*/)
{
  TOLEBOOL Result;
  this->GetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, KnotsV, KnotsU, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long DegreeV/*[in]*/, long DegreeU/*[in]*/, long NPV/*[in]*/, 
                                      long NPU/*[in]*/, TVariantInParam Points/*[in]*/, 
                                      TVariantInParam Weights/*[in]*/, 
                                      TVariantInParam KnotsV/*[in]*/, TVariantInParam KnotsU/*[in]*/
                                      , TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetNurbsParams"), DISPID(2));
  TAutoArgs<10> _args;
  _args[1] = ClosedV /*[VT_BOOL:0]*/;
  _args[2] = ClosedU /*[VT_BOOL:0]*/;
  _args[3] = DegreeV /*[VT_I4:0]*/;
  _args[4] = DegreeU /*[VT_I4:0]*/;
  _args[5] = NPV /*[VT_I4:0]*/;
  _args[6] = NPU /*[VT_I4:0]*/;
  _args[7] = Points /*[VT_VARIANT:0]*/;
  _args[8] = Weights /*[VT_VARIANT:0]*/;
  _args[9] = KnotsV /*[VT_VARIANT:0]*/;
  _args[10] = KnotsU /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::SetNurbsParams(TOLEBOOL ClosedV/*[in]*/, TOLEBOOL ClosedU/*[in]*/, 
                                      long DegreeV/*[in]*/, long DegreeU/*[in]*/, long NPV/*[in]*/, 
                                      long NPU/*[in]*/, TVariantInParam Points/*[in]*/, 
                                      TVariantInParam Weights/*[in]*/, 
                                      TVariantInParam KnotsV/*[in]*/, TVariantInParam KnotsU/*[in]*/)
{
  TOLEBOOL Result;
  this->SetNurbsParams(ClosedV, ClosedU, DegreeV, DegreeU, NPV, NPU, Points, Weights, KnotsV, KnotsU, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/, 
                                       TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InitParamByFace"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IModelObject*)Face /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::InitParamByFace(Kompasltapi7_tlb::IModelObjectPtr Face/*[in]*/)
{
  TOLEBOOL PVal;
  this->InitParamByFace(Face, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_ClosedU(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClosedU"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::get_ClosedU(void)
{
  TOLEBOOL PVal;
  this->get_ClosedU((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::set_ClosedU(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClosedU"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_ClosedV(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClosedV"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::get_ClosedV(void)
{
  TOLEBOOL PVal;
  this->get_ClosedV((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::set_ClosedV(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClosedV"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_BoundaryCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BoundaryCount"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsSurfaceDispT<T>::get_BoundaryCount(void)
{
  long PVal;
  this->get_BoundaryCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/
                                   , TVariantInParam Points/*[in]*/, TVariantInParam Weights/*[in]*/
                                   , TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                   double TMax/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBoundary"), DISPID(7));
  TAutoArgs<8> _args;
  _args[1] = UV /*[VT_BOOL:0]*/;
  _args[2] = Closed /*[VT_BOOL:0]*/;
  _args[3] = Degree /*[VT_I4:0]*/;
  _args[4] = Points /*[VT_VARIANT:0]*/;
  _args[5] = Weights /*[VT_VARIANT:0]*/;
  _args[6] = Knots /*[VT_VARIANT:0]*/;
  _args[7] = TMin /*[VT_R8:0]*/;
  _args[8] = TMax /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::AddBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, long Degree/*[in]*/, 
                                   TVariantInParam Points/*[in]*/, TVariantInParam Weights/*[in]*/, 
                                   TVariantInParam Knots/*[in]*/, double TMin/*[in]*/, 
                                   double TMax/*[in]*/)
{
  TOLEBOOL Result;
  this->AddBoundary(UV, Closed, Degree, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                   long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                   TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                   TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                   double* TMax/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetBoundary"), DISPID(8));
  TAutoArgs<9> _args;
  _args[1] = UV /*[VT_BOOL:0]*/;
  _args[2] = Closed /*[VT_BOOL:0]*/;
  _args[3] = BoundaryIndex /*[VT_I4:0]*/;
  _args[4] = Degree /*[VT_I4:1]*/;
  _args[5] = Points /*[VT_VARIANT:1]*/;
  _args[6] = Weights /*[VT_VARIANT:1]*/;
  _args[7] = Knots /*[VT_VARIANT:1]*/;
  _args[8] = TMin /*[VT_R8:1]*/;
  _args[9] = TMax /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::GetBoundary(TOLEBOOL UV/*[in]*/, TOLEBOOL Closed/*[in]*/, 
                                   long BoundaryIndex/*[in]*/, long* Degree/*[out]*/, 
                                   TVariant* Points/*[out]*/, TVariant* Weights/*[out]*/, 
                                   TVariant* Knots/*[out]*/, double* TMin/*[out]*/, 
                                   double* TMax/*[out]*/)
{
  TOLEBOOL Result;
  this->GetBoundary(UV, Closed, BoundaryIndex, Degree, Points, Weights, Knots, TMin, TMax, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::DeleteBoundary(long BoundaryIndex/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteBoundary"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = BoundaryIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::DeleteBoundary(long BoundaryIndex/*[in]*/)
{
  TOLEBOOL PVal;
  this->DeleteBoundary(BoundaryIndex, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
INurbsSurfaceDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::set_Name(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::set_Hidden(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Hidden(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hidden"), DISPID(502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::get_Hidden(void)
{
  TOLEBOOL PVal;
  this->get_Hidden((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::_Update(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::_Update(void)
{
  TOLEBOOL PVal;
  this->_Update((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Valid(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsSurfaceDispT<T>::get_Valid(void)
{
  TOLEBOOL PVal;
  this->get_Valid((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Part(Kompasltapi7_tlb::IPart7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Part"), DISPID(505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPart7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPart7Ptr __fastcall
INurbsSurfaceDispT<T>::get_Part(void)
{
  Kompasltapi7_tlb::IPart7Ptr Result;
  this->get_Part((Kompasltapi7_tlb::IPart7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_ModelObjectType(ksObj3dTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ModelObjectType"), DISPID(506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksObj3dTypeEnum __fastcall
INurbsSurfaceDispT<T>::get_ModelObjectType(void)
{
  ksObj3dTypeEnum Type;
  this->get_ModelObjectType((ksObj3dTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Owner(Kompasltapi7_tlb::IFeature7Ptr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Owner"), DISPID(507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IFeature7**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IFeature7Ptr __fastcall
INurbsSurfaceDispT<T>::get_Owner(void)
{
  Kompasltapi7_tlb::IFeature7Ptr PVal;
  this->get_Owner((Kompasltapi7_tlb::IFeature7Ptr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
INurbsSurfaceDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
INurbsSurfaceDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
INurbsSurfaceDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsSurfaceDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsSurfaceDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IColorParam7
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BE6A80EE-38FE-4432-8331-BF864830761C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_UseColor(ksUseColorEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseColor"), DISPID(6001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksUseColorEnum __fastcall
IColorParam7DispT<T>::get_UseColor(void)
{
  ksUseColorEnum PVal;
  this->get_UseColor((ksUseColorEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_UseColor(ksUseColorEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("UseColor"), DISPID(6001));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_Color(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColorParam7DispT<T>::get_Color(void)
{
  long PVal;
  this->get_Color((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_Color(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color"), DISPID(6002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_Ambient(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ambient"), DISPID(6003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColorParam7DispT<T>::get_Ambient(void)
{
  double PVal;
  this->get_Ambient((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_Ambient(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ambient"), DISPID(6003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_Diffuse(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Diffuse"), DISPID(6004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColorParam7DispT<T>::get_Diffuse(void)
{
  double PVal;
  this->get_Diffuse((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_Diffuse(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Diffuse"), DISPID(6004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_Specularity(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Specularity"), DISPID(6005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColorParam7DispT<T>::get_Specularity(void)
{
  double PVal;
  this->get_Specularity((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_Specularity(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Specularity"), DISPID(6005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_Shininess(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Shininess"), DISPID(6006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColorParam7DispT<T>::get_Shininess(void)
{
  double PVal;
  this->get_Shininess((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_Shininess(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Shininess"), DISPID(6006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_Transparency(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transparency"), DISPID(6007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColorParam7DispT<T>::get_Transparency(void)
{
  double PVal;
  this->get_Transparency((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_Transparency(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transparency"), DISPID(6007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::get_Emission(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Emission"), DISPID(6008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColorParam7DispT<T>::get_Emission(void)
{
  double PVal;
  this->get_Emission((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::set_Emission(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Emission"), DISPID(6008));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::GetAdvancedColor(long* Color/*[out]*/, double* Ambient/*[out]*/, 
                                       double* Diffuse/*[out]*/, double* Specularity/*[out]*/, 
                                       double* Shininess/*[out]*/, double* Transparency/*[out]*/, 
                                       double* Emission/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetAdvancedColor"), DISPID(6009));
  TAutoArgs<7> _args;
  _args[1] = Color /*[VT_I4:1]*/;
  _args[2] = Ambient /*[VT_R8:1]*/;
  _args[3] = Diffuse /*[VT_R8:1]*/;
  _args[4] = Specularity /*[VT_R8:1]*/;
  _args[5] = Shininess /*[VT_R8:1]*/;
  _args[6] = Transparency /*[VT_R8:1]*/;
  _args[7] = Emission /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColorParam7DispT<T>::GetAdvancedColor(long* Color/*[out]*/, double* Ambient/*[out]*/, 
                                       double* Diffuse/*[out]*/, double* Specularity/*[out]*/, 
                                       double* Shininess/*[out]*/, double* Transparency/*[out]*/, 
                                       double* Emission/*[out]*/)
{
  TOLEBOOL Result;
  this->GetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, Emission, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColorParam7DispT<T>::SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                       double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                       double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                       double Emission/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAdvancedColor"), DISPID(6010));
  TAutoArgs<7> _args;
  _args[1] = Color /*[VT_I4:0]*/;
  _args[2] = Ambient /*[VT_R8:0]*/;
  _args[3] = Diffuse /*[VT_R8:0]*/;
  _args[4] = Specularity /*[VT_R8:0]*/;
  _args[5] = Shininess /*[VT_R8:0]*/;
  _args[6] = Transparency /*[VT_R8:0]*/;
  _args[7] = Emission /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColorParam7DispT<T>::SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                       double Diffuse/*[in]*/, double Specularity/*[in]*/, 
                                       double Shininess/*[in]*/, double Transparency/*[in]*/, 
                                       double Emission/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, Emission, (TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingText
// Interface: IDrawingText
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_X(double* Result/*[out,retval]*/)
{
  return (*this)->get_X(Result);
}

template <class T> double __fastcall
TCOMIDrawingTextT<T>::get_X(void)
{
  double Result;
  OLECHECK(this->get_X((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_X(double Result/*[in]*/)
{
  return (*this)->set_X(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_Y(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y(Result);
}

template <class T> double __fastcall
TCOMIDrawingTextT<T>::get_Y(void)
{
  double Result;
  OLECHECK(this->get_Y((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_Y(double Result/*[in]*/)
{
  return (*this)->set_Y(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIDrawingTextT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_Height(double* Result/*[out,retval]*/)
{
  return (*this)->get_Height(Result);
}

template <class T> double __fastcall
TCOMIDrawingTextT<T>::get_Height(void)
{
  double Result;
  OLECHECK(this->get_Height((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_Height(double Result/*[in]*/)
{
  return (*this)->set_Height(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_Width(double* Result/*[out,retval]*/)
{
  return (*this)->get_Width(Result);
}

template <class T> double __fastcall
TCOMIDrawingTextT<T>::get_Width(void)
{
  double Result;
  OLECHECK(this->get_Width((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_Width(double Result/*[in]*/)
{
  return (*this)->set_Width(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/)
{
  return (*this)->get_HFormat(Result);
}

template <class T> ksTextHorizontalFormatEnum __fastcall
TCOMIDrawingTextT<T>::get_HFormat(void)
{
  ksTextHorizontalFormatEnum Result;
  OLECHECK(this->get_HFormat((ksTextHorizontalFormatEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/)
{
  return (*this)->set_HFormat(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_VFormat(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_VFormat(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingTextT<T>::get_VFormat(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_VFormat((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_VFormat(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_VFormat(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::get_Allocation(ksAllocationEnum* Result/*[out,retval]*/)
{
  return (*this)->get_Allocation(Result);
}

template <class T> ksAllocationEnum __fastcall
TCOMIDrawingTextT<T>::get_Allocation(void)
{
  ksAllocationEnum Result;
  OLECHECK(this->get_Allocation((ksAllocationEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextT<T>::set_Allocation(ksAllocationEnum Result/*[in]*/)
{
  return (*this)->set_Allocation(Result);
}

// *********************************************************************//
// DispIntf:  IDrawingText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E32E5703-0141-41CF-9917-9565648FE331}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTextDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTextDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTextDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Height(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTextDispT<T>::get_Height(void)
{
  double Result;
  this->get_Height((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_Height(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Width(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTextDispT<T>::get_Width(void)
{
  double Result;
  this->get_Width((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_Width(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_HFormat(ksTextHorizontalFormatEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HFormat"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTextHorizontalFormatEnum __fastcall
IDrawingTextDispT<T>::get_HFormat(void)
{
  ksTextHorizontalFormatEnum Result;
  this->get_HFormat((ksTextHorizontalFormatEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_HFormat(ksTextHorizontalFormatEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HFormat"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_VFormat(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VFormat"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTextDispT<T>::get_VFormat(void)
{
  TOLEBOOL Result;
  this->get_VFormat((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_VFormat(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VFormat"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Allocation(ksAllocationEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Allocation"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAllocationEnum __fastcall
IDrawingTextDispT<T>::get_Allocation(void)
{
  ksAllocationEnum Result;
  this->get_Allocation((ksAllocationEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_Allocation(ksAllocationEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Allocation"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IDrawingTextDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTextDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTextDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTextDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTextDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTextDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IDrawingTextDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingTextDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingTextDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingTextDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTextDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTextDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingTexts
// Interface: IDrawingTexts
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingTextsT<T>::get_DrawingText(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IDrawingTextPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DrawingText(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDrawingTextPtr __fastcall
TCOMIDrawingTextsT<T>::get_DrawingText(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingTextPtr Result;
  OLECHECK(this->get_DrawingText(Index, (Kompasltapi7_tlb::IDrawingTextPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTextsT<T>::Add(Kompasltapi7_tlb::IDrawingTextPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IDrawingTextPtr __fastcall
TCOMIDrawingTextsT<T>::Add(void)
{
  Kompasltapi7_tlb::IDrawingTextPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IDrawingTextPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IDrawingTexts
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C72E0E9D-7078-4AA7-95E4-E8C75CA9BCEC}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get_DrawingText(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IDrawingTextPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingText"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingText**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingTextPtr __fastcall
IDrawingTextsDispT<T>::get_DrawingText(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingTextPtr Result;
  this->get_DrawingText(Index, (Kompasltapi7_tlb::IDrawingTextPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::Add(Kompasltapi7_tlb::IDrawingTextPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingText**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingTextPtr __fastcall
IDrawingTextsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IDrawingTextPtr Value;
  this->Add((Kompasltapi7_tlb::IDrawingTextPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IDrawingTextsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDrawingTextsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTextsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingTextsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingTextsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingTextsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTextsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTextsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDrawingContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D603FEC9-75B7-4FA5-918F-47074C45B848}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Objects(TVariantInParam ObjType/*[in]*/, 
                                       TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Objects"), DISPID(5001));
  TAutoArgs<1> _args;
  _args[1] = ObjType /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IDrawingContainerDispT<T>::get_Objects(TVariantInParam ObjType/*[in]*/)
{
  TVariant Result;
  this->get_Objects(ObjType, (TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_DrawingTexts(Kompasltapi7_tlb::IDrawingTextsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingTexts"), DISPID(5002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingTexts**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingTextsPtr __fastcall
IDrawingContainerDispT<T>::get_DrawingTexts(void)
{
  Kompasltapi7_tlb::IDrawingTextsPtr PVal;
  this->get_DrawingTexts((Kompasltapi7_tlb::IDrawingTextsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_LineSegments(Kompasltapi7_tlb::ILineSegmentsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineSegments"), DISPID(5003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILineSegments**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILineSegmentsPtr __fastcall
IDrawingContainerDispT<T>::get_LineSegments(void)
{
  Kompasltapi7_tlb::ILineSegmentsPtr PVal;
  this->get_LineSegments((Kompasltapi7_tlb::ILineSegmentsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Arcs(Kompasltapi7_tlb::IArcsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Arcs"), DISPID(5004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IArcs**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IArcsPtr __fastcall
IDrawingContainerDispT<T>::get_Arcs(void)
{
  Kompasltapi7_tlb::IArcsPtr PVal;
  this->get_Arcs((Kompasltapi7_tlb::IArcsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Multilines(Kompasltapi7_tlb::IMultilinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Multilines"), DISPID(5005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMultilines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMultilinesPtr __fastcall
IDrawingContainerDispT<T>::get_Multilines(void)
{
  Kompasltapi7_tlb::IMultilinesPtr PVal;
  this->get_Multilines((Kompasltapi7_tlb::IMultilinesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_DrawingContours(Kompasltapi7_tlb::IDrawingContoursPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingContours"), DISPID(5006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingContours**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingContoursPtr __fastcall
IDrawingContainerDispT<T>::get_DrawingContours(void)
{
  Kompasltapi7_tlb::IDrawingContoursPtr PVal;
  this->get_DrawingContours((Kompasltapi7_tlb::IDrawingContoursPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Circles(Kompasltapi7_tlb::ICirclesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Circles"), DISPID(5007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICircles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICirclesPtr __fastcall
IDrawingContainerDispT<T>::get_Circles(void)
{
  Kompasltapi7_tlb::ICirclesPtr PVal;
  this->get_Circles((Kompasltapi7_tlb::ICirclesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Points(Kompasltapi7_tlb::IPointsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points"), DISPID(5008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPoints**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPointsPtr __fastcall
IDrawingContainerDispT<T>::get_Points(void)
{
  Kompasltapi7_tlb::IPointsPtr PVal;
  this->get_Points((Kompasltapi7_tlb::IPointsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Beziers(Kompasltapi7_tlb::IBeziersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Beziers"), DISPID(5009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBeziers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBeziersPtr __fastcall
IDrawingContainerDispT<T>::get_Beziers(void)
{
  Kompasltapi7_tlb::IBeziersPtr PVal;
  this->get_Beziers((Kompasltapi7_tlb::IBeziersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_MacroObjects(Kompasltapi7_tlb::IMacroObjectsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MacroObjects"), DISPID(5010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMacroObjects**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMacroObjectsPtr __fastcall
IDrawingContainerDispT<T>::get_MacroObjects(void)
{
  Kompasltapi7_tlb::IMacroObjectsPtr PVal;
  this->get_MacroObjects((Kompasltapi7_tlb::IMacroObjectsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Lines(Kompasltapi7_tlb::ILinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Lines"), DISPID(5011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILinesPtr __fastcall
IDrawingContainerDispT<T>::get_Lines(void)
{
  Kompasltapi7_tlb::ILinesPtr PVal;
  this->get_Lines((Kompasltapi7_tlb::ILinesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_PolyLines2D(Kompasltapi7_tlb::IPolyLines2DPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PolyLines2D"), DISPID(5012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPolyLines2D**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPolyLines2DPtr __fastcall
IDrawingContainerDispT<T>::get_PolyLines2D(void)
{
  Kompasltapi7_tlb::IPolyLines2DPtr PVal;
  this->get_PolyLines2D((Kompasltapi7_tlb::IPolyLines2DPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Nurbses(Kompasltapi7_tlb::INurbsesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Nurbses"), DISPID(5013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::INurbses**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::INurbsesPtr __fastcall
IDrawingContainerDispT<T>::get_Nurbses(void)
{
  Kompasltapi7_tlb::INurbsesPtr PVal;
  this->get_Nurbses((Kompasltapi7_tlb::INurbsesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Rasters(Kompasltapi7_tlb::IRastersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rasters"), DISPID(5014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRasters**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRastersPtr __fastcall
IDrawingContainerDispT<T>::get_Rasters(void)
{
  Kompasltapi7_tlb::IRastersPtr PVal;
  this->get_Rasters((Kompasltapi7_tlb::IRastersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_OleDrawingObjects(Kompasltapi7_tlb::IOleDrawingObjectsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OleDrawingObjects"), DISPID(5015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IOleDrawingObjects**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IOleDrawingObjectsPtr __fastcall
IDrawingContainerDispT<T>::get_OleDrawingObjects(void)
{
  Kompasltapi7_tlb::IOleDrawingObjectsPtr PVal;
  this->get_OleDrawingObjects((Kompasltapi7_tlb::IOleDrawingObjectsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Ellipses(Kompasltapi7_tlb::IEllipsesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ellipses"), DISPID(5016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEllipses**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEllipsesPtr __fastcall
IDrawingContainerDispT<T>::get_Ellipses(void)
{
  Kompasltapi7_tlb::IEllipsesPtr PVal;
  this->get_Ellipses((Kompasltapi7_tlb::IEllipsesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_EllipseArcs(Kompasltapi7_tlb::IEllipseArcsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EllipseArcs"), DISPID(5017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEllipseArcs**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEllipseArcsPtr __fastcall
IDrawingContainerDispT<T>::get_EllipseArcs(void)
{
  Kompasltapi7_tlb::IEllipseArcsPtr PVal;
  this->get_EllipseArcs((Kompasltapi7_tlb::IEllipseArcsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Rectangles(Kompasltapi7_tlb::IRectanglesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rectangles"), DISPID(5018));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRectangles**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRectanglesPtr __fastcall
IDrawingContainerDispT<T>::get_Rectangles(void)
{
  Kompasltapi7_tlb::IRectanglesPtr PVal;
  this->get_Rectangles((Kompasltapi7_tlb::IRectanglesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_RegularPolygons(Kompasltapi7_tlb::IRegularPolygonsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RegularPolygons"), DISPID(5019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRegularPolygons**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRegularPolygonsPtr __fastcall
IDrawingContainerDispT<T>::get_RegularPolygons(void)
{
  Kompasltapi7_tlb::IRegularPolygonsPtr PVal;
  this->get_RegularPolygons((Kompasltapi7_tlb::IRegularPolygonsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Equidistants(Kompasltapi7_tlb::IEquidistantsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Equidistants"), DISPID(5020));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEquidistants**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEquidistantsPtr __fastcall
IDrawingContainerDispT<T>::get_Equidistants(void)
{
  Kompasltapi7_tlb::IEquidistantsPtr PVal;
  this->get_Equidistants((Kompasltapi7_tlb::IEquidistantsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_InsertionObjects(Kompasltapi7_tlb::IInsertionObjectsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionObjects"), DISPID(5021));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionObjects**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionObjectsPtr __fastcall
IDrawingContainerDispT<T>::get_InsertionObjects(void)
{
  Kompasltapi7_tlb::IInsertionObjectsPtr PVal;
  this->get_InsertionObjects((Kompasltapi7_tlb::IInsertionObjectsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Hatches(Kompasltapi7_tlb::IHatchesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hatches"), DISPID(5022));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IHatches**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IHatchesPtr __fastcall
IDrawingContainerDispT<T>::get_Hatches(void)
{
  Kompasltapi7_tlb::IHatchesPtr PVal;
  this->get_Hatches((Kompasltapi7_tlb::IHatchesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContainerDispT<T>::get_Colourings(Kompasltapi7_tlb::IColouringsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Colourings"), DISPID(5023));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IColourings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IColouringsPtr __fastcall
IDrawingContainerDispT<T>::get_Colourings(void)
{
  Kompasltapi7_tlb::IColouringsPtr PVal;
  this->get_Colourings((Kompasltapi7_tlb::IColouringsPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILineSegments
// Interface: ILineSegments
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILineSegmentsT<T>::get_LineSegment(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/)
{
  return (*this)->get_LineSegment(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILineSegmentPtr __fastcall
TCOMILineSegmentsT<T>::get_LineSegment(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILineSegmentPtr Result;
  OLECHECK(this->get_LineSegment(Index, (Kompasltapi7_tlb::ILineSegmentPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentsT<T>::Add(Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ILineSegmentPtr __fastcall
TCOMILineSegmentsT<T>::Add(void)
{
  Kompasltapi7_tlb::ILineSegmentPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ILineSegmentPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILineSegments
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B211C782-A830-468E-9F4F-C499A77078D8}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get_LineSegment(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineSegment"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILineSegment**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILineSegmentPtr __fastcall
ILineSegmentsDispT<T>::get_LineSegment(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILineSegmentPtr Result;
  this->get_LineSegment(Index, (Kompasltapi7_tlb::ILineSegmentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::Add(Kompasltapi7_tlb::ILineSegmentPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILineSegment**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILineSegmentPtr __fastcall
ILineSegmentsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ILineSegmentPtr Result;
  this->Add((Kompasltapi7_tlb::ILineSegmentPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ILineSegmentsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILineSegmentsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineSegmentsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILineSegmentsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILineSegmentsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILineSegmentsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineSegmentsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineSegmentsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILineSegment
// Interface: ILineSegment
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMILineSegmentT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMILineSegmentT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMILineSegmentT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMILineSegmentT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMILineSegmentT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMILineSegmentT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMILineSegmentT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILineSegmentT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  ILineSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {64ACC86F-4B10-4897-8552-BC0A556D228B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineSegmentDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineSegmentDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineSegmentDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineSegmentDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineSegmentDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineSegmentDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineSegmentDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ILineSegmentDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineSegmentDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineSegmentDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineSegmentDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineSegmentDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineSegmentDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ILineSegmentDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILineSegmentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILineSegmentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILineSegmentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineSegmentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineSegmentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIArcs
// Interface: IArcs
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIArcsT<T>::get_Arc(TVariantInParam Index/*[in]*/, 
                       Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Arc(Index, Result);
}

template <class T> Kompasltapi7_tlb::IArcPtr __fastcall
TCOMIArcsT<T>::get_Arc(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IArcPtr Result;
  OLECHECK(this->get_Arc(Index, (Kompasltapi7_tlb::IArcPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIArcsT<T>::Add(Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IArcPtr __fastcall
TCOMIArcsT<T>::Add(void)
{
  Kompasltapi7_tlb::IArcPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IArcPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IArcs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4FCB4C17-3B9E-45E8-B83C-9284027BAA0D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IArcsDispT<T>::get_Arc(TVariantInParam Index/*[in]*/, 
                       Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Arc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IArc**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IArcPtr __fastcall
IArcsDispT<T>::get_Arc(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IArcPtr Result;
  this->get_Arc(Index, (Kompasltapi7_tlb::IArcPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::Add(Kompasltapi7_tlb::IArcPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IArc**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IArcPtr __fastcall
IArcsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IArcPtr Result;
  this->Add((Kompasltapi7_tlb::IArcPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                        Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IArcsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IArcsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IArcsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IArcsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IArcsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIArc
// Interface: IArc
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIArcT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_X3(double PVal/*[in]*/)
{
  return (*this)->set_X3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X3(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_X3(void)
{
  double PVal;
  OLECHECK(this->get_X3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Y3(double PVal/*[in]*/)
{
  return (*this)->set_Y3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y3(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Y3(void)
{
  double PVal;
  OLECHECK(this->get_Y3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Angle1(double PVal/*[in]*/)
{
  return (*this)->set_Angle1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle1(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Angle1(void)
{
  double PVal;
  OLECHECK(this->get_Angle1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Angle2(double PVal/*[in]*/)
{
  return (*this)->set_Angle2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle2(PVal);
}

template <class T> double __fastcall
TCOMIArcT<T>::get_Angle2(void)
{
  double PVal;
  OLECHECK(this->get_Angle2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIArcT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIArcT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  IArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A22DFB7E-21E0-4B28-9CA1-29B7950CF256}
// *********************************************************************//
template <class T> HRESULT __fastcall
IArcDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Angle1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Angle1(void)
{
  double PVal;
  this->get_Angle1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IArcDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IArcDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IArcDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IArcDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IArcDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMultilines
// Interface: IMultilines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMultilinesT<T>::get_Multiline(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IMultilinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Multiline(Index, Result);
}

template <class T> Kompasltapi7_tlb::IMultilinePtr __fastcall
TCOMIMultilinesT<T>::get_Multiline(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMultilinePtr Result;
  OLECHECK(this->get_Multiline(Index, (Kompasltapi7_tlb::IMultilinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilinesT<T>::Add(Kompasltapi7_tlb::IMultilinePtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IMultilinePtr __fastcall
TCOMIMultilinesT<T>::Add(void)
{
  Kompasltapi7_tlb::IMultilinePtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IMultilinePtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IMultilines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {968D7B84-2BC1-4354-AAFE-73192E405546}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get_Multiline(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IMultilinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Multiline"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMultiline**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMultilinePtr __fastcall
IMultilinesDispT<T>::get_Multiline(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMultilinePtr Result;
  this->get_Multiline(Index, (Kompasltapi7_tlb::IMultilinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::Add(Kompasltapi7_tlb::IMultilinePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMultiline**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMultilinePtr __fastcall
IMultilinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IMultilinePtr Value;
  this->Add((Kompasltapi7_tlb::IMultilinePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IMultilinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IMultilinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMultilinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMultilinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMultilinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultilinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMultiline
// Interface: IMultiline
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Closed(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Closed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultilineT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_BaseContour(Kompasltapi7_tlb::IContourPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseContour(Result);
}

template <class T> Kompasltapi7_tlb::IContourPtr __fastcall
TCOMIMultilineT<T>::get_BaseContour(void)
{
  Kompasltapi7_tlb::IContourPtr Result;
  OLECHECK(this->get_BaseContour((Kompasltapi7_tlb::IContourPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_TrackingType(long VertexIndex/*[in]*/, 
                                     ksMlVertexTrackingEnum* Val/*[out,retval]*/)
{
  return (*this)->get_TrackingType(VertexIndex, Val);
}

template <class T> ksMlVertexTrackingEnum __fastcall
TCOMIMultilineT<T>::get_TrackingType(long VertexIndex/*[in]*/)
{
  ksMlVertexTrackingEnum Val;
  OLECHECK(this->get_TrackingType(VertexIndex, (ksMlVertexTrackingEnum*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_TrackingType(long VertexIndex/*[in]*/, 
                                     ksMlVertexTrackingEnum Val/*[in]*/)
{
  return (*this)->set_TrackingType(VertexIndex, Val);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_VertexLimiter(long VertexIndex/*[in]*/, 
                                      ksMlVertexLimiterEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_VertexLimiter(VertexIndex, PVal);
}

template <class T> ksMlVertexLimiterEnum __fastcall
TCOMIMultilineT<T>::get_VertexLimiter(long VertexIndex/*[in]*/)
{
  ksMlVertexLimiterEnum PVal;
  OLECHECK(this->get_VertexLimiter(VertexIndex, (ksMlVertexLimiterEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_VertexLimiter(long VertexIndex/*[in]*/, 
                                      ksMlVertexLimiterEnum PVal/*[in]*/)
{
  return (*this)->set_VertexLimiter(VertexIndex, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_VertexDirection(long VertexIndex/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_VertexDirection(VertexIndex, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultilineT<T>::get_VertexDirection(long VertexIndex/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_VertexDirection(VertexIndex, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_VertexDirection(long VertexIndex/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_VertexDirection(VertexIndex, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_VertexRadius(long VertexIndex/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_VertexRadius(VertexIndex, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_VertexRadius(long VertexIndex/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_VertexRadius(VertexIndex, PVal);
}

template <class T> double __fastcall
TCOMIMultilineT<T>::get_VertexRadius(long VertexIndex/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_VertexRadius(VertexIndex, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_VertexStyle(long VertexIndex/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->get_VertexStyle(VertexIndex, Result);
}

template <class T> long __fastcall
TCOMIMultilineT<T>::get_VertexStyle(long VertexIndex/*[in]*/)
{
  long Result;
  OLECHECK(this->get_VertexStyle(VertexIndex, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_VertexStyle(long VertexIndex/*[in]*/, long Result/*[in]*/)
{
  return (*this)->set_VertexStyle(VertexIndex, Result);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_VertexCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_VertexCount(PVal);
}

template <class T> long __fastcall
TCOMIMultilineT<T>::get_VertexCount(void)
{
  long PVal;
  OLECHECK(this->get_VertexCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_EndLimiter(TOLEBOOL First/*[in]*/, 
                                   ksMlEndLimiterEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_EndLimiter(First, PVal);
}

template <class T> ksMlEndLimiterEnum __fastcall
TCOMIMultilineT<T>::get_EndLimiter(TOLEBOOL First/*[in]*/)
{
  ksMlEndLimiterEnum PVal;
  OLECHECK(this->get_EndLimiter(First, (ksMlEndLimiterEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_EndLimiter(TOLEBOOL First/*[in]*/, 
                                   ksMlEndLimiterEnum PVal/*[in]*/)
{
  return (*this)->set_EndLimiter(First, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_EndParameter(TOLEBOOL First/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_EndParameter(First, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_EndParameter(TOLEBOOL First/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_EndParameter(First, PVal);
}

template <class T> double __fastcall
TCOMIMultilineT<T>::get_EndParameter(TOLEBOOL First/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_EndParameter(First, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_EndStyle(TOLEBOOL First/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->get_EndStyle(First, Result);
}

template <class T> long __fastcall
TCOMIMultilineT<T>::get_EndStyle(TOLEBOOL First/*[in]*/)
{
  long Result;
  OLECHECK(this->get_EndStyle(First, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_EndStyle(TOLEBOOL First/*[in]*/, long Result/*[in]*/)
{
  return (*this)->set_EndStyle(First, Result);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::AddLine(double Offset/*[in]*/, long Style/*[in]*/, 
                            TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddLine(Offset, Style, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultilineT<T>::AddLine(double Offset/*[in]*/, long Style/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddLine(Offset, Style, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::DeleteLine(long LineIndex/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteLine(LineIndex, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultilineT<T>::DeleteLine(long LineIndex/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteLine(LineIndex, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_LineCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_LineCount(PVal);
}

template <class T> long __fastcall
TCOMIMultilineT<T>::get_LineCount(void)
{
  long PVal;
  OLECHECK(this->get_LineCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_LineOffset(long LineIndex/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_LineOffset(LineIndex, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_LineOffset(long LineIndex/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_LineOffset(LineIndex, PVal);
}

template <class T> double __fastcall
TCOMIMultilineT<T>::get_LineOffset(long LineIndex/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_LineOffset(LineIndex, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_LineStyle(long LineIndex/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->get_LineStyle(LineIndex, Result);
}

template <class T> long __fastcall
TCOMIMultilineT<T>::get_LineStyle(long LineIndex/*[in]*/)
{
  long Result;
  OLECHECK(this->get_LineStyle(LineIndex, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::set_LineStyle(long LineIndex/*[in]*/, long Result/*[in]*/)
{
  return (*this)->set_LineStyle(LineIndex, Result);
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::FindLine(double Offset/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->FindLine(Offset, Result);
}

template <class T> long __fastcall
TCOMIMultilineT<T>::FindLine(double Offset/*[in]*/)
{
  long Result;
  OLECHECK(this->FindLine(Offset, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultilineT<T>::get_LineOffsets(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_LineOffsets(Result);
}

template <class T> TVariant __fastcall
TCOMIMultilineT<T>::get_LineOffsets(void)
{
  TVariant Result;
  OLECHECK(this->get_LineOffsets((TVariant*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IMultiline
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6CCB098-5710-44E3-8198-8FAFD56C7A6F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  this->get_Closed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_BaseContour(Kompasltapi7_tlb::IContourPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseContour"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IContour**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IContourPtr __fastcall
IMultilineDispT<T>::get_BaseContour(void)
{
  Kompasltapi7_tlb::IContourPtr Result;
  this->get_BaseContour((Kompasltapi7_tlb::IContourPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_TrackingType(long VertexIndex/*[in]*/, 
                                     ksMlVertexTrackingEnum* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TrackingType"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr((int*)Val /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMlVertexTrackingEnum __fastcall
IMultilineDispT<T>::get_TrackingType(long VertexIndex/*[in]*/)
{
  ksMlVertexTrackingEnum Val;
  this->get_TrackingType(VertexIndex, (ksMlVertexTrackingEnum*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_TrackingType(long VertexIndex/*[in]*/, 
                                     ksMlVertexTrackingEnum Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TrackingType"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  _args[2] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_VertexLimiter(long VertexIndex/*[in]*/, 
                                      ksMlVertexLimiterEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexLimiter"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMlVertexLimiterEnum __fastcall
IMultilineDispT<T>::get_VertexLimiter(long VertexIndex/*[in]*/)
{
  ksMlVertexLimiterEnum PVal;
  this->get_VertexLimiter(VertexIndex, (ksMlVertexLimiterEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_VertexLimiter(long VertexIndex/*[in]*/, 
                                      ksMlVertexLimiterEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexLimiter"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  _args[2] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_VertexDirection(long VertexIndex/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexDirection"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::get_VertexDirection(long VertexIndex/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_VertexDirection(VertexIndex, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_VertexDirection(long VertexIndex/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexDirection"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_VertexRadius(long VertexIndex/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexRadius"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_VertexRadius(long VertexIndex/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexRadius"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMultilineDispT<T>::get_VertexRadius(long VertexIndex/*[in]*/)
{
  double PVal;
  this->get_VertexRadius(VertexIndex, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_VertexStyle(long VertexIndex/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexStyle"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::get_VertexStyle(long VertexIndex/*[in]*/)
{
  long Result;
  this->get_VertexStyle(VertexIndex, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_VertexStyle(long VertexIndex/*[in]*/, long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexStyle"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = VertexIndex /*[VT_I4:0]*/;
  _args[2] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_VertexCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexCount"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::get_VertexCount(void)
{
  long PVal;
  this->get_VertexCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_EndLimiter(TOLEBOOL First/*[in]*/, 
                                   ksMlEndLimiterEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndLimiter"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMlEndLimiterEnum __fastcall
IMultilineDispT<T>::get_EndLimiter(TOLEBOOL First/*[in]*/)
{
  ksMlEndLimiterEnum PVal;
  this->get_EndLimiter(First, (ksMlEndLimiterEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_EndLimiter(TOLEBOOL First/*[in]*/, 
                                   ksMlEndLimiterEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndLimiter"), DISPID(9));
  TAutoArgs<2> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  _args[2] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_EndParameter(TOLEBOOL First/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndParameter"), DISPID(10));
  TAutoArgs<2> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_EndParameter(TOLEBOOL First/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndParameter"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMultilineDispT<T>::get_EndParameter(TOLEBOOL First/*[in]*/)
{
  double PVal;
  this->get_EndParameter(First, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_EndStyle(TOLEBOOL First/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndStyle"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::get_EndStyle(TOLEBOOL First/*[in]*/)
{
  long Result;
  this->get_EndStyle(First, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_EndStyle(TOLEBOOL First/*[in]*/, long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EndStyle"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  _args[2] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::AddLine(double Offset/*[in]*/, long Style/*[in]*/, 
                            TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddLine"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = Offset /*[VT_R8:0]*/;
  _args[2] = Style /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::AddLine(double Offset/*[in]*/, long Style/*[in]*/)
{
  TOLEBOOL Result;
  this->AddLine(Offset, Style, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::DeleteLine(long LineIndex/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteLine"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = LineIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::DeleteLine(long LineIndex/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteLine(LineIndex, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_LineCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineCount"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::get_LineCount(void)
{
  long PVal;
  this->get_LineCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_LineOffset(long LineIndex/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineOffset"), DISPID(15));
  TAutoArgs<2> _args;
  _args[1] = LineIndex /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_LineOffset(long LineIndex/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineOffset"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = LineIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMultilineDispT<T>::get_LineOffset(long LineIndex/*[in]*/)
{
  double PVal;
  this->get_LineOffset(LineIndex, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_LineStyle(long LineIndex/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineStyle"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = LineIndex /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::get_LineStyle(long LineIndex/*[in]*/)
{
  long Result;
  this->get_LineStyle(LineIndex, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_LineStyle(long LineIndex/*[in]*/, long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineStyle"), DISPID(16));
  TAutoArgs<2> _args;
  _args[1] = LineIndex /*[VT_I4:0]*/;
  _args[2] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::FindLine(double Offset/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FindLine"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = Offset /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::FindLine(double Offset/*[in]*/)
{
  long Result;
  this->FindLine(Offset, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_LineOffsets(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineOffsets"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IMultilineDispT<T>::get_LineOffsets(void)
{
  TVariant Result;
  this->get_LineOffsets((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IMultilineDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultilineDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IMultilineDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMultilineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMultilineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMultilineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultilineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultilineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIContour
// Interface: IContour
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIContourT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Closed(Result);
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Closed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIContourT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::AddSegment(ksContourSegmentEnum Type/*[in]*/, 
                             Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->AddSegment(Type, Result);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMIContourT<T>::AddSegment(ksContourSegmentEnum Type/*[in]*/)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  OLECHECK(this->AddSegment(Type, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::get_Segment(long Index/*[in]*/, 
                              Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Segment(Index, Result);
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
TCOMIContourT<T>::get_Segment(long Index/*[in]*/)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  OLECHECK(this->get_Segment(Index, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                            TOLEBOOL DeleteSource/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->CopyCurve(Curve, DeleteSource, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIContourT<T>::CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                            TOLEBOOL DeleteSource/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->CopyCurve(Curve, DeleteSource, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Count(PVal);
}

template <class T> long __fastcall
TCOMIContourT<T>::get_Count(void)
{
  long PVal;
  OLECHECK(this->get_Count((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::get_TmpObjects(TVariant* Result/*[out,retval]*/)
{
  return (*this)->get_TmpObjects(Result);
}

template <class T> TVariant __fastcall
TCOMIContourT<T>::get_TmpObjects(void)
{
  TVariant Result;
  OLECHECK(this->get_TmpObjects((TVariant*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/, 
                               TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->CopySegments(Val, DeleteSource, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIContourT<T>::CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->CopySegments(Val, DeleteSource, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIContourT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIContourT<T>::Clear(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear((TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IContour
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E79F5A53-F456-4996-B620-16B725F134FB}
// *********************************************************************//
template <class T> HRESULT __fastcall
IContourDispT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IContourDispT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  this->get_Closed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::AddSegment(ksContourSegmentEnum Type/*[in]*/, 
                             Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddSegment"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IContourDispT<T>::AddSegment(ksContourSegmentEnum Type/*[in]*/)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->AddSegment(Type, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_Segment(long Index/*[in]*/, 
                              Kompasltapi7_tlb::IKompasAPIObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Segment"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IContourDispT<T>::get_Segment(long Index/*[in]*/)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr Result;
  this->get_Segment(Index, (Kompasltapi7_tlb::IKompasAPIObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                            TOLEBOOL DeleteSource/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopyCurve"), DISPID(2004));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Curve /*[VT_USERDEFINED:1]*/;
  _args[2] = DeleteSource /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IContourDispT<T>::CopyCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                            TOLEBOOL DeleteSource/*[in]*/)
{
  TOLEBOOL Result;
  this->CopyCurve(Curve, DeleteSource, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IContourDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_TmpObjects(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TmpObjects"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IContourDispT<T>::get_TmpObjects(void)
{
  TVariant Result;
  this->get_TmpObjects((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/, 
                               TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CopySegments"), DISPID(2007));
  TAutoArgs<2> _args;
  _args[1] = Val /*[VT_VARIANT:0]*/;
  _args[2] = DeleteSource /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IContourDispT<T>::CopySegments(TVariantInParam Val/*[in]*/, TOLEBOOL DeleteSource/*[in]*/)
{
  TOLEBOOL Result;
  this->CopySegments(Val, DeleteSource, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IContourDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IContourDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IContourDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IContourDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IContourDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IContourDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingContours
// Interface: IDrawingContours
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingContoursT<T>::get_DrawingContour(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IDrawingContourPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DrawingContour(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDrawingContourPtr __fastcall
TCOMIDrawingContoursT<T>::get_DrawingContour(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingContourPtr Result;
  OLECHECK(this->get_DrawingContour(Index, (Kompasltapi7_tlb::IDrawingContourPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingContoursT<T>::Add(Kompasltapi7_tlb::IDrawingContourPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IDrawingContourPtr __fastcall
TCOMIDrawingContoursT<T>::Add(void)
{
  Kompasltapi7_tlb::IDrawingContourPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IDrawingContourPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IDrawingContours
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DBA3626C-12BE-4BFF-8D42-B01A78666BC9}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get_DrawingContour(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IDrawingContourPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingContour"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingContour**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingContourPtr __fastcall
IDrawingContoursDispT<T>::get_DrawingContour(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingContourPtr Result;
  this->get_DrawingContour(Index, (Kompasltapi7_tlb::IDrawingContourPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::Add(Kompasltapi7_tlb::IDrawingContourPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingContour**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingContourPtr __fastcall
IDrawingContoursDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IDrawingContourPtr Value;
  this->Add((Kompasltapi7_tlb::IDrawingContourPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IDrawingContoursDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDrawingContoursDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingContoursDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingContoursDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingContoursDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingContoursDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingContoursDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingContoursDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingContour
// Interface: IDrawingContour
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingContourT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIDrawingContourT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingContourT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  IDrawingContour
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {25509C3A-7B46-4E3F-B0E8-0E61B7548664}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingContourDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IDrawingContourDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingContourDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingContourDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingContourDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingContourDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingContourDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IDrawingContourDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingContourDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingContourDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingContourDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingContourDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingContourDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICircles
// Interface: ICircles
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICirclesT<T>::get_Circle(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Circle(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICirclePtr __fastcall
TCOMICirclesT<T>::get_Circle(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICirclePtr Result;
  OLECHECK(this->get_Circle(Index, (Kompasltapi7_tlb::ICirclePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICirclesT<T>::Add(Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ICirclePtr __fastcall
TCOMICirclesT<T>::Add(void)
{
  Kompasltapi7_tlb::ICirclePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ICirclePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ICircles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C8CA9255-E5FE-4396-9C3F-75EE7377C508}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICirclesDispT<T>::get_Circle(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Circle"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICircle**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICirclePtr __fastcall
ICirclesDispT<T>::get_Circle(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICirclePtr Result;
  this->get_Circle(Index, (Kompasltapi7_tlb::ICirclePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::Add(Kompasltapi7_tlb::ICirclePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICircle**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICirclePtr __fastcall
ICirclesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ICirclePtr Result;
  this->Add((Kompasltapi7_tlb::ICirclePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ICirclesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ICirclesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICirclesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICirclesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICirclesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICirclesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICirclesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICirclesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICircle
// Interface: ICircle
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICircleT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMICircleT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMICircleT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMICircleT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMICircleT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMICircleT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMICircleT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICircleT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  ICircle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C952F95-DFED-4EEE-B39A-6699EDE08676}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICircleDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircleDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ICircleDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircleDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ICircleDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICircleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICircleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICircleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoints
// Interface: IPoints
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPointsT<T>::get_Point(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Point(Index, Result);
}

template <class T> Kompasltapi7_tlb::IPointPtr __fastcall
TCOMIPointsT<T>::get_Point(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPointPtr Result;
  OLECHECK(this->get_Point(Index, (Kompasltapi7_tlb::IPointPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPointsT<T>::Add(Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IPointPtr __fastcall
TCOMIPointsT<T>::Add(void)
{
  Kompasltapi7_tlb::IPointPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IPointPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPoints
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8C6846A4-EE3B-4C00-A708-5C0FD01E21B7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPointsDispT<T>::get_Point(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Point"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPoint**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPointPtr __fastcall
IPointsDispT<T>::get_Point(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPointPtr Result;
  this->get_Point(Index, (Kompasltapi7_tlb::IPointPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::Add(Kompasltapi7_tlb::IPointPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPoint**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPointPtr __fastcall
IPointsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IPointPtr Result;
  this->Add((Kompasltapi7_tlb::IPointPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                          Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IPointsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IPointsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPointsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPointsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPointsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPointsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPointsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPointsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPoint
// Interface: IPoint
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPointT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPointT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMIPointT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPointT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPointT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMIPointT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPointT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPointT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIPointT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPointT<T>::get_Style(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Style(PVal);
}

template <class T> long __fastcall
TCOMIPointT<T>::get_Style(void)
{
  long PVal;
  OLECHECK(this->get_Style((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPointT<T>::set_Style(long PVal/*[in]*/)
{
  return (*this)->set_Style(PVal);
}

// *********************************************************************//
// DispIntf:  IPoint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D0C19C87-14E7-401D-AEF5-A2E88E899F6E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPointDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPointDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPointDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IPointDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Style(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPointDispT<T>::get_Style(void)
{
  long PVal;
  this->get_Style((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::set_Style(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IPointDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPointDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPointDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPointDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPointDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPointDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IPointDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPointDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPointDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPointDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPointDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPointDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBeziers
// Interface: IBeziers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBeziersT<T>::get_Bezier(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Bezier(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBezierPtr __fastcall
TCOMIBeziersT<T>::get_Bezier(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBezierPtr Result;
  OLECHECK(this->get_Bezier(Index, (Kompasltapi7_tlb::IBezierPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBeziersT<T>::Add(Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IBezierPtr __fastcall
TCOMIBeziersT<T>::Add(void)
{
  Kompasltapi7_tlb::IBezierPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IBezierPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IBeziers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {57944ECC-5491-4551-9DB9-FABC45125A63}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBeziersDispT<T>::get_Bezier(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bezier"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBezier**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBezierPtr __fastcall
IBeziersDispT<T>::get_Bezier(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBezierPtr Result;
  this->get_Bezier(Index, (Kompasltapi7_tlb::IBezierPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::Add(Kompasltapi7_tlb::IBezierPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBezier**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBezierPtr __fastcall
IBeziersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IBezierPtr Result;
  this->Add((Kompasltapi7_tlb::IBezierPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBeziersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBeziersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBeziersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBeziersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBeziersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBeziersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBeziersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBeziersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBezier
// Interface: IBezier
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBezierT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Closed(Result);
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Closed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBezierT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::get_PointsCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_PointsCount(Result);
}

template <class T> long __fastcall
TCOMIBezierT<T>::get_PointsCount(void)
{
  long Result;
  OLECHECK(this->get_PointsCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::set_Points(TOLEBOOL AllPoints/*[in]*/, TVariantInParam Points/*[in]*/)
{
  return (*this)->set_Points(AllPoints, Points);
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::get_Points(TOLEBOOL AllPoints/*[in]*/, TVariant* Points/*[out,retval]*/)
{
  return (*this)->get_Points(AllPoints, Points);
}

template <class T> TVariant __fastcall
TCOMIBezierT<T>::get_Points(TOLEBOOL AllPoints/*[in]*/)
{
  TVariant Points;
  OLECHECK(this->get_Points(AllPoints, (TVariant*)&Points));
  return Points;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                          double* XLeft/*[in]*/, double* YLeft/*[in]*/, double* XRight/*[in]*/, 
                          double* YRight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->AddPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIBezierT<T>::AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                          double* XLeft/*[in]*/, double* YLeft/*[in]*/, double* XRight/*[in]*/, 
                          double* YRight/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->AddPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, double* YBase/*[out]*/, 
                          double* XLeft/*[out]*/, double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                          double* YRight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIBezierT<T>::GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, double* YBase/*[out]*/, 
                          double* XLeft/*[out]*/, double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                          double* YRight/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeletePoint(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBezierT<T>::DeletePoint(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeletePoint(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBezierT<T>::Clear(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIBezierT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBezierT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  IBezier
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {6D51EC19-200C-47A2-AE55-0593AD746851}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBezierDispT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  this->get_Closed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_PointsCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointsCount"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBezierDispT<T>::get_PointsCount(void)
{
  long Result;
  this->get_PointsCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::set_Points(TOLEBOOL AllPoints/*[in]*/, TVariantInParam Points/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = AllPoints /*[VT_BOOL:0]*/;
  _args[2] = Points /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Points(TOLEBOOL AllPoints/*[in]*/, TVariant* Points/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = AllPoints /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Points /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IBezierDispT<T>::get_Points(TOLEBOOL AllPoints/*[in]*/)
{
  TVariant Points;
  this->get_Points(AllPoints, (TVariant*)&Points);
  return Points;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                          double* XLeft/*[in]*/, double* YLeft/*[in]*/, double* XRight/*[in]*/, 
                          double* YRight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddPoint"), DISPID(4));
  TAutoArgs<7> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = XBase /*[VT_R8:0]*/;
  _args[3] = YBase /*[VT_R8:0]*/;
  _args[4] = XLeft /*[VT_R8:1]*/;
  _args[5] = YLeft /*[VT_R8:1]*/;
  _args[6] = XRight /*[VT_R8:1]*/;
  _args[7] = YRight /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::AddPoint(long Index/*[in]*/, double XBase/*[in]*/, double YBase/*[in]*/, 
                          double* XLeft/*[in]*/, double* YLeft/*[in]*/, double* XRight/*[in]*/, 
                          double* YRight/*[in]*/)
{
  TOLEBOOL PVal;
  this->AddPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, double* YBase/*[out]*/, 
                          double* XLeft/*[out]*/, double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                          double* YRight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPoint"), DISPID(5));
  TAutoArgs<7> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = XBase /*[VT_R8:1]*/;
  _args[3] = YBase /*[VT_R8:1]*/;
  _args[4] = XLeft /*[VT_R8:1]*/;
  _args[5] = YLeft /*[VT_R8:1]*/;
  _args[6] = XRight /*[VT_R8:1]*/;
  _args[7] = YRight /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::GetPoint(long Index/*[in]*/, double* XBase/*[out]*/, double* YBase/*[out]*/, 
                          double* XLeft/*[out]*/, double* YLeft/*[out]*/, double* XRight/*[out]*/, 
                          double* YRight/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetPoint(Index, XBase, YBase, XLeft, YLeft, XRight, YRight, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeletePoint"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::DeletePoint(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeletePoint(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBezierDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBezierDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBezierDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBezierDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBezierDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBezierDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBezierDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBezierDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBezierDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBezierDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMacroObjects
// Interface: IMacroObjects
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMacroObjectsT<T>::get_MacroObject(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IMacroObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_MacroObject(Index, Result);
}

template <class T> Kompasltapi7_tlb::IMacroObjectPtr __fastcall
TCOMIMacroObjectsT<T>::get_MacroObject(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMacroObjectPtr Result;
  OLECHECK(this->get_MacroObject(Index, (Kompasltapi7_tlb::IMacroObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMacroObjectsT<T>::Add(TOLEBOOL MultyLayer/*[in,def,opt]*/, 
                           Kompasltapi7_tlb::IMacroObjectPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(MultyLayer, Value);
}

template <class T> Kompasltapi7_tlb::IMacroObjectPtr __fastcall
TCOMIMacroObjectsT<T>::Add(TOLEBOOL MultyLayer/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IMacroObjectPtr Value;
  OLECHECK(this->Add(MultyLayer, (Kompasltapi7_tlb::IMacroObjectPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IMacroObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5B3F5454-160A-4981-B093-890E9A719AE3}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get_MacroObject(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IMacroObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MacroObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMacroObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMacroObjectPtr __fastcall
IMacroObjectsDispT<T>::get_MacroObject(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMacroObjectPtr Result;
  this->get_MacroObject(Index, (Kompasltapi7_tlb::IMacroObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::Add(TOLEBOOL MultyLayer/*[in,def,opt]*/, 
                           Kompasltapi7_tlb::IMacroObjectPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = MultyLayer /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMacroObject**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMacroObjectPtr __fastcall
IMacroObjectsDispT<T>::Add(TOLEBOOL MultyLayer/*[in,def,opt]*/)
{
  Kompasltapi7_tlb::IMacroObjectPtr Value;
  this->Add(MultyLayer, (Kompasltapi7_tlb::IMacroObjectPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IMacroObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IMacroObjectsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMacroObjectsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMacroObjectsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMacroObjectsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMacroObjectsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMacroObjectsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMacroObjectsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILines
// Interface: ILines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILinesT<T>::get_Line(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Line(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILinePtr __fastcall
TCOMILinesT<T>::get_Line(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILinePtr Result;
  OLECHECK(this->get_Line(Index, (Kompasltapi7_tlb::ILinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILinesT<T>::Add(Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ILinePtr __fastcall
TCOMILinesT<T>::Add(void)
{
  Kompasltapi7_tlb::ILinePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ILinePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ILines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {889A9B9C-7533-4EC5-8E2C-5ECF8228B06F}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILinesDispT<T>::get_Line(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Line"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILinePtr __fastcall
ILinesDispT<T>::get_Line(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILinePtr Result;
  this->get_Line(Index, (Kompasltapi7_tlb::ILinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::Add(Kompasltapi7_tlb::ILinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILine**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILinePtr __fastcall
ILinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ILinePtr Result;
  this->Add((Kompasltapi7_tlb::ILinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ILinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILine
// Interface: ILine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILineT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMILineT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMILineT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMILineT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMILineT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMILineT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ILine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EA0DA9B-F2C0-40C4-BE36-7103509A9389}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILineDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ILineDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ILineDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPolyLines2D
// Interface: IPolyLines2D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPolyLines2DT<T>::get_PolyLine2D(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_PolyLine2D(Index, Result);
}

template <class T> Kompasltapi7_tlb::IPolyLine2DPtr __fastcall
TCOMIPolyLines2DT<T>::get_PolyLine2D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPolyLine2DPtr Result;
  OLECHECK(this->get_PolyLine2D(Index, (Kompasltapi7_tlb::IPolyLine2DPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLines2DT<T>::Add(Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IPolyLine2DPtr __fastcall
TCOMIPolyLines2DT<T>::Add(void)
{
  Kompasltapi7_tlb::IPolyLine2DPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IPolyLine2DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IPolyLines2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D1A9CB2D-A259-4CCC-9CD4-FA006494BCA7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get_PolyLine2D(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PolyLine2D"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPolyLine2D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPolyLine2DPtr __fastcall
IPolyLines2DDispT<T>::get_PolyLine2D(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IPolyLine2DPtr Result;
  this->get_PolyLine2D(Index, (Kompasltapi7_tlb::IPolyLine2DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::Add(Kompasltapi7_tlb::IPolyLine2DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IPolyLine2D**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IPolyLine2DPtr __fastcall
IPolyLines2DDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IPolyLine2DPtr Result;
  this->Add((Kompasltapi7_tlb::IPolyLine2DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IPolyLines2DDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IPolyLines2DDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLines2DDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPolyLines2DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPolyLines2DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPolyLines2DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLines2DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLines2DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIPolyLine2D
// Interface: IPolyLine2D
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Closed(Result);
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Closed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLine2DT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::get_PointsCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_PointsCount(Result);
}

template <class T> long __fastcall
TCOMIPolyLine2DT<T>::get_PointsCount(void)
{
  long Result;
  OLECHECK(this->get_PointsCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::set_Points(TVariantInParam Points/*[in]*/)
{
  return (*this)->set_Points(Points);
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::get_Points(TVariant* Points/*[out,retval]*/)
{
  return (*this)->get_Points(Points);
}

template <class T> TVariant __fastcall
TCOMIPolyLine2DT<T>::get_Points(void)
{
  TVariant Points;
  OLECHECK(this->get_Points((TVariant*)&Points));
  return Points;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                              TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->AddPoint(Index, X, Y, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLine2DT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->AddPoint(Index, X, Y, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                              TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetPoint(Index, X, Y, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLine2DT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetPoint(Index, X, Y, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeletePoint(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLine2DT<T>::DeletePoint(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeletePoint(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIPolyLine2DT<T>::Clear(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIPolyLine2DT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIPolyLine2DT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  IPolyLine2D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D0DA413-9507-4795-896F-E049FA6E44DD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  this->get_Closed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_PointsCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointsCount"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLine2DDispT<T>::get_PointsCount(void)
{
  long Result;
  this->get_PointsCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::set_Points(TVariantInParam Points/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Points /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Points(TVariant* Points/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Points /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPolyLine2DDispT<T>::get_Points(void)
{
  TVariant Points;
  this->get_Points((TVariant*)&Points);
  return Points;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                              TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddPoint"), DISPID(4));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL PVal;
  this->AddPoint(Index, X, Y, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                              TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPoint"), DISPID(5));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:1]*/;
  _args[3] = Y /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetPoint(Index, X, Y, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeletePoint"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::DeletePoint(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeletePoint(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLine2DDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IPolyLine2DDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLine2DDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPolyLine2DDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IPolyLine2DDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPolyLine2DDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPolyLine2DDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPolyLine2DDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPolyLine2DDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPolyLine2DDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMINurbses
// Interface: INurbses
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMINurbsesT<T>::get_Nurbs(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Nurbs(Index, Result);
}

template <class T> Kompasltapi7_tlb::INurbsPtr __fastcall
TCOMINurbsesT<T>::get_Nurbs(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::INurbsPtr Result;
  OLECHECK(this->get_Nurbs(Index, (Kompasltapi7_tlb::INurbsPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsesT<T>::Add(Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::INurbsPtr __fastcall
TCOMINurbsesT<T>::Add(void)
{
  Kompasltapi7_tlb::INurbsPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::INurbsPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsesT<T>::Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                          Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/)
{
  return (*this)->Convert(Curve, Result);
}

template <class T> Kompasltapi7_tlb::INurbsPtr __fastcall
TCOMINurbsesT<T>::Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/)
{
  Kompasltapi7_tlb::INurbsPtr Result;
  OLECHECK(this->Convert(Curve, (Kompasltapi7_tlb::INurbsPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  INurbses
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88ECED7C-181C-4D9F-84DE-44B2E360F278}
// *********************************************************************//
template <class T> HRESULT __fastcall
INurbsesDispT<T>::get_Nurbs(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Nurbs"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::INurbs**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::INurbsPtr __fastcall
INurbsesDispT<T>::get_Nurbs(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::INurbsPtr Result;
  this->get_Nurbs(Index, (Kompasltapi7_tlb::INurbsPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::Add(Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::INurbs**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::INurbsPtr __fastcall
INurbsesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::INurbsPtr Result;
  this->Add((Kompasltapi7_tlb::INurbsPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/, 
                          Kompasltapi7_tlb::INurbsPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Convert"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Curve /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::INurbs**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::INurbsPtr __fastcall
INurbsesDispT<T>::Convert(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/)
{
  Kompasltapi7_tlb::INurbsPtr Result;
  this->Convert(Curve, (Kompasltapi7_tlb::INurbsPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
INurbsesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
INurbsesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
INurbsesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
INurbsesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
INurbsesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMINurbs
// Interface: INurbs
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMINurbsT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Closed(Result);
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Closed(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Closed((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::set_Degree(long Result/*[in]*/)
{
  return (*this)->set_Degree(Result);
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::get_Degree(long* Result/*[out,retval]*/)
{
  return (*this)->get_Degree(Result);
}

template <class T> long __fastcall
TCOMINurbsT<T>::get_Degree(void)
{
  long Result;
  OLECHECK(this->get_Degree((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::get_Periodic(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Periodic(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::get_Periodic(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Periodic((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::get_PointsCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_PointsCount(Result);
}

template <class T> long __fastcall
TCOMINurbsT<T>::get_PointsCount(void)
{
  long Result;
  OLECHECK(this->get_PointsCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::SetNurbsParams(TVariantInParam Points/*[in]*/, TVariantInParam Weight/*[in]*/, 
                               TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                               TOLEBOOL Closed/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetNurbsParams(Points, Weight, Knots, Degree, Closed, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::SetNurbsParams(TVariantInParam Points/*[in]*/, TVariantInParam Weight/*[in]*/, 
                               TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                               TOLEBOOL Closed/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetNurbsParams(Points, Weight, Knots, Degree, Closed, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                               TVariant* Knots/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetNurbsParams(Points, Weight, Knots, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                               TVariant* Knots/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetNurbsParams(Points, Weight, Knots, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                         double Weight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->AddPoint(Index, X, Y, Weight, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                         double Weight/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->AddPoint(Index, X, Y, Weight, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                         double* Weight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->GetPoint(Index, X, Y, Weight, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                         double* Weight/*[out]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->GetPoint(Index, X, Y, Weight, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeletePoint(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::DeletePoint(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeletePoint(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMINurbsT<T>::Clear(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMINurbsT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMINurbsT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  INurbs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE1AB9F4-B127-4303-A30D-C3509F6D10CD}
// *********************************************************************//
template <class T> HRESULT __fastcall
INurbsDispT<T>::set_Closed(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Closed(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Closed"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::get_Closed(void)
{
  TOLEBOOL Result;
  this->get_Closed((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::set_Degree(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Degree"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Degree(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Degree"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsDispT<T>::get_Degree(void)
{
  long Result;
  this->get_Degree((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Periodic(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Periodic"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::get_Periodic(void)
{
  TOLEBOOL Result;
  this->get_Periodic((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_PointsCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PointsCount"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsDispT<T>::get_PointsCount(void)
{
  long Result;
  this->get_PointsCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::SetNurbsParams(TVariantInParam Points/*[in]*/, TVariantInParam Weight/*[in]*/, 
                               TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                               TOLEBOOL Closed/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetNurbsParams"), DISPID(5));
  TAutoArgs<5> _args;
  _args[1] = Points /*[VT_VARIANT:0]*/;
  _args[2] = Weight /*[VT_VARIANT:0]*/;
  _args[3] = Knots /*[VT_VARIANT:0]*/;
  _args[4] = Degree /*[VT_I4:0]*/;
  _args[5] = Closed /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::SetNurbsParams(TVariantInParam Points/*[in]*/, TVariantInParam Weight/*[in]*/, 
                               TVariantInParam Knots/*[in]*/, long Degree/*[in]*/, 
                               TOLEBOOL Closed/*[in]*/)
{
  TOLEBOOL Result;
  this->SetNurbsParams(Points, Weight, Knots, Degree, Closed, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                               TVariant* Knots/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNurbsParams"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = Points /*[VT_VARIANT:1]*/;
  _args[2] = Weight /*[VT_VARIANT:1]*/;
  _args[3] = Knots /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::GetNurbsParams(TVariant* Points/*[out]*/, TVariant* Weight/*[out]*/, 
                               TVariant* Knots/*[out]*/)
{
  TOLEBOOL Result;
  this->GetNurbsParams(Points, Weight, Knots, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                         double Weight/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddPoint"), DISPID(7));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  _args[4] = Weight /*[VT_R8:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::AddPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                         double Weight/*[in]*/)
{
  TOLEBOOL PVal;
  this->AddPoint(Index, X, Y, Weight, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                         double* Weight/*[out]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPoint"), DISPID(8));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:1]*/;
  _args[3] = Y /*[VT_R8:1]*/;
  _args[4] = Weight /*[VT_R8:1]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::GetPoint(long Index/*[in]*/, double* X/*[out]*/, double* Y/*[out]*/, 
                         double* Weight/*[out]*/)
{
  TOLEBOOL PVal;
  this->GetPoint(Index, X, Y, Weight, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::DeletePoint(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeletePoint"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::DeletePoint(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeletePoint(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
INurbsDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
INurbsDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
INurbsDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
INurbsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
INurbsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
INurbsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
INurbsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
INurbsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRasters
// Interface: IRasters
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRastersT<T>::get_Raster(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Raster(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRasterPtr __fastcall
TCOMIRastersT<T>::get_Raster(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRasterPtr Result;
  OLECHECK(this->get_Raster(Index, (Kompasltapi7_tlb::IRasterPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRastersT<T>::Add(Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IRasterPtr __fastcall
TCOMIRastersT<T>::Add(void)
{
  Kompasltapi7_tlb::IRasterPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRasterPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRasters
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C6E4E32D-E077-4B14-B9DE-041BD628C38C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRastersDispT<T>::get_Raster(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Raster"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRaster**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRasterPtr __fastcall
IRastersDispT<T>::get_Raster(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRasterPtr Result;
  this->get_Raster(Index, (Kompasltapi7_tlb::IRasterPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::Add(Kompasltapi7_tlb::IRasterPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRaster**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRasterPtr __fastcall
IRastersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRasterPtr Result;
  this->Add((Kompasltapi7_tlb::IRasterPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRastersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRastersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRastersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRastersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRastersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRastersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRastersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRastersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRaster
// Interface: IRaster
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRasterT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                              TOLEBOOL* MirrorSymmetry/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPlacement(X, Y, Angle, MirrorSymmetry, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRasterT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                              TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                              TOLEBOOL MirrorSymmetry/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPlacement(X, Y, Angle, MirrorSymmetry, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRasterT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                              TOLEBOOL MirrorSymmetry/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::set_Scale(double PVal/*[in]*/)
{
  return (*this)->set_Scale(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Scale(PVal);
}

template <class T> double __fastcall
TCOMIRasterT<T>::get_Scale(void)
{
  double PVal;
  OLECHECK(this->get_Scale((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::set_FileName(BSTR PVal/*[in]*/)
{
  return (*this)->set_FileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIRasterT<T>::get_FileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::set_InsertionType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_InsertionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_InsertionType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIRasterT<T>::get_InsertionType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_InsertionType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::set_Resolution(double PVal/*[in]*/)
{
  return (*this)->set_Resolution(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_Resolution(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Resolution(PVal);
}

template <class T> double __fastcall
TCOMIRasterT<T>::get_Resolution(void)
{
  double PVal;
  OLECHECK(this->get_Resolution((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::set_DisplayModePartial(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DisplayModePartial(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_DisplayModePartial(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DisplayModePartial(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIRasterT<T>::get_DisplayModePartial(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DisplayModePartial((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Height(PVal);
}

template <class T> double __fastcall
TCOMIRasterT<T>::get_Height(void)
{
  double PVal;
  OLECHECK(this->get_Height((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::set_Height(double PVal/*[in]*/)
{
  return (*this)->set_Height(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> double __fastcall
TCOMIRasterT<T>::get_Width(void)
{
  double PVal;
  OLECHECK(this->get_Width((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::set_Width(double PVal/*[in]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_SourceHeight(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SourceHeight(PVal);
}

template <class T> double __fastcall
TCOMIRasterT<T>::get_SourceHeight(void)
{
  double PVal;
  OLECHECK(this->get_SourceHeight((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_SourceWidth(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SourceWidth(PVal);
}

template <class T> double __fastcall
TCOMIRasterT<T>::get_SourceWidth(void)
{
  double PVal;
  OLECHECK(this->get_SourceWidth((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_Palette(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Palette(PVal);
}

template <class T> long __fastcall
TCOMIRasterT<T>::get_Palette(void)
{
  long PVal;
  OLECHECK(this->get_Palette((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_IsEnableChangeResolution(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_IsEnableChangeResolution(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIRasterT<T>::get_IsEnableChangeResolution(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_IsEnableChangeResolution((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRasterT<T>::get_IsCutBoundarySet(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_IsCutBoundarySet(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIRasterT<T>::get_IsCutBoundarySet(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_IsCutBoundarySet((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IRaster
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DEED8D7B-404B-4F17-B42A-2F5E64818D0A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRasterDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                              TOLEBOOL* MirrorSymmetry/*[out]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPlacement"), DISPID(1));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Angle /*[VT_R8:1]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                              TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                              TOLEBOOL MirrorSymmetry/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPlacement"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                              TOLEBOOL MirrorSymmetry/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRasterDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_FileName(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IRasterDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_InsertionType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::get_InsertionType(void)
{
  TOLEBOOL PVal;
  this->get_InsertionType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_Resolution(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Resolution"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Resolution(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Resolution"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRasterDispT<T>::get_Resolution(void)
{
  double PVal;
  this->get_Resolution((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_DisplayModePartial(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayModePartial"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_DisplayModePartial(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DisplayModePartial"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::get_DisplayModePartial(void)
{
  TOLEBOOL PVal;
  this->get_DisplayModePartial((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRasterDispT<T>::get_Height(void)
{
  double PVal;
  this->get_Height((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_Height(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRasterDispT<T>::get_Width(void)
{
  double PVal;
  this->get_Width((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_Width(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_SourceHeight(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceHeight"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRasterDispT<T>::get_SourceHeight(void)
{
  double PVal;
  this->get_SourceHeight((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_SourceWidth(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SourceWidth"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRasterDispT<T>::get_SourceWidth(void)
{
  double PVal;
  this->get_SourceWidth((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Palette(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Palette"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRasterDispT<T>::get_Palette(void)
{
  long PVal;
  this->get_Palette((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_IsEnableChangeResolution(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsEnableChangeResolution"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::get_IsEnableChangeResolution(void)
{
  TOLEBOOL PVal;
  this->get_IsEnableChangeResolution((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_IsCutBoundarySet(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IsCutBoundarySet"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::get_IsCutBoundarySet(void)
{
  TOLEBOOL PVal;
  this->get_IsCutBoundarySet((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IRasterDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRasterDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRasterDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IRasterDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRasterDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRasterDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRasterDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRasterDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRasterDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIOleDrawingObjects
// Interface: IOleDrawingObjects
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectsT<T>::get_OleDrawingObject(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_OleDrawingObject(Index, Result);
}

template <class T> Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall
TCOMIOleDrawingObjectsT<T>::get_OleDrawingObject(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IOleDrawingObjectPtr Result;
  OLECHECK(this->get_OleDrawingObject(Index, (Kompasltapi7_tlb::IOleDrawingObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectsT<T>::Add(Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall
TCOMIOleDrawingObjectsT<T>::Add(void)
{
  Kompasltapi7_tlb::IOleDrawingObjectPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IOleDrawingObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IOleDrawingObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E7A8DD07-CD6B-45A6-B6AF-155A674BC7E4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get_OleDrawingObject(TVariantInParam Index/*[in]*/, 
                                                 Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OleDrawingObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IOleDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall
IOleDrawingObjectsDispT<T>::get_OleDrawingObject(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IOleDrawingObjectPtr Result;
  this->get_OleDrawingObject(Index, (Kompasltapi7_tlb::IOleDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::Add(Kompasltapi7_tlb::IOleDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IOleDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IOleDrawingObjectPtr __fastcall
IOleDrawingObjectsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IOleDrawingObjectPtr Result;
  this->Add((Kompasltapi7_tlb::IOleDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IOleDrawingObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IOleDrawingObjectsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IOleDrawingObjectsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IOleDrawingObjectsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IOleDrawingObjectsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IOleDrawingObjectsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IOleDrawingObjectsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIOleDrawingObject
// Interface: IOleDrawingObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                        double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetPlacement(X, Y, Angle, MirrorSymmetry, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIOleDrawingObjectT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                        double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                        TOLEBOOL MirrorSymmetry/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetPlacement(X, Y, Angle, MirrorSymmetry, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIOleDrawingObjectT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                        TOLEBOOL MirrorSymmetry/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::set_Scale(double PVal/*[in]*/)
{
  return (*this)->set_Scale(PVal);
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Scale(PVal);
}

template <class T> double __fastcall
TCOMIOleDrawingObjectT<T>::get_Scale(void)
{
  double PVal;
  OLECHECK(this->get_Scale((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::set_ClassId(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_ClassId(PVal);
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::get_ClassId(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ClassId(PVal);
}

template <class T> BSTR __fastcall
TCOMIOleDrawingObjectT<T>::get_ClassId(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ClassId((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::set_FileName(BSTR PVal/*[in,def,opt]*/)
{
  return (*this)->set_FileName(PVal);
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_FileName(PVal);
}

template <class T> BSTR __fastcall
TCOMIOleDrawingObjectT<T>::get_FileName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_FileName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::set_Link(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Link(PVal);
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::get_Link(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Link(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIOleDrawingObjectT<T>::get_Link(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Link((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::set_InsertionType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_InsertionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_InsertionType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIOleDrawingObjectT<T>::get_InsertionType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_InsertionType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::DoVerb(long iVerb/*[in]*/, LPDISPATCH* Result/*[out,retval]*/)
{
  return (*this)->DoVerb(iVerb, Result);
}

template <class T> LPDISPATCH __fastcall
TCOMIOleDrawingObjectT<T>::DoVerb(long iVerb/*[in]*/)
{
  LPDISPATCH Result;
  OLECHECK(this->DoVerb(iVerb, (LPDISPATCH*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIOleDrawingObjectT<T>::Close(TOLEBOOL Save/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Close(Save, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIOleDrawingObjectT<T>::Close(TOLEBOOL Save/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->Close(Save, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IOleDrawingObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9A0ECE23-7B60-44E0-9728-C56CAAA455A2}
// *********************************************************************//
template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                        double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPlacement"), DISPID(1));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Angle /*[VT_R8:1]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                        double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                        TOLEBOOL MirrorSymmetry/*[in]*/, 
                                        TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPlacement"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                        TOLEBOOL MirrorSymmetry/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IOleDrawingObjectDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::set_ClassId(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClassId"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_ClassId(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClassId"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IOleDrawingObjectDispT<T>::get_ClassId(void)
{
  BSTR PVal;
  this->get_ClassId((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::set_FileName(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IOleDrawingObjectDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::set_Link(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Link"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Link(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Link"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::get_Link(void)
{
  TOLEBOOL PVal;
  this->get_Link((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::set_InsertionType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_InsertionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::get_InsertionType(void)
{
  TOLEBOOL PVal;
  this->get_InsertionType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::DoVerb(long iVerb/*[in]*/, LPDISPATCH* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoVerb"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = iVerb /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IOleDrawingObjectDispT<T>::DoVerb(long iVerb/*[in]*/)
{
  LPDISPATCH Result;
  this->DoVerb(iVerb, (LPDISPATCH*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::Close(TOLEBOOL Save/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Close"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Save /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::Close(TOLEBOOL Save/*[in]*/)
{
  TOLEBOOL Result;
  this->Close(Save, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IOleDrawingObjectDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IOleDrawingObjectDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IOleDrawingObjectDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IOleDrawingObjectDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IOleDrawingObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IOleDrawingObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IOleDrawingObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IOleDrawingObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IOleDrawingObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEllipses
// Interface: IEllipses
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEllipsesT<T>::get_Ellipse(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Ellipse(Index, Result);
}

template <class T> Kompasltapi7_tlb::IEllipsePtr __fastcall
TCOMIEllipsesT<T>::get_Ellipse(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEllipsePtr Result;
  OLECHECK(this->get_Ellipse(Index, (Kompasltapi7_tlb::IEllipsePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEllipsesT<T>::Add(Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IEllipsePtr __fastcall
TCOMIEllipsesT<T>::Add(void)
{
  Kompasltapi7_tlb::IEllipsePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IEllipsePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IEllipses
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {47633C44-93BB-4F41-A6CA-4F8CCAEA0659}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get_Ellipse(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Ellipse"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEllipse**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEllipsePtr __fastcall
IEllipsesDispT<T>::get_Ellipse(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEllipsePtr Result;
  this->get_Ellipse(Index, (Kompasltapi7_tlb::IEllipsePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::Add(Kompasltapi7_tlb::IEllipsePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEllipse**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEllipsePtr __fastcall
IEllipsesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IEllipsePtr Result;
  this->Add((Kompasltapi7_tlb::IEllipsePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IEllipsesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IEllipsesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipsesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEllipsesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEllipsesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEllipsesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipsesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipsesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEllipse
// Interface: IEllipse
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_SemiAxisA(double PVal/*[in]*/)
{
  return (*this)->set_SemiAxisA(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_SemiAxisA(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SemiAxisA(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_SemiAxisA(void)
{
  double PVal;
  OLECHECK(this->get_SemiAxisA((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_SemiAxisB(double PVal/*[in]*/)
{
  return (*this)->set_SemiAxisB(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_SemiAxisB(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SemiAxisB(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_SemiAxisB(void)
{
  double PVal;
  OLECHECK(this->get_SemiAxisB((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIEllipseT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIEllipseT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEllipseT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  IEllipse
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F60C9107-D8E2-433C-A0E3-A4E508D09353}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_SemiAxisA(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisA"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_SemiAxisA(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisA"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_SemiAxisA(void)
{
  double PVal;
  this->get_SemiAxisA((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_SemiAxisB(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisB"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_SemiAxisB(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisB"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_SemiAxisB(void)
{
  double PVal;
  this->get_SemiAxisB((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IEllipseDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IEllipseDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEllipseDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEllipseDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEllipseDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEllipseArcs
// Interface: IEllipseArcs
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEllipseArcsT<T>::get_EllipseArc(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/)
{
  return (*this)->get_EllipseArc(Index, Result);
}

template <class T> Kompasltapi7_tlb::IEllipseArcPtr __fastcall
TCOMIEllipseArcsT<T>::get_EllipseArc(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEllipseArcPtr Result;
  OLECHECK(this->get_EllipseArc(Index, (Kompasltapi7_tlb::IEllipseArcPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcsT<T>::Add(Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IEllipseArcPtr __fastcall
TCOMIEllipseArcsT<T>::Add(void)
{
  Kompasltapi7_tlb::IEllipseArcPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IEllipseArcPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IEllipseArcs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CC5B7FCB-B887-4A47-AE6B-2522DFA24433}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get_EllipseArc(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EllipseArc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEllipseArc**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEllipseArcPtr __fastcall
IEllipseArcsDispT<T>::get_EllipseArc(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEllipseArcPtr Result;
  this->get_EllipseArc(Index, (Kompasltapi7_tlb::IEllipseArcPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::Add(Kompasltapi7_tlb::IEllipseArcPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEllipseArc**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEllipseArcPtr __fastcall
IEllipseArcsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IEllipseArcPtr Result;
  this->Add((Kompasltapi7_tlb::IEllipseArcPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IEllipseArcsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IEllipseArcsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseArcsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEllipseArcsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEllipseArcsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEllipseArcsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseArcsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseArcsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEllipseArc
// Interface: IEllipseArc
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_T1(double PVal/*[in]*/)
{
  return (*this)->set_T1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_T1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_T1(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_T1(void)
{
  double PVal;
  OLECHECK(this->get_T1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_T2(double PVal/*[in]*/)
{
  return (*this)->set_T2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_T2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_T2(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_T2(void)
{
  double PVal;
  OLECHECK(this->get_T2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_Angle1(double PVal/*[in]*/)
{
  return (*this)->set_Angle1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle1(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_Angle1(void)
{
  double PVal;
  OLECHECK(this->get_Angle1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_Angle2(double PVal/*[in]*/)
{
  return (*this)->set_Angle2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle2(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_Angle2(void)
{
  double PVal;
  OLECHECK(this->get_Angle2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_SemiAxisA(double PVal/*[in]*/)
{
  return (*this)->set_SemiAxisA(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_SemiAxisA(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SemiAxisA(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_SemiAxisA(void)
{
  double PVal;
  OLECHECK(this->get_SemiAxisA((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_SemiAxisB(double PVal/*[in]*/)
{
  return (*this)->set_SemiAxisB(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_SemiAxisB(double* PVal/*[out,retval]*/)
{
  return (*this)->get_SemiAxisB(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_SemiAxisB(void)
{
  double PVal;
  OLECHECK(this->get_SemiAxisB((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIEllipseArcT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIEllipseArcT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIEllipseArcT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEllipseArcT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  IEllipseArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {320D837F-0B27-45B0-98B4-9D21156E9857}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_T1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("T1"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_T1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("T1"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_T1(void)
{
  double PVal;
  this->get_T1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_T2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("T2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_T2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("T2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_T2(void)
{
  double PVal;
  this->get_T2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_Angle1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_Angle1(void)
{
  double PVal;
  this->get_Angle1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_SemiAxisA(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisA"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_SemiAxisA(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisA"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_SemiAxisA(void)
{
  double PVal;
  this->get_SemiAxisA((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_SemiAxisB(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisB"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_SemiAxisB(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisB"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_SemiAxisB(void)
{
  double PVal;
  this->get_SemiAxisB((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEllipseArcDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseArcDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseArcDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IEllipseArcDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseArcDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseArcDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseArcDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseArcDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEllipseArcDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IEllipseArcDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEllipseArcDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEllipseArcDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEllipseArcDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEllipseArcDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEllipseArcDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRectangles
// Interface: IRectangles
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRectanglesT<T>::get_Rectangle(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Rectangle(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRectanglePtr __fastcall
TCOMIRectanglesT<T>::get_Rectangle(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRectanglePtr Result;
  OLECHECK(this->get_Rectangle(Index, (Kompasltapi7_tlb::IRectanglePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRectanglesT<T>::Add(Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IRectanglePtr __fastcall
TCOMIRectanglesT<T>::Add(void)
{
  Kompasltapi7_tlb::IRectanglePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRectanglePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRectangles
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D6BC2EE9-249F-4961-89A7-88DA854F35FE}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get_Rectangle(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rectangle"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRectangle**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRectanglePtr __fastcall
IRectanglesDispT<T>::get_Rectangle(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRectanglePtr Result;
  this->get_Rectangle(Index, (Kompasltapi7_tlb::IRectanglePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::Add(Kompasltapi7_tlb::IRectanglePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRectangle**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRectanglePtr __fastcall
IRectanglesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRectanglePtr Result;
  this->Add((Kompasltapi7_tlb::IRectanglePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRectanglesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRectanglesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRectanglesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRectanglesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRectanglesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRectanglesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRectanglesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRectanglesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRectangle
// Interface: IRectangle
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMIRectangleT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMIRectangleT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIRectangleT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::set_Height(double PVal/*[in]*/)
{
  return (*this)->set_Height(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Height(PVal);
}

template <class T> double __fastcall
TCOMIRectangleT<T>::get_Height(void)
{
  double PVal;
  OLECHECK(this->get_Height((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::set_Width(double PVal/*[in]*/)
{
  return (*this)->set_Width(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Width(PVal);
}

template <class T> double __fastcall
TCOMIRectangleT<T>::get_Width(void)
{
  double PVal;
  OLECHECK(this->get_Width((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIRectangleT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::GetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum* Type/*[out]*/, 
                              double* L1/*[out]*/, double* L2/*[out]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetCorner(Index, Type, L1, L2, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRectangleT<T>::GetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum* Type/*[out]*/, 
                              double* L1/*[out]*/, double* L2/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRectangleT<T>::SetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum Type/*[in]*/, double L1/*[in]*/, 
                              double L2/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCorner(Index, Type, L1, L2, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRectangleT<T>::SetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum Type/*[in]*/, double L1/*[in]*/, 
                              double L2/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRectangle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42F9FC58-FEA0-4E52-A604-1A00985AB772}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRectangleDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRectangleDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRectangleDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_Height(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Height(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRectangleDispT<T>::get_Height(void)
{
  double PVal;
  this->get_Height((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_Width(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Width(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRectangleDispT<T>::get_Width(void)
{
  double PVal;
  this->get_Width((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRectangleDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::GetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum* Type/*[out]*/, 
                              double* L1/*[out]*/, double* L2/*[out]*/, 
                              TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCorner"), DISPID(7));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = (int*)Type /*[VT_USERDEFINED:1]*/;
  _args[3] = L1 /*[VT_R8:1]*/;
  _args[4] = L2 /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRectangleDispT<T>::GetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum* Type/*[out]*/, 
                              double* L1/*[out]*/, double* L2/*[out]*/)
{
  TOLEBOOL Result;
  this->GetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::SetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum Type/*[in]*/, double L1/*[in]*/
                              , double L2/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCorner"), DISPID(8));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[3] = L1 /*[VT_R8:0]*/;
  _args[4] = L2 /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRectangleDispT<T>::SetCorner(long Index/*[in]*/, 
                              ksCornerTypeEnum Type/*[in]*/, double L1/*[in]*/, 
                              double L2/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IRectangleDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRectangleDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRectangleDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRectangleDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRectangleDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRectangleDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IRectangleDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRectangleDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRectangleDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRectangleDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRectangleDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRectangleDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRegularPolygons
// Interface: IRegularPolygons
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRegularPolygonsT<T>::get_RegularPolygon(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/)
{
  return (*this)->get_RegularPolygon(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRegularPolygonPtr __fastcall
TCOMIRegularPolygonsT<T>::get_RegularPolygon(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRegularPolygonPtr Result;
  OLECHECK(this->get_RegularPolygon(Index, (Kompasltapi7_tlb::IRegularPolygonPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonsT<T>::Add(Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IRegularPolygonPtr __fastcall
TCOMIRegularPolygonsT<T>::Add(void)
{
  Kompasltapi7_tlb::IRegularPolygonPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRegularPolygonPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRegularPolygons
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {80377CB2-073E-4C38-8532-C42A078BA719}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get_RegularPolygon(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RegularPolygon"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRegularPolygon**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRegularPolygonPtr __fastcall
IRegularPolygonsDispT<T>::get_RegularPolygon(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRegularPolygonPtr Result;
  this->get_RegularPolygon(Index, (Kompasltapi7_tlb::IRegularPolygonPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::Add(Kompasltapi7_tlb::IRegularPolygonPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRegularPolygon**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRegularPolygonPtr __fastcall
IRegularPolygonsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRegularPolygonPtr Result;
  this->Add((Kompasltapi7_tlb::IRegularPolygonPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRegularPolygonsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRegularPolygonsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRegularPolygonsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRegularPolygonsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRegularPolygonsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRegularPolygonsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRegularPolygonsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRegularPolygonsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRegularPolygon
// Interface: IRegularPolygon
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::set_Count(long PVal/*[in]*/)
{
  return (*this)->set_Count(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Count(PVal);
}

template <class T> long __fastcall
TCOMIRegularPolygonT<T>::get_Count(void)
{
  long PVal;
  OLECHECK(this->get_Count((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIRegularPolygonT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIRegularPolygonT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIRegularPolygonT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIRegularPolygonT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::set_Describe(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Describe(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::get_Describe(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Describe(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIRegularPolygonT<T>::get_Describe(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Describe((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIRegularPolygonT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::GetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum* Type/*[out]*/, 
                                   double* L1/*[out]*/, double* L2/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetCorner(Index, Type, L1, L2, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRegularPolygonT<T>::GetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum* Type/*[out]*/, 
                                   double* L1/*[out]*/, double* L2/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRegularPolygonT<T>::SetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum Type/*[in]*/, 
                                   double L1/*[in]*/, double L2/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetCorner(Index, Type, L1, L2, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRegularPolygonT<T>::SetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum Type/*[in]*/, 
                                   double L1/*[in]*/, double L2/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRegularPolygon
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {51968648-F264-4904-A07F-653676AE1D35}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_Count(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRegularPolygonDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRegularPolygonDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRegularPolygonDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRegularPolygonDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRegularPolygonDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_Describe(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Describe"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Describe(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Describe"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRegularPolygonDispT<T>::get_Describe(void)
{
  TOLEBOOL PVal;
  this->get_Describe((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRegularPolygonDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::GetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum* Type/*[out]*/, 
                                   double* L1/*[out]*/, double* L2/*[out]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetCorner"), DISPID(8));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = (int*)Type /*[VT_USERDEFINED:1]*/;
  _args[3] = L1 /*[VT_R8:1]*/;
  _args[4] = L2 /*[VT_R8:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRegularPolygonDispT<T>::GetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum* Type/*[out]*/, 
                                   double* L1/*[out]*/, double* L2/*[out]*/)
{
  TOLEBOOL Result;
  this->GetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::SetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum Type/*[in]*/, 
                                   double L1/*[in]*/, double L2/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetCorner"), DISPID(9));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[3] = L1 /*[VT_R8:0]*/;
  _args[4] = L2 /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRegularPolygonDispT<T>::SetCorner(long Index/*[in]*/, 
                                   ksCornerTypeEnum Type/*[in]*/, 
                                   double L1/*[in]*/, double L2/*[in]*/)
{
  TOLEBOOL Result;
  this->SetCorner(Index, Type, L1, L2, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IRegularPolygonDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRegularPolygonDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRegularPolygonDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRegularPolygonDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRegularPolygonDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRegularPolygonDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IRegularPolygonDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRegularPolygonDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRegularPolygonDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRegularPolygonDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRegularPolygonDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRegularPolygonDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEquidistants
// Interface: IEquidistants
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEquidistantsT<T>::get_Equidistant(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Equidistant(Index, Result);
}

template <class T> Kompasltapi7_tlb::IEquidistantPtr __fastcall
TCOMIEquidistantsT<T>::get_Equidistant(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEquidistantPtr Result;
  OLECHECK(this->get_Equidistant(Index, (Kompasltapi7_tlb::IEquidistantPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantsT<T>::Add(Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IEquidistantPtr __fastcall
TCOMIEquidistantsT<T>::Add(void)
{
  Kompasltapi7_tlb::IEquidistantPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IEquidistantPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IEquidistants
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {86182E5E-8FA3-4283-9DC5-43D1673C80DA}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get_Equidistant(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Equidistant"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEquidistant**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEquidistantPtr __fastcall
IEquidistantsDispT<T>::get_Equidistant(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IEquidistantPtr Result;
  this->get_Equidistant(Index, (Kompasltapi7_tlb::IEquidistantPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::Add(Kompasltapi7_tlb::IEquidistantPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IEquidistant**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IEquidistantPtr __fastcall
IEquidistantsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IEquidistantPtr Result;
  this->Add((Kompasltapi7_tlb::IEquidistantPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IEquidistantsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IEquidistantsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistantsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEquidistantsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEquidistantsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEquidistantsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistantsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistantsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIEquidistant
// Interface: IEquidistant
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Result);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIEquidistantT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  return (*this)->set_BaseObject(Result);
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::set_Side(ksEquidistantTypeEnum PVal/*[in]*/)
{
  return (*this)->set_Side(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::get_Side(ksEquidistantTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Side(PVal);
}

template <class T> ksEquidistantTypeEnum __fastcall
TCOMIEquidistantT<T>::get_Side(void)
{
  ksEquidistantTypeEnum PVal;
  OLECHECK(this->get_Side((ksEquidistantTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::set_CutMode(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CutMode(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::get_CutMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CutMode(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIEquidistantT<T>::get_CutMode(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CutMode((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::set_DegenerateSegment(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DegenerateSegment(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::get_DegenerateSegment(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DegenerateSegment(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIEquidistantT<T>::get_DegenerateSegment(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DegenerateSegment((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::set_LeftRadius(double PVal/*[in]*/)
{
  return (*this)->set_LeftRadius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::get_LeftRadius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_LeftRadius(PVal);
}

template <class T> double __fastcall
TCOMIEquidistantT<T>::get_LeftRadius(void)
{
  double PVal;
  OLECHECK(this->get_LeftRadius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::set_RightRadius(double PVal/*[in]*/)
{
  return (*this)->set_RightRadius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::get_RightRadius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_RightRadius(PVal);
}

template <class T> double __fastcall
TCOMIEquidistantT<T>::get_RightRadius(void)
{
  double PVal;
  OLECHECK(this->get_RightRadius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIEquidistantT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIEquidistantT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

// *********************************************************************//
// DispIntf:  IEquidistant
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EE6713F9-AD9A-466D-9FB9-D19235E42C95}
// *********************************************************************//
template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IEquidistantDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_Side(ksEquidistantTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Side"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Side(ksEquidistantTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Side"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksEquidistantTypeEnum __fastcall
IEquidistantDispT<T>::get_Side(void)
{
  ksEquidistantTypeEnum PVal;
  this->get_Side((ksEquidistantTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_CutMode(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutMode"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_CutMode(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutMode"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistantDispT<T>::get_CutMode(void)
{
  TOLEBOOL PVal;
  this->get_CutMode((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_DegenerateSegment(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DegenerateSegment"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_DegenerateSegment(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DegenerateSegment"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistantDispT<T>::get_DegenerateSegment(void)
{
  TOLEBOOL PVal;
  this->get_DegenerateSegment((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_LeftRadius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftRadius"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_LeftRadius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeftRadius"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEquidistantDispT<T>::get_LeftRadius(void)
{
  double PVal;
  this->get_LeftRadius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_RightRadius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightRadius"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_RightRadius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RightRadius"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IEquidistantDispT<T>::get_RightRadius(void)
{
  double PVal;
  this->get_RightRadius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistantDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IEquidistantDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistantDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistantDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistantDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistantDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IEquidistantDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IEquidistantDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IEquidistantDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IEquidistantDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IEquidistantDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IEquidistantDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IEquidistantDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIInsertionObjects
// Interface: IInsertionObjects
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertionObjectsT<T>::get_InsertionObject(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_InsertionObject(Index, Result);
}

template <class T> Kompasltapi7_tlb::IInsertionObjectPtr __fastcall
TCOMIInsertionObjectsT<T>::get_InsertionObject(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IInsertionObjectPtr Result;
  OLECHECK(this->get_InsertionObject(Index, (Kompasltapi7_tlb::IInsertionObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIInsertionObjectsT<T>::Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/, 
                               Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Definition, Result);
}

template <class T> Kompasltapi7_tlb::IInsertionObjectPtr __fastcall
TCOMIInsertionObjectsT<T>::Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/)
{
  Kompasltapi7_tlb::IInsertionObjectPtr Result;
  OLECHECK(this->Add(Definition, (Kompasltapi7_tlb::IInsertionObjectPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IInsertionObjects
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C485550B-29E3-4F2A-A85C-C2795E0F1F86}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get_InsertionObject(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionObjectPtr __fastcall
IInsertionObjectsDispT<T>::get_InsertionObject(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IInsertionObjectPtr Result;
  this->get_InsertionObject(Index, (Kompasltapi7_tlb::IInsertionObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/, 
                               Kompasltapi7_tlb::IInsertionObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsertionDefinition*)Definition /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionObjectPtr __fastcall
IInsertionObjectsDispT<T>::Add(Kompasltapi7_tlb::IInsertionDefinitionPtr Definition/*[in]*/)
{
  Kompasltapi7_tlb::IInsertionObjectPtr Result;
  this->Add(Definition, (Kompasltapi7_tlb::IInsertionObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IInsertionObjectsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IInsertionObjectsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionObjectsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertionObjectsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertionObjectsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertionObjectsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionObjectsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionObjectsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsertionObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B9E9CE68-371D-4600-9233-84D89A015C55}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                       double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPlacement"), DISPID(1));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Angle /*[VT_R8:1]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionObjectDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                       double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                       TOLEBOOL MirrorSymmetry/*[in]*/, 
                                       TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPlacement"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionObjectDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                       TOLEBOOL MirrorSymmetry/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionObjectDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionObjectDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_InsertionType(ksInsertionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksInsertionTypeEnum __fastcall
IInsertionObjectDispT<T>::get_InsertionType(void)
{
  ksInsertionTypeEnum PVal;
  this->get_InsertionType((ksInsertionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionObjectDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionDefinition**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall
IInsertionObjectDispT<T>::get_InsertionDefinition(void)
{
  Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
  this->get_InsertionDefinition((Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsertionDefinition*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IInsertionObjectDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionObjectDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionObjectDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionObjectDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionObjectDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionObjectDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IInsertionObjectDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertionObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertionObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertionObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIHatches
// Interface: IHatches
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIHatchesT<T>::get_Hatch(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Hatch(Index, Result);
}

template <class T> Kompasltapi7_tlb::IHatchPtr __fastcall
TCOMIHatchesT<T>::get_Hatch(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IHatchPtr Result;
  OLECHECK(this->get_Hatch(Index, (Kompasltapi7_tlb::IHatchPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIHatchesT<T>::Add(Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IHatchPtr __fastcall
TCOMIHatchesT<T>::Add(void)
{
  Kompasltapi7_tlb::IHatchPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IHatchPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IHatches
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B7E776B0-9524-4254-9D1F-0CF8E0314A1B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IHatchesDispT<T>::get_Hatch(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hatch"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IHatch**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IHatchPtr __fastcall
IHatchesDispT<T>::get_Hatch(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IHatchPtr Result;
  this->get_Hatch(Index, (Kompasltapi7_tlb::IHatchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::Add(Kompasltapi7_tlb::IHatchPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IHatch**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IHatchPtr __fastcall
IHatchesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IHatchPtr Result;
  this->Add((Kompasltapi7_tlb::IHatchPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IHatchesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IHatchesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHatchesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IHatchesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IHatchesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IHatchesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHatchesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHatchesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIHatch
// Interface: IHatch
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIHatchT<T>::get_X(double* Result/*[out,retval]*/)
{
  return (*this)->get_X(Result);
}

template <class T> double __fastcall
TCOMIHatchT<T>::get_X(void)
{
  double Result;
  OLECHECK(this->get_X((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIHatchT<T>::set_X(double Result/*[in]*/)
{
  return (*this)->set_X(Result);
}

template <class T> HRESULT __fastcall
TCOMIHatchT<T>::get_Y(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y(Result);
}

template <class T> double __fastcall
TCOMIHatchT<T>::get_Y(void)
{
  double Result;
  OLECHECK(this->get_Y((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIHatchT<T>::set_Y(double Result/*[in]*/)
{
  return (*this)->set_Y(Result);
}

template <class T> HRESULT __fastcall
TCOMIHatchT<T>::get_Side(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Side(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIHatchT<T>::get_Side(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Side((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIHatchT<T>::set_Side(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Side(Result);
}

// *********************************************************************//
// DispIntf:  IHatch
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {826C0B5B-0146-417A-8128-E581F8430F37}
// *********************************************************************//
template <class T> HRESULT __fastcall
IHatchDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHatchDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHatchDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Side(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Side"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHatchDispT<T>::get_Side(void)
{
  TOLEBOOL Result;
  this->get_Side((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::set_Side(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Side"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IHatchDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHatchDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHatchDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHatchDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHatchDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHatchDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IHatchDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IHatchDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IHatchDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IHatchDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHatchDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHatchDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIColourings
// Interface: IColourings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIColouringsT<T>::get_Colouring(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Colouring(Index, Result);
}

template <class T> Kompasltapi7_tlb::IColouringPtr __fastcall
TCOMIColouringsT<T>::get_Colouring(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IColouringPtr Result;
  OLECHECK(this->get_Colouring(Index, (Kompasltapi7_tlb::IColouringPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringsT<T>::Add(Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IColouringPtr __fastcall
TCOMIColouringsT<T>::Add(void)
{
  Kompasltapi7_tlb::IColouringPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IColouringPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IColourings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {60437DAD-2688-4146-B765-3FCC55C39D0F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IColouringsDispT<T>::get_Colouring(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Colouring"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IColouring**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IColouringPtr __fastcall
IColouringsDispT<T>::get_Colouring(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IColouringPtr Result;
  this->get_Colouring(Index, (Kompasltapi7_tlb::IColouringPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::Add(Kompasltapi7_tlb::IColouringPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IColouring**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IColouringPtr __fastcall
IColouringsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IColouringPtr Result;
  this->Add((Kompasltapi7_tlb::IColouringPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IColouringsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IColouringsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IColouringsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IColouringsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IColouringsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IColouringsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIColouring
// Interface: IColouring
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_ColouringType(ksColouringTypeEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ColouringType(Result);
}

template <class T> ksColouringTypeEnum __fastcall
TCOMIColouringT<T>::get_ColouringType(void)
{
  ksColouringTypeEnum Result;
  OLECHECK(this->get_ColouringType((ksColouringTypeEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_ColouringType(ksColouringTypeEnum Result/*[in]*/)
{
  return (*this)->set_ColouringType(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_Color1(long* Result/*[out,retval]*/)
{
  return (*this)->get_Color1(Result);
}

template <class T> long __fastcall
TCOMIColouringT<T>::get_Color1(void)
{
  long Result;
  OLECHECK(this->get_Color1((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_Color1(long Result/*[in]*/)
{
  return (*this)->set_Color1(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_Color2(long* Result/*[out,retval]*/)
{
  return (*this)->get_Color2(Result);
}

template <class T> long __fastcall
TCOMIColouringT<T>::get_Color2(void)
{
  long Result;
  OLECHECK(this->get_Color2((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_Color2(long Result/*[in]*/)
{
  return (*this)->set_Color2(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_Transparency1(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Transparency1(PVal);
}

template <class T> long __fastcall
TCOMIColouringT<T>::get_Transparency1(void)
{
  long PVal;
  OLECHECK(this->get_Transparency1((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_Transparency1(long PVal/*[in]*/)
{
  return (*this)->set_Transparency1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_Transparency2(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Transparency2(PVal);
}

template <class T> long __fastcall
TCOMIColouringT<T>::get_Transparency2(void)
{
  long PVal;
  OLECHECK(this->get_Transparency2((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_Transparency2(long PVal/*[in]*/)
{
  return (*this)->set_Transparency2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_GradientType(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_GradientType(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIColouringT<T>::get_GradientType(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_GradientType((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_GradientType(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_GradientType(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_GradientCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_GradientCount(Result);
}

template <class T> long __fastcall
TCOMIColouringT<T>::get_GradientCount(void)
{
  long Result;
  OLECHECK(this->get_GradientCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_GradientCount(long Result/*[in]*/)
{
  return (*this)->set_GradientCount(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_GradientAngle(double* Result/*[out,retval]*/)
{
  return (*this)->get_GradientAngle(Result);
}

template <class T> double __fastcall
TCOMIColouringT<T>::get_GradientAngle(void)
{
  double Result;
  OLECHECK(this->get_GradientAngle((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_GradientAngle(double Result/*[in]*/)
{
  return (*this)->set_GradientAngle(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_Xc(double* Result/*[out,retval]*/)
{
  return (*this)->get_Xc(Result);
}

template <class T> double __fastcall
TCOMIColouringT<T>::get_Xc(void)
{
  double Result;
  OLECHECK(this->get_Xc((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_Xc(double Result/*[in]*/)
{
  return (*this)->set_Xc(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_Yc(double* Result/*[out,retval]*/)
{
  return (*this)->get_Yc(Result);
}

template <class T> double __fastcall
TCOMIColouringT<T>::get_Yc(void)
{
  double Result;
  OLECHECK(this->get_Yc((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::set_Yc(double Result/*[in]*/)
{
  return (*this)->set_Yc(Result);
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                  TVariant* Transparences/*[out]*/, 
                                  TVariant* Interpolations/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetGradations(Positions, Colors, Transparences, Interpolations, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIColouringT<T>::GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                  TVariant* Transparences/*[out]*/, 
                                  TVariant* Interpolations/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetGradations(Positions, Colors, Transparences, Interpolations, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::SetGradations(TVariantInParam Positions/*[in]*/, TVariantInParam Colors/*[in]*/, 
                                  TVariantInParam Transparences/*[in]*/, 
                                  TVariantInParam Interpolations/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetGradations(Positions, Colors, Transparences, Interpolations, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIColouringT<T>::SetGradations(TVariantInParam Positions/*[in]*/, TVariantInParam Colors/*[in]*/, 
                                  TVariantInParam Transparences/*[in]*/, 
                                  TVariantInParam Interpolations/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetGradations(Positions, Colors, Transparences, Interpolations, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/, 
                                 long* Result/*[out,retval]*/)
{
  return (*this)->AddGradation(Position, Color, Transparency, Interpolation, Result);
}

template <class T> long __fastcall
TCOMIColouringT<T>::AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/)
{
  long Result;
  OLECHECK(this->AddGradation(Position, Color, Transparency, Interpolation, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::ClearGradations(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->ClearGradations(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIColouringT<T>::ClearGradations(void)
{
  TOLEBOOL Result;
  OLECHECK(this->ClearGradations((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::get_GradationsCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_GradationsCount(Result);
}

template <class T> long __fastcall
TCOMIColouringT<T>::get_GradationsCount(void)
{
  long Result;
  OLECHECK(this->get_GradationsCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::GetGradation(long Index/*[in]*/, long* Position/*[out]*/, long* Color/*[out]*/, 
                                 long* Transparency/*[out]*/, TOLEBOOL* Interpolation/*[out]*/, 
                                 TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->GetGradation(Index, Position, Color, Transparency, Interpolation, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIColouringT<T>::GetGradation(long Index/*[in]*/, long* Position/*[out]*/, long* Color/*[out]*/, 
                                 long* Transparency/*[out]*/, TOLEBOOL* Interpolation/*[out]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->GetGradation(Index, Position, Color, Transparency, Interpolation, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::SetGradation(long Index/*[in]*/, long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/, 
                                 long* Result/*[out,retval]*/)
{
  return (*this)->SetGradation(Index, Position, Color, Transparency, Interpolation, Result);
}

template <class T> long __fastcall
TCOMIColouringT<T>::SetGradation(long Index/*[in]*/, long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/)
{
  long Result;
  OLECHECK(this->SetGradation(Index, Position, Color, Transparency, Interpolation, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::DeleteGradation(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteGradation(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIColouringT<T>::DeleteGradation(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteGradation(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIColouringT<T>::FindPosition(long Position/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->FindPosition(Position, Result);
}

template <class T> long __fastcall
TCOMIColouringT<T>::FindPosition(long Position/*[in]*/)
{
  long Result;
  OLECHECK(this->FindPosition(Position, (long*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IColouring
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1E0EF1B5-08D3-40B6-893E-3EE7E4FAEC98}
// *********************************************************************//
template <class T> HRESULT __fastcall
IColouringDispT<T>::get_ColouringType(ksColouringTypeEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColouringType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksColouringTypeEnum __fastcall
IColouringDispT<T>::get_ColouringType(void)
{
  ksColouringTypeEnum Result;
  this->get_ColouringType((ksColouringTypeEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_ColouringType(ksColouringTypeEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ColouringType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Color1(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_Color1(void)
{
  long Result;
  this->get_Color1((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_Color1(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Color2(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_Color2(void)
{
  long Result;
  this->get_Color2((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_Color2(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Color2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Transparency1(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transparency1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_Transparency1(void)
{
  long PVal;
  this->get_Transparency1((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_Transparency1(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transparency1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Transparency2(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transparency2"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_Transparency2(void)
{
  long PVal;
  this->get_Transparency2((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_Transparency2(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Transparency2"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_GradientType(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GradientType"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::get_GradientType(void)
{
  TOLEBOOL Result;
  this->get_GradientType((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_GradientType(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("GradientType"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_GradientCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GradientCount"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_GradientCount(void)
{
  long Result;
  this->get_GradientCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_GradientCount(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("GradientCount"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_GradientAngle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GradientAngle"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColouringDispT<T>::get_GradientAngle(void)
{
  double Result;
  this->get_GradientAngle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_GradientAngle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("GradientAngle"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Xc(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColouringDispT<T>::get_Xc(void)
{
  double Result;
  this->get_Xc((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_Xc(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Yc(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IColouringDispT<T>::get_Yc(void)
{
  double Result;
  this->get_Yc((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_Yc(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                  TVariant* Transparences/*[out]*/, 
                                  TVariant* Interpolations/*[out]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetGradations"), DISPID(11));
  TAutoArgs<4> _args;
  _args[1] = Positions /*[VT_VARIANT:1]*/;
  _args[2] = Colors /*[VT_VARIANT:1]*/;
  _args[3] = Transparences /*[VT_VARIANT:1]*/;
  _args[4] = Interpolations /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::GetGradations(TVariant* Positions/*[out]*/, TVariant* Colors/*[out]*/, 
                                  TVariant* Transparences/*[out]*/, 
                                  TVariant* Interpolations/*[out]*/)
{
  TOLEBOOL Result;
  this->GetGradations(Positions, Colors, Transparences, Interpolations, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::SetGradations(TVariantInParam Positions/*[in]*/, TVariantInParam Colors/*[in]*/
                                  , TVariantInParam Transparences/*[in]*/, 
                                  TVariantInParam Interpolations/*[in]*/, 
                                  TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetGradations"), DISPID(12));
  TAutoArgs<4> _args;
  _args[1] = Positions /*[VT_VARIANT:0]*/;
  _args[2] = Colors /*[VT_VARIANT:0]*/;
  _args[3] = Transparences /*[VT_VARIANT:0]*/;
  _args[4] = Interpolations /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::SetGradations(TVariantInParam Positions/*[in]*/, TVariantInParam Colors/*[in]*/, 
                                  TVariantInParam Transparences/*[in]*/, 
                                  TVariantInParam Interpolations/*[in]*/)
{
  TOLEBOOL Result;
  this->SetGradations(Positions, Colors, Transparences, Interpolations, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/, 
                                 long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddGradation"), DISPID(13));
  TAutoArgs<4> _args;
  _args[1] = Position /*[VT_I4:0]*/;
  _args[2] = Color /*[VT_I4:0]*/;
  _args[3] = Transparency /*[VT_I4:0]*/;
  _args[4] = Interpolation /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::AddGradation(long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/)
{
  long Result;
  this->AddGradation(Position, Color, Transparency, Interpolation, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::ClearGradations(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClearGradations"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::ClearGradations(void)
{
  TOLEBOOL Result;
  this->ClearGradations((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_GradationsCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GradationsCount"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_GradationsCount(void)
{
  long Result;
  this->get_GradationsCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::GetGradation(long Index/*[in]*/, long* Position/*[out]*/, long* Color/*[out]*/, 
                                 long* Transparency/*[out]*/, TOLEBOOL* Interpolation/*[out]*/, 
                                 TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetGradation"), DISPID(16));
  TAutoArgs<5> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Position /*[VT_I4:1]*/;
  _args[3] = Color /*[VT_I4:1]*/;
  _args[4] = Transparency /*[VT_I4:1]*/;
  _args[5] = Interpolation /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::GetGradation(long Index/*[in]*/, long* Position/*[out]*/, long* Color/*[out]*/, 
                                 long* Transparency/*[out]*/, TOLEBOOL* Interpolation/*[out]*/)
{
  TOLEBOOL Result;
  this->GetGradation(Index, Position, Color, Transparency, Interpolation, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::SetGradation(long Index/*[in]*/, long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/, 
                                 long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetGradation"), DISPID(17));
  TAutoArgs<5> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Position /*[VT_I4:0]*/;
  _args[3] = Color /*[VT_I4:0]*/;
  _args[4] = Transparency /*[VT_I4:0]*/;
  _args[5] = Interpolation /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::SetGradation(long Index/*[in]*/, long Position/*[in]*/, long Color/*[in]*/, 
                                 long Transparency/*[in]*/, TOLEBOOL Interpolation/*[in]*/)
{
  long Result;
  this->SetGradation(Index, Position, Color, Transparency, Interpolation, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::DeleteGradation(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteGradation"), DISPID(18));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::DeleteGradation(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteGradation(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::FindPosition(long Position/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FindPosition"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = Position /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::FindPosition(long Position/*[in]*/)
{
  long Result;
  this->FindPosition(Position, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IColouringDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IColouringDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IColouringDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IColouringDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IColouringDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IColouringDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IColouringDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IColouringDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IMark
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B5D1A0BE-8F3C-4143-B9C5-66F0CF0FE74D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarkDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkDispT<T>::get_AutoNumber(void)
{
  TOLEBOOL Result;
  this->get_AutoNumber((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::set_AutoNumber(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkDispT<T>::get_Name(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Name((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkDispT<T>::get_Number(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Number((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnder"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkDispT<T>::get_TextUnder(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnder((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Comment(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMarkDispT<T>::get_Comment(void)
{
  BSTR Result;
  this->get_Comment((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::set_Comment(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IMarkDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IMarkDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMarkDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMarkDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMarkDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMarks
// Interface: IMarks
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMarksT<T>::get_Mark(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Mark(Index, Result);
}

template <class T> Kompasltapi7_tlb::IMarkPtr __fastcall
TCOMIMarksT<T>::get_Mark(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMarkPtr Result;
  OLECHECK(this->get_Mark(Index, (Kompasltapi7_tlb::IMarkPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarksT<T>::Add(DrawingObjectTypeEnum MarkType/*[in]*/, 
                    Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(MarkType, Result);
}

template <class T> Kompasltapi7_tlb::IMarkPtr __fastcall
TCOMIMarksT<T>::Add(DrawingObjectTypeEnum MarkType/*[in]*/)
{
  Kompasltapi7_tlb::IMarkPtr Result;
  OLECHECK(this->Add(MarkType, (Kompasltapi7_tlb::IMarkPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IMarks
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {47585370-56BD-4419-82D9-DB7CBFB1A252}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarksDispT<T>::get_Mark(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Mark"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMark**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkPtr __fastcall
IMarksDispT<T>::get_Mark(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMarkPtr Result;
  this->get_Mark(Index, (Kompasltapi7_tlb::IMarkPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::Add(DrawingObjectTypeEnum MarkType/*[in]*/, 
                    Kompasltapi7_tlb::IMarkPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)MarkType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMark**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkPtr __fastcall
IMarksDispT<T>::Add(DrawingObjectTypeEnum MarkType/*[in]*/)
{
  Kompasltapi7_tlb::IMarkPtr Result;
  this->Add(MarkType, (Kompasltapi7_tlb::IMarkPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IMarksDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IMarksDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarksDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMarksDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMarksDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMarksDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarksDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarksDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMarkInsideForm
// Interface: IMarkInsideForm
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::get_Angle(double* Result/*[out,retval]*/)
{
  return (*this)->get_Angle(Result);
}

template <class T> double __fastcall
TCOMIMarkInsideFormT<T>::get_Angle(void)
{
  double Result;
  OLECHECK(this->get_Angle((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::set_Angle(double Result/*[in]*/)
{
  return (*this)->set_Angle(Result);
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::set_Form(ksMarkInsideFormEnum NewVal/*[in]*/)
{
  return (*this)->set_Form(NewVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::get_Form(ksMarkInsideFormEnum* NewVal/*[out,retval]*/)
{
  return (*this)->get_Form(NewVal);
}

template <class T> ksMarkInsideFormEnum __fastcall
TCOMIMarkInsideFormT<T>::get_Form(void)
{
  ksMarkInsideFormEnum NewVal;
  OLECHECK(this->get_Form((ksMarkInsideFormEnum*)&NewVal));
  return NewVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::set_FormGabarit(double PVal/*[in]*/)
{
  return (*this)->set_FormGabarit(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::get_FormGabarit(double* PVal/*[out,retval]*/)
{
  return (*this)->get_FormGabarit(PVal);
}

template <class T> double __fastcall
TCOMIMarkInsideFormT<T>::get_FormGabarit(void)
{
  double PVal;
  OLECHECK(this->get_FormGabarit((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::set_FormHeight(double PVal/*[in]*/)
{
  return (*this)->set_FormHeight(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::get_FormHeight(double* PVal/*[out,retval]*/)
{
  return (*this)->get_FormHeight(PVal);
}

template <class T> double __fastcall
TCOMIMarkInsideFormT<T>::get_FormHeight(void)
{
  double PVal;
  OLECHECK(this->get_FormHeight((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::set_FormStyle(long PVal/*[in]*/)
{
  return (*this)->set_FormStyle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkInsideFormT<T>::get_FormStyle(long* PVal/*[out,retval]*/)
{
  return (*this)->get_FormStyle(PVal);
}

template <class T> long __fastcall
TCOMIMarkInsideFormT<T>::get_FormStyle(void)
{
  long PVal;
  OLECHECK(this->get_FormStyle((long*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IMarkInsideForm
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E5C5A0FF-6CAB-4179-9BF3-868D96BF6AEA}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Angle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkInsideFormDispT<T>::get_Angle(void)
{
  double Result;
  this->get_Angle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_Angle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_Form(ksMarkInsideFormEnum NewVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)NewVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Form(ksMarkInsideFormEnum* NewVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)NewVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMarkInsideFormEnum __fastcall
IMarkInsideFormDispT<T>::get_Form(void)
{
  ksMarkInsideFormEnum NewVal;
  this->get_Form((ksMarkInsideFormEnum*)&NewVal);
  return NewVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_FormGabarit(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormGabarit"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_FormGabarit(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormGabarit"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkInsideFormDispT<T>::get_FormGabarit(void)
{
  double PVal;
  this->get_FormGabarit((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_FormHeight(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormHeight"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_FormHeight(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormHeight"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkInsideFormDispT<T>::get_FormHeight(void)
{
  double PVal;
  this->get_FormHeight((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_FormStyle(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormStyle"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_FormStyle(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FormStyle"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkInsideFormDispT<T>::get_FormStyle(void)
{
  long PVal;
  this->get_FormStyle((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkInsideFormDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkInsideFormDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkInsideFormDispT<T>::get_AutoNumber(void)
{
  TOLEBOOL Result;
  this->get_AutoNumber((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_AutoNumber(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkInsideFormDispT<T>::get_Name(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Name((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkInsideFormDispT<T>::get_Number(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Number((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkInsideFormDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkInsideFormDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnder"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkInsideFormDispT<T>::get_TextUnder(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnder((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Comment(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMarkInsideFormDispT<T>::get_Comment(void)
{
  BSTR Result;
  this->get_Comment((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_Comment(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IMarkInsideFormDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkInsideFormDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkInsideFormDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkInsideFormDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkInsideFormDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkInsideFormDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IMarkInsideFormDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMarkInsideFormDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMarkInsideFormDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMarkInsideFormDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkInsideFormDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkInsideFormDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMarkOnLine
// Interface: IMarkOnLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMarkOnLineT<T>::get_Position(ksMarkOnLinePosTypeEnum* Result/*[out,retval]*/)
{
  return (*this)->get_Position(Result);
}

template <class T> ksMarkOnLinePosTypeEnum __fastcall
TCOMIMarkOnLineT<T>::get_Position(void)
{
  ksMarkOnLinePosTypeEnum Result;
  OLECHECK(this->get_Position((ksMarkOnLinePosTypeEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLineT<T>::set_Position(ksMarkOnLinePosTypeEnum Result/*[in]*/)
{
  return (*this)->set_Position(Result);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLineT<T>::get_Line(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Line(Result);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIMarkOnLineT<T>::get_Line(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  OLECHECK(this->get_Line((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLineT<T>::set_Line(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  return (*this)->set_Line(Result);
}

// *********************************************************************//
// DispIntf:  IMarkOnLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A1540F9-7388-466F-A13C-EB1133423DD9}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Position(ksMarkOnLinePosTypeEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Position"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMarkOnLinePosTypeEnum __fastcall
IMarkOnLineDispT<T>::get_Position(void)
{
  ksMarkOnLinePosTypeEnum Result;
  this->get_Position((ksMarkOnLinePosTypeEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_Position(ksMarkOnLinePosTypeEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Position"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Line(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Line"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IMarkOnLineDispT<T>::get_Line(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Line((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_Line(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Line"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkOnLineDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkOnLineDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLineDispT<T>::get_AutoNumber(void)
{
  TOLEBOOL Result;
  this->get_AutoNumber((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_AutoNumber(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLineDispT<T>::get_Name(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Name((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLineDispT<T>::get_Number(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Number((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLineDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLineDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnder"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLineDispT<T>::get_TextUnder(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnder((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Comment(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMarkOnLineDispT<T>::get_Comment(void)
{
  BSTR Result;
  this->get_Comment((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_Comment(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IMarkOnLineDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkOnLineDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLineDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLineDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLineDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLineDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IMarkOnLineDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMarkOnLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMarkOnLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMarkOnLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkOnLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMarkOnLeader
// Interface: IMarkOnLeader
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_ArrowType(ksArrowEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ArrowType(PVal);
}

template <class T> ksArrowEnum __fastcall
TCOMIMarkOnLeaderT<T>::get_ArrowType(void)
{
  ksArrowEnum PVal;
  OLECHECK(this->get_ArrowType((ksArrowEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::set_ArrowType(ksArrowEnum PVal/*[in]*/)
{
  return (*this)->set_ArrowType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfDirection(PVal);
}

template <class T> ksShelfDirectionEnum __fastcall
TCOMIMarkOnLeaderT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum PVal;
  OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/)
{
  return (*this)->set_ShelfDirection(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ParallelBranch(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkOnLeaderT<T>::get_ParallelBranch(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ParallelBranch((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::set_ParallelBranch(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ParallelBranch(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchCount(PVal);
}

template <class T> long __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchCount(void)
{
  long PVal;
  OLECHECK(this->get_BranchCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_BranchPoints(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchPoints(Index, PVal);
}

template <class T> TVariant __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchPoints(long Index/*[in]*/)
{
  TVariant PVal;
  OLECHECK(this->get_BranchPoints(Index, (TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_BranchBegin(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchBegin(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchBegin(Index, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchBegin(long Index/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_BranchBegin(Index, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::set_BranchX(long Index/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_BranchX(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchX(Index, PVal);
}

template <class T> double __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchX(long Index/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_BranchX(Index, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::set_BranchY(long Index/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_BranchY(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchY(Index, PVal);
}

template <class T> double __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchY(long Index/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_BranchY(Index, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->get_BranchPointsCount(Index, Result);
}

template <class T> long __fastcall
TCOMIMarkOnLeaderT<T>::get_BranchPointsCount(long Index/*[in]*/)
{
  long Result;
  OLECHECK(this->get_BranchPointsCount(Index, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                 TVariantInParam Points/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddBranch(Index, Begin, Points, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkOnLeaderT<T>::AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                 TVariantInParam Points/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddBranch(Index, Begin, Points, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, double X/*[in]*/, 
                                        double Y/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddBranchByPoint(Index, Begin, X, Y, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkOnLeaderT<T>::AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, double X/*[in]*/, 
                                        double Y/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddBranchByPoint(Index, Begin, X, Y, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkOnLeaderT<T>::DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteBranch(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkOnLeaderT<T>::DeleteBranch(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteBranch(Index, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IMarkOnLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F3D7E6A6-26EA-4D68-AD58-4DE194C47B4E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_ArrowType(ksArrowEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksArrowEnum __fastcall
IMarkOnLeaderDispT<T>::get_ArrowType(void)
{
  ksArrowEnum PVal;
  this->get_ArrowType((ksArrowEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_ArrowType(ksArrowEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IMarkOnLeaderDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum PVal;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_ShelfDirection(ksShelfDirectionEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParallelBranch"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::get_ParallelBranch(void)
{
  TOLEBOOL PVal;
  this->get_ParallelBranch((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_ParallelBranch(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParallelBranch"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_BranchCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchCount"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkOnLeaderDispT<T>::get_BranchCount(void)
{
  long PVal;
  this->get_BranchCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IMarkOnLeaderDispT<T>::get_BranchPoints(long Index/*[in]*/)
{
  TVariant PVal;
  this->get_BranchPoints(Index, (TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchBegin"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_BranchBegin(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchBegin"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::get_BranchBegin(long Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_BranchBegin(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_BranchX(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkOnLeaderDispT<T>::get_BranchX(long Index/*[in]*/)
{
  double PVal;
  this->get_BranchX(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_BranchY(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(8));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkOnLeaderDispT<T>::get_BranchY(long Index/*[in]*/)
{
  double PVal;
  this->get_BranchY(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPointsCount"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkOnLeaderDispT<T>::get_BranchPointsCount(long Index/*[in]*/)
{
  long Result;
  this->get_BranchPointsCount(Index, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                 TVariantInParam Points/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranch"), DISPID(10));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Begin /*[VT_BOOL:0]*/;
  _args[3] = Points /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::AddBranch(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, 
                                 TVariantInParam Points/*[in]*/)
{
  TOLEBOOL Result;
  this->AddBranch(Index, Begin, Points, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, double X/*[in]*/
                                        , double Y/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranchByPoint"), DISPID(11));
  TAutoArgs<4> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Begin /*[VT_BOOL:0]*/;
  _args[3] = X /*[VT_R8:0]*/;
  _args[4] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::AddBranchByPoint(long Index/*[in]*/, TOLEBOOL Begin/*[in]*/, double X/*[in]*/, 
                                        double Y/*[in]*/)
{
  TOLEBOOL Result;
  this->AddBranchByPoint(Index, Begin, X, Y, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteBranch"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::DeleteBranch(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteBranch(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkOnLeaderDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkOnLeaderDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_AutoNumber(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::get_AutoNumber(void)
{
  TOLEBOOL Result;
  this->get_AutoNumber((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_AutoNumber(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoNumber"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Name(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLeaderDispT<T>::get_Name(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Name((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Number(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Number"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLeaderDispT<T>::get_Number(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Number((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLeaderDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLeaderDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_TextUnder(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnder"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkOnLeaderDispT<T>::get_TextUnder(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnder((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Comment(BSTR* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMarkOnLeaderDispT<T>::get_Comment(void)
{
  BSTR Result;
  this->get_Comment((BSTR*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_Comment(BSTR Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Comment"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IMarkOnLeaderDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkOnLeaderDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkOnLeaderDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IMarkOnLeaderDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMarkOnLeaderDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMarkOnLeaderDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMarkOnLeaderDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkOnLeaderDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkOnLeaderDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBuildingAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {123C45BF-14DE-433E-B3B0-2FB642A9A418}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBuildingAxisDispT<T>::get_DoubleMark(void)
{
  TOLEBOOL PVal;
  this->get_DoubleMark((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_MarkSize(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_MarkSize(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBuildingAxisDispT<T>::get_MarkSize(void)
{
  double PVal;
  this->get_MarkSize((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_DottedLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_DottedLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBuildingAxisDispT<T>::get_DottedLength(void)
{
  double PVal;
  this->get_DottedLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_Interval(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Interval(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBuildingAxisDispT<T>::get_Interval(void)
{
  double PVal;
  this->get_Interval((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_Stroke(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Stroke(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBuildingAxisDispT<T>::get_Stroke(void)
{
  double PVal;
  this->get_Stroke((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBuildingAxisDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBuildingAxisDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBuildingAxisDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_AutoStroke(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBuildingAxisDispT<T>::get_AutoStroke(void)
{
  TOLEBOOL PVal;
  this->get_AutoStroke((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                          TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/, 
                                          TOLEBOOL* RetVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInsertionPoints"), DISPID(2010));
  TAutoArgs<4> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  _args[2] = Points /*[VT_VARIANT:1]*/;
  _args[3] = Directions /*[VT_VARIANT:1]*/;
  _args[4] = Nodes /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(RetVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBuildingAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                          TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/)
{
  TOLEBOOL RetVal;
  this->GetInsertionPoints(First, Points, Directions, Nodes, (TOLEBOOL*)&RetVal);
  return RetVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNodeByPoint"), DISPID(2011));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Limit /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IBuildingAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->GetNodeByPoint(X, Y, Limit, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                      double X/*[in]*/, double Y/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddNodeByPoint"), DISPID(2012));
  TAutoArgs<3> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IBuildingAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                      double X/*[in]*/, double Y/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->AddNodeByPoint(Type, X, Y, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBuildingAxisDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBuildingAxisDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBuildingAxisDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBuildingAxisDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBuildingAxisDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBuildingAxisDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBuildingAxisDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBuildingAxisDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBuildingAxisDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBuildingAxisDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBuildingAxisDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBuildingAxisDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMarkNode
// Interface: IMarkNode
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::set_MarkType(ksMarkNodeEnum Val/*[in]*/)
{
  return (*this)->set_MarkType(Val);
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::get_MarkType(ksMarkNodeEnum* Val/*[out,retval]*/)
{
  return (*this)->get_MarkType(Val);
}

template <class T> ksMarkNodeEnum __fastcall
TCOMIMarkNodeT<T>::get_MarkType(void)
{
  ksMarkNodeEnum Val;
  OLECHECK(this->get_MarkType((ksMarkNodeEnum*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_DoubleMark(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DoubleMark(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkNodeT<T>::get_DoubleMark(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DoubleMark((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::set_RefLength(double PVal/*[in]*/)
{
  return (*this)->set_RefLength(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::get_RefLength(double* PVal/*[out,retval]*/)
{
  return (*this)->get_RefLength(PVal);
}

template <class T> double __fastcall
TCOMIMarkNodeT<T>::get_RefLength(void)
{
  double PVal;
  OLECHECK(this->get_RefLength((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIMarkNodeT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::get_MarkNodes(TOLEBOOL Left/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_MarkNodes(Left, PVal);
}

template <class T> Kompasltapi7_tlb::IMarkNodesPtr __fastcall
TCOMIMarkNodeT<T>::get_MarkNodes(TOLEBOOL Left/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodesPtr PVal;
  OLECHECK(this->get_MarkNodes(Left, (Kompasltapi7_tlb::IMarkNodesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Delete(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkNodeT<T>::Delete(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->Delete((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodeT<T>::GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                      TVariant* Directions/*[out]*/, 
                                      TOLEBOOL* RetVal/*[out,retval]*/)
{
  return (*this)->GetInsertionPoints(LeftJut, Points, Directions, RetVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkNodeT<T>::GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                      TVariant* Directions/*[out]*/)
{
  TOLEBOOL RetVal;
  OLECHECK(this->GetInsertionPoints(LeftJut, Points, Directions, (TOLEBOOL*)&RetVal));
  return RetVal;
}

// *********************************************************************//
// DispIntf:  IMarkNode
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5AC48E97-80B1-459F-9709-1F3F374559BE}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::set_MarkType(ksMarkNodeEnum Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Val /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_MarkType(ksMarkNodeEnum* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Val /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksMarkNodeEnum __fastcall
IMarkNodeDispT<T>::get_MarkType(void)
{
  ksMarkNodeEnum Val;
  this->get_MarkType((ksMarkNodeEnum*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkNodeDispT<T>::get_DoubleMark(void)
{
  TOLEBOOL PVal;
  this->get_DoubleMark((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::set_RefLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("RefLength"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_RefLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RefLength"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMarkNodeDispT<T>::get_RefLength(void)
{
  double PVal;
  this->get_RefLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkNodeDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_MarkNodes(TOLEBOOL Left/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkNodes"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Left /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNodes**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodesPtr __fastcall
IMarkNodeDispT<T>::get_MarkNodes(TOLEBOOL Left/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodesPtr PVal;
  this->get_MarkNodes(Left, (Kompasltapi7_tlb::IMarkNodesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkNodeDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                      TVariant* Directions/*[out]*/, 
                                      TOLEBOOL* RetVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInsertionPoints"), DISPID(7));
  TAutoArgs<3> _args;
  _args[1] = LeftJut /*[VT_BOOL:0]*/;
  _args[2] = Points /*[VT_VARIANT:1]*/;
  _args[3] = Directions /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(RetVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkNodeDispT<T>::GetInsertionPoints(TOLEBOOL LeftJut/*[in]*/, TVariant* Points/*[out]*/, 
                                      TVariant* Directions/*[out]*/)
{
  TOLEBOOL RetVal;
  this->GetInsertionPoints(LeftJut, Points, Directions, (TOLEBOOL*)&RetVal);
  return RetVal;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMarkNodeDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMarkNodeDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMarkNodeDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkNodeDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkNodeDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMarkNodes
// Interface: IMarkNodes
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMarkNodesT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Item(Index, Result);
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
TCOMIMarkNodesT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr Result;
  OLECHECK(this->get_Item(Index, (Kompasltapi7_tlb::IMarkNodePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodesT<T>::Add(ksMarkNodeEnum Type/*[in]*/, 
                        TVariantInParam Index/*[in]*/, 
                        Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Type, Index, Result);
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
TCOMIMarkNodesT<T>::Add(ksMarkNodeEnum Type/*[in]*/, 
                        TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr Result;
  OLECHECK(this->Add(Type, Index, (Kompasltapi7_tlb::IMarkNodePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMarkNodesT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Clear(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMarkNodesT<T>::Clear(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Clear((TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IMarkNodes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EB8ACD77-8008-4F89-A311-2F4712462F72}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IMarkNodesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IMarkNodePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::Add(ksMarkNodeEnum Type/*[in]*/, 
                        TVariantInParam Index/*[in]*/, 
                        Kompasltapi7_tlb::IMarkNodePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IMarkNodesDispT<T>::Add(ksMarkNodeEnum Type/*[in]*/, 
                        TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr Result;
  this->Add(Type, Index, (Kompasltapi7_tlb::IMarkNodePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMarkNodesDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IMarkNodesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkNodesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMarkNodesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMarkNodesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMarkNodesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMarkNodesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMarkNodesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBuildingAxes
// Interface: IBuildingAxes
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBuildingAxesT<T>::get_BuildingAxis(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BuildingAxis(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBuildingAxisPtr __fastcall
TCOMIBuildingAxesT<T>::get_BuildingAxis(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBuildingAxisPtr Result;
  OLECHECK(this->get_BuildingAxis(Index, (Kompasltapi7_tlb::IBuildingAxisPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBuildingAxesT<T>::Add(DrawingObjectTypeEnum AxisType/*[in]*/, 
                           Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(AxisType, Result);
}

template <class T> Kompasltapi7_tlb::IBuildingAxisPtr __fastcall
TCOMIBuildingAxesT<T>::Add(DrawingObjectTypeEnum AxisType/*[in]*/)
{
  Kompasltapi7_tlb::IBuildingAxisPtr Result;
  OLECHECK(this->Add(AxisType, (Kompasltapi7_tlb::IBuildingAxisPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IBuildingAxes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {18072E1D-1802-41F5-A434-04BB9D3F157F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get_BuildingAxis(TVariantInParam Index/*[in]*/, 
                                        Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BuildingAxis"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBuildingAxis**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBuildingAxisPtr __fastcall
IBuildingAxesDispT<T>::get_BuildingAxis(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBuildingAxisPtr Result;
  this->get_BuildingAxis(Index, (Kompasltapi7_tlb::IBuildingAxisPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::Add(DrawingObjectTypeEnum AxisType/*[in]*/, 
                           Kompasltapi7_tlb::IBuildingAxisPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)AxisType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBuildingAxis**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBuildingAxisPtr __fastcall
IBuildingAxesDispT<T>::Add(DrawingObjectTypeEnum AxisType/*[in]*/)
{
  Kompasltapi7_tlb::IBuildingAxisPtr Result;
  this->Add(AxisType, (Kompasltapi7_tlb::IBuildingAxisPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBuildingAxesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBuildingAxesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBuildingAxesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBuildingAxesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBuildingAxesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBuildingAxesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBuildingAxesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBuildingAxesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIStraightAxis
// Interface: IStraightAxis
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIStraightAxisT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIStraightAxisT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIStraightAxisT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIStraightAxisT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIStraightAxisT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIStraightAxisT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_Jut(TOLEBOOL First/*[in]*/, 
                               Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/)
{
  return (*this)->get_Jut(First, PRes);
}

template <class T> Kompasltapi7_tlb::IAxisJutPtr __fastcall
TCOMIStraightAxisT<T>::get_Jut(TOLEBOOL First/*[in]*/)
{
  Kompasltapi7_tlb::IAxisJutPtr PRes;
  OLECHECK(this->get_Jut(First, (Kompasltapi7_tlb::IAxisJutPtr*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIStraightAxisT<T>::get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_MarkNodes(PVal);
}

template <class T> Kompasltapi7_tlb::IMarkNodesPtr __fastcall
TCOMIStraightAxisT<T>::get_MarkNodes(void)
{
  Kompasltapi7_tlb::IMarkNodesPtr PVal;
  OLECHECK(this->get_MarkNodes((Kompasltapi7_tlb::IMarkNodesPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IStraightAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7B2820E0-2CB7-4412-9B96-F291DD790448}
// *********************************************************************//
template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Jut(TOLEBOOL First/*[in]*/, 
                               Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jut"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAxisJut**)PRes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAxisJutPtr __fastcall
IStraightAxisDispT<T>::get_Jut(TOLEBOOL First/*[in]*/)
{
  Kompasltapi7_tlb::IAxisJutPtr PRes;
  this->get_Jut(First, (Kompasltapi7_tlb::IAxisJutPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkNodes"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNodes**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodesPtr __fastcall
IStraightAxisDispT<T>::get_MarkNodes(void)
{
  Kompasltapi7_tlb::IMarkNodesPtr PVal;
  this->get_MarkNodes((Kompasltapi7_tlb::IMarkNodesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStraightAxisDispT<T>::get_DoubleMark(void)
{
  TOLEBOOL PVal;
  this->get_DoubleMark((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_MarkSize(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_MarkSize(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_MarkSize(void)
{
  double PVal;
  this->get_MarkSize((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_DottedLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_DottedLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_DottedLength(void)
{
  double PVal;
  this->get_DottedLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_Interval(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Interval(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_Interval(void)
{
  double PVal;
  this->get_Interval((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_Stroke(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Stroke(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IStraightAxisDispT<T>::get_Stroke(void)
{
  double PVal;
  this->get_Stroke((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IStraightAxisDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IStraightAxisDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IStraightAxisDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_AutoStroke(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStraightAxisDispT<T>::get_AutoStroke(void)
{
  TOLEBOOL PVal;
  this->get_AutoStroke((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                          TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/, 
                                          TOLEBOOL* RetVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInsertionPoints"), DISPID(2010));
  TAutoArgs<4> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  _args[2] = Points /*[VT_VARIANT:1]*/;
  _args[3] = Directions /*[VT_VARIANT:1]*/;
  _args[4] = Nodes /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(RetVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStraightAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                          TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/)
{
  TOLEBOOL RetVal;
  this->GetInsertionPoints(First, Points, Directions, Nodes, (TOLEBOOL*)&RetVal);
  return RetVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNodeByPoint"), DISPID(2011));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Limit /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IStraightAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->GetNodeByPoint(X, Y, Limit, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                      double X/*[in]*/, double Y/*[in]*/, 
                                      Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddNodeByPoint"), DISPID(2012));
  TAutoArgs<3> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IStraightAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                      double X/*[in]*/, double Y/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->AddNodeByPoint(Type, X, Y, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IStraightAxisDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IStraightAxisDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStraightAxisDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStraightAxisDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStraightAxisDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IStraightAxisDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IStraightAxisDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IStraightAxisDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IStraightAxisDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IStraightAxisDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IStraightAxisDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IStraightAxisDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAxisJut
// Interface: IAxisJut
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIAxisJutT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::set_MarkOffset(double PVal/*[in]*/)
{
  return (*this)->set_MarkOffset(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::get_MarkOffset(double* PVal/*[out,retval]*/)
{
  return (*this)->get_MarkOffset(PVal);
}

template <class T> double __fastcall
TCOMIAxisJutT<T>::get_MarkOffset(void)
{
  double PVal;
  OLECHECK(this->get_MarkOffset((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::set_BreakOffset(double PVal/*[in]*/)
{
  return (*this)->set_BreakOffset(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::get_BreakOffset(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BreakOffset(PVal);
}

template <class T> double __fastcall
TCOMIAxisJutT<T>::get_BreakOffset(void)
{
  double PVal;
  OLECHECK(this->get_BreakOffset((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::set_BreakDirection(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_BreakDirection(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::get_BreakDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_BreakDirection(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAxisJutT<T>::get_BreakDirection(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_BreakDirection((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_MarkOn(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisJutT<T>::get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_MarkOn(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAxisJutT<T>::get_MarkOn(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_MarkOn((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAxisJut
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5A22E024-F530-45DB-A3F2-CA0587BDA1B5}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAxisJutDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisJutDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::set_MarkOffset(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkOffset"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_MarkOffset(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkOffset"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisJutDispT<T>::get_MarkOffset(void)
{
  double PVal;
  this->get_MarkOffset((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::set_BreakOffset(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakOffset"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_BreakOffset(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakOffset"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisJutDispT<T>::get_BreakOffset(void)
{
  double PVal;
  this->get_BreakOffset((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::set_BreakDirection(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakDirection"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_BreakDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakDirection"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisJutDispT<T>::get_BreakDirection(void)
{
  TOLEBOOL PVal;
  this->get_BreakDirection((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkOn"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkOn"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisJutDispT<T>::get_MarkOn(void)
{
  TOLEBOOL PVal;
  this->get_MarkOn((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAxisJutDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAxisJutDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAxisJutDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAxisJutDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAxisJutDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIArcAxis
// Interface: IArcAxis
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Angle1(double PVal/*[in]*/)
{
  return (*this)->set_Angle1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle1(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Angle1(void)
{
  double PVal;
  OLECHECK(this->get_Angle1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Angle2(double PVal/*[in]*/)
{
  return (*this)->set_Angle2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle2(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Angle2(void)
{
  double PVal;
  OLECHECK(this->get_Angle2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIArcAxisT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Jut(TOLEBOOL First/*[in]*/, 
                          Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/)
{
  return (*this)->get_Jut(First, PRes);
}

template <class T> Kompasltapi7_tlb::IAxisJutPtr __fastcall
TCOMIArcAxisT<T>::get_Jut(TOLEBOOL First/*[in]*/)
{
  Kompasltapi7_tlb::IAxisJutPtr PRes;
  OLECHECK(this->get_Jut(First, (Kompasltapi7_tlb::IAxisJutPtr*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_MarkNodes(PVal);
}

template <class T> Kompasltapi7_tlb::IMarkNodesPtr __fastcall
TCOMIArcAxisT<T>::get_MarkNodes(void)
{
  Kompasltapi7_tlb::IMarkNodesPtr PVal;
  OLECHECK(this->get_MarkNodes((Kompasltapi7_tlb::IMarkNodesPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_X3(double PVal/*[in]*/)
{
  return (*this)->set_X3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X3(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_X3(void)
{
  double PVal;
  OLECHECK(this->get_X3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::set_Y3(double PVal/*[in]*/)
{
  return (*this)->set_Y3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcAxisT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y3(PVal);
}

template <class T> double __fastcall
TCOMIArcAxisT<T>::get_Y3(void)
{
  double PVal;
  OLECHECK(this->get_Y3((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IArcAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DAA9755A-3971-4713-B281-15995CBF2E56}
// *********************************************************************//
template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Angle1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Angle1(void)
{
  double PVal;
  this->get_Angle1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Jut(TOLEBOOL First/*[in]*/, 
                          Kompasltapi7_tlb::IAxisJutPtr* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Jut"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAxisJut**)PRes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAxisJutPtr __fastcall
IArcAxisDispT<T>::get_Jut(TOLEBOOL First/*[in]*/)
{
  Kompasltapi7_tlb::IAxisJutPtr PRes;
  this->get_Jut(First, (Kompasltapi7_tlb::IAxisJutPtr*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_MarkNodes(Kompasltapi7_tlb::IMarkNodesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkNodes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNodes**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodesPtr __fastcall
IArcAxisDispT<T>::get_MarkNodes(void)
{
  Kompasltapi7_tlb::IMarkNodesPtr PVal;
  this->get_MarkNodes((Kompasltapi7_tlb::IMarkNodesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::get_DoubleMark(void)
{
  TOLEBOOL PVal;
  this->get_DoubleMark((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_MarkSize(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_MarkSize(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_MarkSize(void)
{
  double PVal;
  this->get_MarkSize((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_DottedLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_DottedLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_DottedLength(void)
{
  double PVal;
  this->get_DottedLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Interval(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Interval(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Interval(void)
{
  double PVal;
  this->get_Interval((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_Stroke(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Stroke(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcAxisDispT<T>::get_Stroke(void)
{
  double PVal;
  this->get_Stroke((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IArcAxisDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IArcAxisDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IArcAxisDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_AutoStroke(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::get_AutoStroke(void)
{
  TOLEBOOL PVal;
  this->get_AutoStroke((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                     TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/, 
                                     TOLEBOOL* RetVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInsertionPoints"), DISPID(2010));
  TAutoArgs<4> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  _args[2] = Points /*[VT_VARIANT:1]*/;
  _args[3] = Directions /*[VT_VARIANT:1]*/;
  _args[4] = Nodes /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(RetVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                     TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/)
{
  TOLEBOOL RetVal;
  this->GetInsertionPoints(First, Points, Directions, Nodes, (TOLEBOOL*)&RetVal);
  return RetVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNodeByPoint"), DISPID(2011));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Limit /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IArcAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->GetNodeByPoint(X, Y, Limit, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, double X/*[in]*/
                                 , double Y/*[in]*/, 
                                 Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddNodeByPoint"), DISPID(2012));
  TAutoArgs<3> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
IArcAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, double X/*[in]*/, 
                                 double Y/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->AddNodeByPoint(Type, X, Y, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IArcAxisDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcAxisDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcAxisDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IArcAxisDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IArcAxisDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IArcAxisDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IArcAxisDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcAxisDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcAxisDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICircleAxis
// Interface: ICircleAxis
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMICircleAxisT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMICircleAxisT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::set_MarkAngle(double PVal/*[in]*/)
{
  return (*this)->set_MarkAngle(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::get_MarkAngle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_MarkAngle(PVal);
}

template <class T> double __fastcall
TCOMICircleAxisT<T>::get_MarkAngle(void)
{
  double PVal;
  OLECHECK(this->get_MarkAngle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMICircleAxisT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  return (*this)->set_MarkOn(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_MarkOn(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICircleAxisT<T>::get_MarkOn(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_MarkOn((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleAxisT<T>::get_BaseMarkNode(Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  return (*this)->get_BaseMarkNode(PVal);
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
TCOMICircleAxisT<T>::get_BaseMarkNode(void)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  OLECHECK(this->get_BaseMarkNode((Kompasltapi7_tlb::IMarkNodePtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICircleAxis
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D84358FB-674C-4A5D-93BA-EE5D3342097B}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_MarkAngle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkAngle"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_MarkAngle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkAngle"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_MarkAngle(void)
{
  double PVal;
  this->get_MarkAngle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_MarkOn(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkOn"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_MarkOn(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkOn"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::get_MarkOn(void)
{
  TOLEBOOL PVal;
  this->get_MarkOn((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_BaseMarkNode(Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseMarkNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
ICircleAxisDispT<T>::get_BaseMarkNode(void)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->get_BaseMarkNode((Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_DoubleMark(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_DoubleMark(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DoubleMark"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::get_DoubleMark(void)
{
  TOLEBOOL PVal;
  this->get_DoubleMark((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_MarkSize(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_MarkSize(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MarkSize"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_MarkSize(void)
{
  double PVal;
  this->get_MarkSize((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_DottedLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_DottedLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_DottedLength(void)
{
  double PVal;
  this->get_DottedLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_Interval(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Interval(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_Interval(void)
{
  double PVal;
  this->get_Interval((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_Stroke(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Stroke(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleAxisDispT<T>::get_Stroke(void)
{
  double PVal;
  this->get_Stroke((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ICircleAxisDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_TextBefore(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextBefore"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ICircleAxisDispT<T>::get_TextBefore(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextBefore((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_TextAfter(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfter"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ICircleAxisDispT<T>::get_TextAfter(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfter((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_AutoStroke(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_AutoStroke(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoStroke"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::get_AutoStroke(void)
{
  TOLEBOOL PVal;
  this->get_AutoStroke((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                        TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/, 
                                        TOLEBOOL* RetVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetInsertionPoints"), DISPID(2010));
  TAutoArgs<4> _args;
  _args[1] = First /*[VT_BOOL:0]*/;
  _args[2] = Points /*[VT_VARIANT:1]*/;
  _args[3] = Directions /*[VT_VARIANT:1]*/;
  _args[4] = Nodes /*[VT_VARIANT:1]*/;
  return OutRetValSetterPtr(RetVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::GetInsertionPoints(TOLEBOOL First/*[in]*/, TVariant* Points/*[out]*/, 
                                        TVariant* Directions/*[out]*/, TVariant* Nodes/*[out]*/)
{
  TOLEBOOL RetVal;
  this->GetInsertionPoints(First, Points, Directions, Nodes, (TOLEBOOL*)&RetVal);
  return RetVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/, 
                                    Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetNodeByPoint"), DISPID(2011));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Limit /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
ICircleAxisDispT<T>::GetNodeByPoint(double X/*[in]*/, double Y/*[in]*/, double Limit/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->GetNodeByPoint(X, Y, Limit, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                    double X/*[in]*/, double Y/*[in]*/, 
                                    Kompasltapi7_tlb::IMarkNodePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddNodeByPoint"), DISPID(2012));
  TAutoArgs<3> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarkNode**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarkNodePtr __fastcall
ICircleAxisDispT<T>::AddNodeByPoint(ksMarkNodeEnum Type/*[in]*/, 
                                    double X/*[in]*/, double Y/*[in]*/)
{
  Kompasltapi7_tlb::IMarkNodePtr PVal;
  this->AddNodeByPoint(Type, X, Y, (Kompasltapi7_tlb::IMarkNodePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ICircleAxisDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircleAxisDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleAxisDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ICircleAxisDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICircleAxisDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICircleAxisDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICircleAxisDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleAxisDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircleAxisDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICutUnitMarking
// Interface: ICutUnitMarking
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_StrokeCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_StrokeCount(Result);
}

template <class T> long __fastcall
TCOMICutUnitMarkingT<T>::get_StrokeCount(void)
{
  long Result;
  OLECHECK(this->get_StrokeCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::set_StrokeX(long Index/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_StrokeX(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_StrokeX(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_StrokeX(Index, PVal);
}

template <class T> double __fastcall
TCOMICutUnitMarkingT<T>::get_StrokeX(long Index/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_StrokeX(Index, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::set_StrokeY(long Index/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_StrokeY(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_StrokeY(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_StrokeY(Index, PVal);
}

template <class T> double __fastcall
TCOMICutUnitMarkingT<T>::get_StrokeY(long Index/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_StrokeY(Index, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::set_Stroke(long Index/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_Stroke(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_Stroke(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_Stroke(Index, PVal);
}

template <class T> double __fastcall
TCOMICutUnitMarkingT<T>::get_Stroke(long Index/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_Stroke(Index, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_Angle(double* Result/*[out,retval]*/)
{
  return (*this)->get_Angle(Result);
}

template <class T> double __fastcall
TCOMICutUnitMarkingT<T>::get_Angle(void)
{
  double Result;
  OLECHECK(this->get_Angle((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::set_Angle(double Result/*[in]*/)
{
  return (*this)->set_Angle(Result);
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfDirection(Result);
}

template <class T> ksShelfDirectionEnum __fastcall
TCOMICutUnitMarkingT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  return (*this)->set_ShelfDirection(Result);
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfX(Result);
}

template <class T> double __fastcall
TCOMICutUnitMarkingT<T>::get_ShelfX(void)
{
  double Result;
  OLECHECK(this->get_ShelfX((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::set_ShelfX(double Result/*[in]*/)
{
  return (*this)->set_ShelfX(Result);
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfY(Result);
}

template <class T> double __fastcall
TCOMICutUnitMarkingT<T>::get_ShelfY(void)
{
  double Result;
  OLECHECK(this->get_ShelfY((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::set_ShelfY(double Result/*[in]*/)
{
  return (*this)->set_ShelfY(Result);
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_TextUp(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMICutUnitMarkingT<T>::get_TextUp(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_TextDown(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMICutUnitMarkingT<T>::get_TextDown(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddStroke(X, Y, Length, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICutUnitMarkingT<T>::AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddStroke(X, Y, Length, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingT<T>::DeleteStroke(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteStroke(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICutUnitMarkingT<T>::DeleteStroke(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteStroke(Index, (TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ICutUnitMarking
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2EDA58EE-DBDA-44CC-AD10-6895006D498C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_StrokeCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StrokeCount"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutUnitMarkingDispT<T>::get_StrokeCount(void)
{
  long Result;
  this->get_StrokeCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_StrokeX(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StrokeX"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_StrokeX(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StrokeX"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutUnitMarkingDispT<T>::get_StrokeX(long Index/*[in]*/)
{
  double PVal;
  this->get_StrokeX(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_StrokeY(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StrokeY"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_StrokeY(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StrokeY"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutUnitMarkingDispT<T>::get_StrokeY(long Index/*[in]*/)
{
  double PVal;
  this->get_StrokeY(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_Stroke(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Stroke(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Stroke"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutUnitMarkingDispT<T>::get_Stroke(long Index/*[in]*/)
{
  double PVal;
  this->get_Stroke(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Angle(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutUnitMarkingDispT<T>::get_Angle(void)
{
  double Result;
  this->get_Angle((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_Angle(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
ICutUnitMarkingDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutUnitMarkingDispT<T>::get_ShelfX(void)
{
  double Result;
  this->get_ShelfX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_ShelfX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutUnitMarkingDispT<T>::get_ShelfY(void)
{
  double Result;
  this->get_ShelfY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_ShelfY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUp"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ICutUnitMarkingDispT<T>::get_TextUp(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDown"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ICutUnitMarkingDispT<T>::get_TextDown(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddStroke"), DISPID(11));
  TAutoArgs<3> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Length /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutUnitMarkingDispT<T>::AddStroke(double X/*[in]*/, double Y/*[in]*/, double Length/*[in]*/)
{
  TOLEBOOL Result;
  this->AddStroke(X, Y, Length, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::DeleteStroke(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteStroke"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutUnitMarkingDispT<T>::DeleteStroke(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteStroke(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ICutUnitMarkingDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutUnitMarkingDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutUnitMarkingDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutUnitMarkingDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutUnitMarkingDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutUnitMarkingDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ICutUnitMarkingDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICutUnitMarkingDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICutUnitMarkingDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICutUnitMarkingDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutUnitMarkingDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICutUnitMarkings
// Interface: ICutUnitMarkings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICutUnitMarkingsT<T>::get_CutUnitMarking(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ICutUnitMarkingPtr* Result/*[out,retval]*/)
{
  return (*this)->get_CutUnitMarking(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall
TCOMICutUnitMarkingsT<T>::get_CutUnitMarking(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICutUnitMarkingPtr Result;
  OLECHECK(this->get_CutUnitMarking(Index, (Kompasltapi7_tlb::ICutUnitMarkingPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutUnitMarkingsT<T>::Add(Kompasltapi7_tlb::ICutUnitMarkingPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall
TCOMICutUnitMarkingsT<T>::Add(void)
{
  Kompasltapi7_tlb::ICutUnitMarkingPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::ICutUnitMarkingPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ICutUnitMarkings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {23B00F94-98D3-4AD7-8827-F4088F4A9E5C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get_CutUnitMarking(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::ICutUnitMarkingPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutUnitMarking"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICutUnitMarking**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall
ICutUnitMarkingsDispT<T>::get_CutUnitMarking(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICutUnitMarkingPtr Result;
  this->get_CutUnitMarking(Index, (Kompasltapi7_tlb::ICutUnitMarkingPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::Add(Kompasltapi7_tlb::ICutUnitMarkingPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICutUnitMarking**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICutUnitMarkingPtr __fastcall
ICutUnitMarkingsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ICutUnitMarkingPtr Value;
  this->Add((Kompasltapi7_tlb::ICutUnitMarkingPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ICutUnitMarkingsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ICutUnitMarkingsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutUnitMarkingsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICutUnitMarkingsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICutUnitMarkingsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICutUnitMarkingsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutUnitMarkingsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutUnitMarkingsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIUnitMarking
// Interface: IUnitMarking
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_Xc(double* Result/*[out,retval]*/)
{
  return (*this)->get_Xc(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_Xc(void)
{
  double Result;
  OLECHECK(this->get_Xc((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_Xc(double Result/*[in]*/)
{
  return (*this)->set_Xc(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_Yc(double* Result/*[out,retval]*/)
{
  return (*this)->get_Yc(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_Yc(void)
{
  double Result;
  OLECHECK(this->get_Yc((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_Yc(double Result/*[in]*/)
{
  return (*this)->set_Yc(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_Radius(double* Result/*[out,retval]*/)
{
  return (*this)->get_Radius(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_Radius(void)
{
  double Result;
  OLECHECK(this->get_Radius((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_Radius(double Result/*[in]*/)
{
  return (*this)->set_Radius(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_Height(double* Result/*[out,retval]*/)
{
  return (*this)->get_Height(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_Height(void)
{
  double Result;
  OLECHECK(this->get_Height((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_Height(double Result/*[in]*/)
{
  return (*this)->set_Height(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_Width(double* Result/*[out,retval]*/)
{
  return (*this)->get_Width(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_Width(void)
{
  double Result;
  OLECHECK(this->get_Width((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_Width(double Result/*[in]*/)
{
  return (*this)->set_Width(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfDirection(Result);
}

template <class T> ksShelfDirectionEnum __fastcall
TCOMIUnitMarkingT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  return (*this)->set_ShelfDirection(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfX(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_ShelfX(void)
{
  double Result;
  OLECHECK(this->get_ShelfX((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_ShelfX(double Result/*[in]*/)
{
  return (*this)->set_ShelfX(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfY(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_ShelfY(void)
{
  double Result;
  OLECHECK(this->get_ShelfY((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_ShelfY(double Result/*[in]*/)
{
  return (*this)->set_ShelfY(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_Form(ksContourFormEnum* Result/*[out,retval]*/)
{
  return (*this)->get_Form(Result);
}

template <class T> ksContourFormEnum __fastcall
TCOMIUnitMarkingT<T>::get_Form(void)
{
  ksContourFormEnum Result;
  OLECHECK(this->get_Form((ksContourFormEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_Form(ksContourFormEnum Result/*[in]*/)
{
  return (*this)->set_Form(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_TextUp(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIUnitMarkingT<T>::get_TextUp(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_TextDown(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIUnitMarkingT<T>::get_TextDown(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::get_FilletRadius(double* Result/*[out,retval]*/)
{
  return (*this)->get_FilletRadius(Result);
}

template <class T> double __fastcall
TCOMIUnitMarkingT<T>::get_FilletRadius(void)
{
  double Result;
  OLECHECK(this->get_FilletRadius((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingT<T>::set_FilletRadius(double Result/*[in]*/)
{
  return (*this)->set_FilletRadius(Result);
}

// *********************************************************************//
// DispIntf:  IUnitMarking
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {86F46084-16A8-4B5C-99E9-F848216788F0}
// *********************************************************************//
template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Xc(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_Xc(void)
{
  double Result;
  this->get_Xc((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_Xc(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Yc(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_Yc(void)
{
  double Result;
  this->get_Yc((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_Yc(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Radius(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_Radius(void)
{
  double Result;
  this->get_Radius((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_Radius(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Height(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_Height(void)
{
  double Result;
  this->get_Height((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_Height(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Width(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_Width(void)
{
  double Result;
  this->get_Width((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_Width(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IUnitMarkingDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_ShelfX(void)
{
  double Result;
  this->get_ShelfX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_ShelfX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_ShelfY(void)
{
  double Result;
  this->get_ShelfY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_ShelfY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Form(ksContourFormEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksContourFormEnum __fastcall
IUnitMarkingDispT<T>::get_Form(void)
{
  ksContourFormEnum Result;
  this->get_Form((ksContourFormEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_Form(ksContourFormEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUp"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IUnitMarkingDispT<T>::get_TextUp(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDown"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IUnitMarkingDispT<T>::get_TextDown(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_FilletRadius(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilletRadius"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitMarkingDispT<T>::get_FilletRadius(void)
{
  double Result;
  this->get_FilletRadius((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_FilletRadius(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilletRadius"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IUnitMarkingDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitMarkingDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitMarkingDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitMarkingDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitMarkingDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitMarkingDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IUnitMarkingDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IUnitMarkingDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IUnitMarkingDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IUnitMarkingDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitMarkingDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitMarkingDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIUnitMarkings
// Interface: IUnitMarkings
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIUnitMarkingsT<T>::get_UnitMarking(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IUnitMarkingPtr* Result/*[out,retval]*/)
{
  return (*this)->get_UnitMarking(Index, Result);
}

template <class T> Kompasltapi7_tlb::IUnitMarkingPtr __fastcall
TCOMIUnitMarkingsT<T>::get_UnitMarking(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUnitMarkingPtr Result;
  OLECHECK(this->get_UnitMarking(Index, (Kompasltapi7_tlb::IUnitMarkingPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitMarkingsT<T>::Add(Kompasltapi7_tlb::IUnitMarkingPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IUnitMarkingPtr __fastcall
TCOMIUnitMarkingsT<T>::Add(void)
{
  Kompasltapi7_tlb::IUnitMarkingPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IUnitMarkingPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IUnitMarkings
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {969AD901-FC09-47F5-94F5-1ABEB1A9C85C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get_UnitMarking(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IUnitMarkingPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnitMarking"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUnitMarking**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUnitMarkingPtr __fastcall
IUnitMarkingsDispT<T>::get_UnitMarking(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUnitMarkingPtr Result;
  this->get_UnitMarking(Index, (Kompasltapi7_tlb::IUnitMarkingPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::Add(Kompasltapi7_tlb::IUnitMarkingPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUnitMarking**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUnitMarkingPtr __fastcall
IUnitMarkingsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IUnitMarkingPtr Value;
  this->Add((Kompasltapi7_tlb::IUnitMarkingPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IUnitMarkingsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IUnitMarkingsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitMarkingsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IUnitMarkingsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IUnitMarkingsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IUnitMarkingsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitMarkingsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitMarkingsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBuildingContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FD1FD236-F5BA-4FB0-A872-21FC13E6895F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_BuildingAxes(Kompasltapi7_tlb::IBuildingAxesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BuildingAxes"), DISPID(5501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBuildingAxes**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBuildingAxesPtr __fastcall
IBuildingContainerDispT<T>::get_BuildingAxes(void)
{
  Kompasltapi7_tlb::IBuildingAxesPtr PVal;
  this->get_BuildingAxes((Kompasltapi7_tlb::IBuildingAxesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_Marks(Kompasltapi7_tlb::IMarksPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Marks"), DISPID(5502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMarks**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMarksPtr __fastcall
IBuildingContainerDispT<T>::get_Marks(void)
{
  Kompasltapi7_tlb::IMarksPtr PVal;
  this->get_Marks((Kompasltapi7_tlb::IMarksPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_CutUnitMarkings(Kompasltapi7_tlb::ICutUnitMarkingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutUnitMarkings"), DISPID(5503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICutUnitMarkings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICutUnitMarkingsPtr __fastcall
IBuildingContainerDispT<T>::get_CutUnitMarkings(void)
{
  Kompasltapi7_tlb::ICutUnitMarkingsPtr PVal;
  this->get_CutUnitMarkings((Kompasltapi7_tlb::ICutUnitMarkingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_UnitMarkings(Kompasltapi7_tlb::IUnitMarkingsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnitMarkings"), DISPID(5504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUnitMarkings**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUnitMarkingsPtr __fastcall
IBuildingContainerDispT<T>::get_UnitMarkings(void)
{
  Kompasltapi7_tlb::IUnitMarkingsPtr PVal;
  this->get_UnitMarkings((Kompasltapi7_tlb::IUnitMarkingsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_MultiTextLeaders(Kompasltapi7_tlb::IMultiTextLeadersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MultiTextLeaders"), DISPID(5505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMultiTextLeaders**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMultiTextLeadersPtr __fastcall
IBuildingContainerDispT<T>::get_MultiTextLeaders(void)
{
  Kompasltapi7_tlb::IMultiTextLeadersPtr PVal;
  this->get_MultiTextLeaders((Kompasltapi7_tlb::IMultiTextLeadersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_UnitNumbers(Kompasltapi7_tlb::IUnitNumbersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnitNumbers"), DISPID(5506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUnitNumbers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUnitNumbersPtr __fastcall
IBuildingContainerDispT<T>::get_UnitNumbers(void)
{
  Kompasltapi7_tlb::IUnitNumbersPtr PVal;
  this->get_UnitNumbers((Kompasltapi7_tlb::IUnitNumbersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_Braces(Kompasltapi7_tlb::IBracesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Braces"), DISPID(5507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBraces**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBracesPtr __fastcall
IBuildingContainerDispT<T>::get_Braces(void)
{
  Kompasltapi7_tlb::IBracesPtr PVal;
  this->get_Braces((Kompasltapi7_tlb::IBracesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBuildingContainerDispT<T>::get_BuildingCutLines(Kompasltapi7_tlb::ICutLinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BuildingCutLines"), DISPID(5508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICutLines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICutLinesPtr __fastcall
IBuildingContainerDispT<T>::get_BuildingCutLines(void)
{
  Kompasltapi7_tlb::ICutLinesPtr PVal;
  this->get_BuildingCutLines((Kompasltapi7_tlb::ICutLinesPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMultiTextLeaders
// Interface: IMultiTextLeaders
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMultiTextLeadersT<T>::get_MultiTextLeader(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IMultiTextLeaderPtr* Result/*[out,retval]*/)
{
  return (*this)->get_MultiTextLeader(Index, Result);
}

template <class T> Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall
TCOMIMultiTextLeadersT<T>::get_MultiTextLeader(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMultiTextLeaderPtr Result;
  OLECHECK(this->get_MultiTextLeader(Index, (Kompasltapi7_tlb::IMultiTextLeaderPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeadersT<T>::Add(Kompasltapi7_tlb::IMultiTextLeaderPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall
TCOMIMultiTextLeadersT<T>::Add(void)
{
  Kompasltapi7_tlb::IMultiTextLeaderPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IMultiTextLeaderPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IMultiTextLeaders
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {233B2298-7A45-4CE1-AEF2-30B063FDB63C}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get_MultiTextLeader(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IMultiTextLeaderPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MultiTextLeader"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMultiTextLeader**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall
IMultiTextLeadersDispT<T>::get_MultiTextLeader(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IMultiTextLeaderPtr Result;
  this->get_MultiTextLeader(Index, (Kompasltapi7_tlb::IMultiTextLeaderPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::Add(Kompasltapi7_tlb::IMultiTextLeaderPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IMultiTextLeader**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IMultiTextLeaderPtr __fastcall
IMultiTextLeadersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IMultiTextLeaderPtr Value;
  this->Add((Kompasltapi7_tlb::IMultiTextLeaderPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IMultiTextLeadersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IMultiTextLeadersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultiTextLeadersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMultiTextLeadersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMultiTextLeadersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMultiTextLeadersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultiTextLeadersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultiTextLeadersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMultiTextLeader
// Interface: IMultiTextLeader
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_ArrowType(ksArrowEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ArrowType(Result);
}

template <class T> ksArrowEnum __fastcall
TCOMIMultiTextLeaderT<T>::get_ArrowType(void)
{
  ksArrowEnum Result;
  OLECHECK(this->get_ArrowType((ksArrowEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_ArrowType(ksArrowEnum Result/*[in]*/)
{
  return (*this)->set_ArrowType(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchCount(long* Result/*[out,retval]*/)
{
  return (*this)->get_BranchCount(Result);
}

template <class T> long __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchCount(void)
{
  long Result;
  OLECHECK(this->get_BranchCount((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_BranchPoints(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchPoints(Index, PVal);
}

template <class T> TVariant __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchPoints(long Index/*[in]*/)
{
  TVariant PVal;
  OLECHECK(this->get_BranchPoints(Index, (TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/)
{
  return (*this)->get_BranchPointsCount(Index, Result);
}

template <class T> long __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchPointsCount(long Index/*[in]*/)
{
  long Result;
  OLECHECK(this->get_BranchPointsCount(Index, (long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_BranchX(long Index/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_BranchX(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchX(Index, PVal);
}

template <class T> double __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchX(long Index/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_BranchX(Index, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_BranchY(long Index/*[in]*/, double PVal/*[in]*/)
{
  return (*this)->set_BranchY(Index, PVal);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  return (*this)->get_BranchY(Index, PVal);
}

template <class T> double __fastcall
TCOMIMultiTextLeaderT<T>::get_BranchY(long Index/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_BranchY(Index, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddBranch(Index, Points, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultiTextLeaderT<T>::AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddBranch(Index, Points, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->AddBranchByPoint(Index, X, Y, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultiTextLeaderT<T>::AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->AddBranchByPoint(Index, X, Y, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->DeleteBranch(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultiTextLeaderT<T>::DeleteBranch(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->DeleteBranch(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfX(Result);
}

template <class T> double __fastcall
TCOMIMultiTextLeaderT<T>::get_ShelfX(void)
{
  double Result;
  OLECHECK(this->get_ShelfX((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_ShelfX(double Result/*[in]*/)
{
  return (*this)->set_ShelfX(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfY(Result);
}

template <class T> double __fastcall
TCOMIMultiTextLeaderT<T>::get_ShelfY(void)
{
  double Result;
  OLECHECK(this->get_ShelfY((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_ShelfY(double Result/*[in]*/)
{
  return (*this)->set_ShelfY(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfDirection(Result);
}

template <class T> ksShelfDirectionEnum __fastcall
TCOMIMultiTextLeaderT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  return (*this)->set_ShelfDirection(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_TextDirection(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_TextDirection(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultiTextLeaderT<T>::get_TextDirection(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_TextDirection((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_TextDirection(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_TextDirection(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_Form(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Form(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultiTextLeaderT<T>::get_Form(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Form((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_Form(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Form(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_Align(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Align(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIMultiTextLeaderT<T>::get_Align(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Align((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::set_Align(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Align(Result);
}

template <class T> HRESULT __fastcall
TCOMIMultiTextLeaderT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIMultiTextLeaderT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IMultiTextLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1BFC5D3F-1483-4569-B4B5-7A12163A4655}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_ArrowType(ksArrowEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksArrowEnum __fastcall
IMultiTextLeaderDispT<T>::get_ArrowType(void)
{
  ksArrowEnum Result;
  this->get_ArrowType((ksArrowEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_ArrowType(ksArrowEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_BranchCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchCount"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultiTextLeaderDispT<T>::get_BranchCount(void)
{
  long Result;
  this->get_BranchCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IMultiTextLeaderDispT<T>::get_BranchPoints(long Index/*[in]*/)
{
  TVariant PVal;
  this->get_BranchPoints(Index, (TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPointsCount"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultiTextLeaderDispT<T>::get_BranchPointsCount(long Index/*[in]*/)
{
  long Result;
  this->get_BranchPointsCount(Index, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_BranchX(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(5));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMultiTextLeaderDispT<T>::get_BranchX(long Index/*[in]*/)
{
  double PVal;
  this->get_BranchX(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_BranchY(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMultiTextLeaderDispT<T>::get_BranchY(long Index/*[in]*/)
{
  double PVal;
  this->get_BranchY(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                                    TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranch"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Points /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/)
{
  TOLEBOOL Result;
  this->AddBranch(Index, Points, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                           TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranchByPoint"), DISPID(8));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL Result;
  this->AddBranchByPoint(Index, X, Y, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteBranch"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::DeleteBranch(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteBranch(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMultiTextLeaderDispT<T>::get_ShelfX(void)
{
  double Result;
  this->get_ShelfX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_ShelfX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMultiTextLeaderDispT<T>::get_ShelfY(void)
{
  double Result;
  this->get_ShelfY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_ShelfY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IMultiTextLeaderDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_TextDirection(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDirection"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::get_TextDirection(void)
{
  TOLEBOOL Result;
  this->get_TextDirection((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_TextDirection(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDirection"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Form(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::get_Form(void)
{
  TOLEBOOL Result;
  this->get_Form((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_Form(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Align(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::get_Align(void)
{
  TOLEBOOL Result;
  this->get_Align((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_Align(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Align"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMultiTextLeaderDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IMultiTextLeaderDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultiTextLeaderDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMultiTextLeaderDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IMultiTextLeaderDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMultiTextLeaderDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMultiTextLeaderDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMultiTextLeaderDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMultiTextLeaderDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMultiTextLeaderDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIUnitNumbers
// Interface: IUnitNumbers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIUnitNumbersT<T>::get_UnitNumber(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IUnitNumberPtr* Result/*[out,retval]*/)
{
  return (*this)->get_UnitNumber(Index, Result);
}

template <class T> Kompasltapi7_tlb::IUnitNumberPtr __fastcall
TCOMIUnitNumbersT<T>::get_UnitNumber(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUnitNumberPtr Result;
  OLECHECK(this->get_UnitNumber(Index, (Kompasltapi7_tlb::IUnitNumberPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitNumbersT<T>::Add(Kompasltapi7_tlb::IUnitNumberPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IUnitNumberPtr __fastcall
TCOMIUnitNumbersT<T>::Add(void)
{
  Kompasltapi7_tlb::IUnitNumberPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IUnitNumberPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IUnitNumbers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {598E649B-970C-454B-9162-1BB6C9FBFCBF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get_UnitNumber(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IUnitNumberPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnitNumber"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUnitNumber**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUnitNumberPtr __fastcall
IUnitNumbersDispT<T>::get_UnitNumber(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IUnitNumberPtr Result;
  this->get_UnitNumber(Index, (Kompasltapi7_tlb::IUnitNumberPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::Add(Kompasltapi7_tlb::IUnitNumberPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IUnitNumber**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IUnitNumberPtr __fastcall
IUnitNumbersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IUnitNumberPtr Value;
  this->Add((Kompasltapi7_tlb::IUnitNumberPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IUnitNumbersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IUnitNumbersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitNumbersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IUnitNumbersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IUnitNumbersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IUnitNumbersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitNumbersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitNumbersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIUnitNumber
// Interface: IUnitNumber
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIUnitNumberT<T>::get_X(double* Result/*[out,retval]*/)
{
  return (*this)->get_X(Result);
}

template <class T> double __fastcall
TCOMIUnitNumberT<T>::get_X(void)
{
  double Result;
  OLECHECK(this->get_X((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitNumberT<T>::set_X(double Result/*[in]*/)
{
  return (*this)->set_X(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitNumberT<T>::get_Y(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y(Result);
}

template <class T> double __fastcall
TCOMIUnitNumberT<T>::get_Y(void)
{
  double Result;
  OLECHECK(this->get_Y((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIUnitNumberT<T>::set_Y(double Result/*[in]*/)
{
  return (*this)->set_Y(Result);
}

template <class T> HRESULT __fastcall
TCOMIUnitNumberT<T>::get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_TextUp(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIUnitNumberT<T>::get_TextUp(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIUnitNumberT<T>::get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_TextDown(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIUnitNumberT<T>::get_TextDown(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IUnitNumber
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FABAF607-CB92-47C4-9409-B7678162051D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitNumberDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IUnitNumberDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUp"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IUnitNumberDispT<T>::get_TextUp(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDown"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IUnitNumberDispT<T>::get_TextDown(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IUnitNumberDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitNumberDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitNumberDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitNumberDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitNumberDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IUnitNumberDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IUnitNumberDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IUnitNumberDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IUnitNumberDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IUnitNumberDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IUnitNumberDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IUnitNumberDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBraces
// Interface: IBraces
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBracesT<T>::get_Brace(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IBracePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Brace(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBracePtr __fastcall
TCOMIBracesT<T>::get_Brace(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBracePtr Result;
  OLECHECK(this->get_Brace(Index, (Kompasltapi7_tlb::IBracePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBracesT<T>::Add(Kompasltapi7_tlb::IBracePtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IBracePtr __fastcall
TCOMIBracesT<T>::Add(void)
{
  Kompasltapi7_tlb::IBracePtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IBracePtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IBraces
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {99F27BD6-6294-45D9-AF78-A9D52E9DD799}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBracesDispT<T>::get_Brace(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IBracePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Brace"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBrace**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBracePtr __fastcall
IBracesDispT<T>::get_Brace(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBracePtr Result;
  this->get_Brace(Index, (Kompasltapi7_tlb::IBracePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::Add(Kompasltapi7_tlb::IBracePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBrace**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBracePtr __fastcall
IBracesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IBracePtr Value;
  this->Add((Kompasltapi7_tlb::IBracePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                          Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBracesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBracesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBracesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBracesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBracesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBracesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBracesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBracesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBrace
// Interface: IBrace
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Radius(double* Result/*[out,retval]*/)
{
  return (*this)->get_Radius(Result);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_Radius(void)
{
  double Result;
  OLECHECK(this->get_Radius((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Radius(double Result/*[in]*/)
{
  return (*this)->set_Radius(Result);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfDirection(Result);
}

template <class T> ksShelfDirectionEnum __fastcall
TCOMIBraceT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  OLECHECK(this->get_ShelfDirection((ksShelfDirectionEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  return (*this)->set_ShelfDirection(Result);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfX(Result);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_ShelfX(void)
{
  double Result;
  OLECHECK(this->get_ShelfX((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_ShelfX(double Result/*[in]*/)
{
  return (*this)->set_ShelfX(Result);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfY(Result);
}

template <class T> double __fastcall
TCOMIBraceT<T>::get_ShelfY(void)
{
  double Result;
  OLECHECK(this->get_ShelfY((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_ShelfY(double Result/*[in]*/)
{
  return (*this)->set_ShelfY(Result);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Direction(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_Direction(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBraceT<T>::get_Direction(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_Direction((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Direction(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_Direction(Result);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Alignment(ksAlignmentTypeEnum* Result/*[out,retval]*/)
{
  return (*this)->get_Alignment(Result);
}

template <class T> ksAlignmentTypeEnum __fastcall
TCOMIBraceT<T>::get_Alignment(void)
{
  ksAlignmentTypeEnum Result;
  OLECHECK(this->get_Alignment((ksAlignmentTypeEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Alignment(ksAlignmentTypeEnum Result/*[in]*/)
{
  return (*this)->set_Alignment(Result);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIBraceT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIBraceT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::set_ShelfPoints(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_ShelfPoints(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBraceT<T>::get_ShelfPoints(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfPoints(PVal);
}

template <class T> TVariant __fastcall
TCOMIBraceT<T>::get_ShelfPoints(void)
{
  TVariant PVal;
  OLECHECK(this->get_ShelfPoints((TVariant*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBrace
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7F328D28-76E9-4E04-A35C-AD60339998E4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBraceDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Radius(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_Radius(void)
{
  double Result;
  this->get_Radius((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Radius(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IBraceDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_ShelfX(void)
{
  double Result;
  this->get_ShelfX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_ShelfX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBraceDispT<T>::get_ShelfY(void)
{
  double Result;
  this->get_ShelfY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_ShelfY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Direction(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBraceDispT<T>::get_Direction(void)
{
  TOLEBOOL Result;
  this->get_Direction((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Direction(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Alignment(ksAlignmentTypeEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Alignment"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAlignmentTypeEnum __fastcall
IBraceDispT<T>::get_Alignment(void)
{
  ksAlignmentTypeEnum Result;
  this->get_Alignment((ksAlignmentTypeEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Alignment(ksAlignmentTypeEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Alignment"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBraceDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBraceDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_ShelfPoints(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfPoints"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_ShelfPoints(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfPoints"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IBraceDispT<T>::get_ShelfPoints(void)
{
  TVariant PVal;
  this->get_ShelfPoints((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBraceDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBraceDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBraceDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBraceDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBraceDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBraceDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBraceDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBraceDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBraceDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBraceDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBraceDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBraceDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICutLines
// Interface: ICutLines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICutLinesT<T>::get_CutLine(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::ICutLinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_CutLine(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICutLinePtr __fastcall
TCOMICutLinesT<T>::get_CutLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICutLinePtr Result;
  OLECHECK(this->get_CutLine(Index, (Kompasltapi7_tlb::ICutLinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLinesT<T>::Add(Kompasltapi7_tlb::ICutLinePtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::ICutLinePtr __fastcall
TCOMICutLinesT<T>::Add(void)
{
  Kompasltapi7_tlb::ICutLinePtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::ICutLinePtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ICutLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {666DA5B4-324C-493C-9A91-37D9E078EB4E}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get_CutLine(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::ICutLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutLine"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICutLine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICutLinePtr __fastcall
ICutLinesDispT<T>::get_CutLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICutLinePtr Result;
  this->get_CutLine(Index, (Kompasltapi7_tlb::ICutLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::Add(Kompasltapi7_tlb::ICutLinePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICutLine**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICutLinePtr __fastcall
ICutLinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ICutLinePtr Value;
  this->Add((Kompasltapi7_tlb::ICutLinePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                            Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ICutLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ICutLinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutLinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICutLinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICutLinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICutLinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutLinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutLinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICutLine
// Interface: ICutLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_ArrowPos(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_ArrowPos(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICutLineT<T>::get_ArrowPos(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_ArrowPos((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_ArrowPos(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_ArrowPos(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_X1(double* Result/*[out,retval]*/)
{
  return (*this)->get_X1(Result);
}

template <class T> double __fastcall
TCOMICutLineT<T>::get_X1(void)
{
  double Result;
  OLECHECK(this->get_X1((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_X1(double Result/*[in]*/)
{
  return (*this)->set_X1(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_Y1(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y1(Result);
}

template <class T> double __fastcall
TCOMICutLineT<T>::get_Y1(void)
{
  double Result;
  OLECHECK(this->get_Y1((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_Y1(double Result/*[in]*/)
{
  return (*this)->set_Y1(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_X2(double* Result/*[out,retval]*/)
{
  return (*this)->get_X2(Result);
}

template <class T> double __fastcall
TCOMICutLineT<T>::get_X2(void)
{
  double Result;
  OLECHECK(this->get_X2((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_X2(double Result/*[in]*/)
{
  return (*this)->set_X2(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_Y2(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y2(Result);
}

template <class T> double __fastcall
TCOMICutLineT<T>::get_Y2(void)
{
  double Result;
  OLECHECK(this->get_Y2((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_Y2(double Result/*[in]*/)
{
  return (*this)->set_Y2(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_Points(TVariantInParam PVal/*[in]*/)
{
  return (*this)->set_Points(PVal);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_Points(TVariant* PVal/*[out,retval]*/)
{
  return (*this)->get_Points(PVal);
}

template <class T> TVariant __fastcall
TCOMICutLineT<T>::get_Points(void)
{
  TVariant PVal;
  OLECHECK(this->get_Points((TVariant*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSorted(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICutLineT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSorted(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMICutLineT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalText(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMICutLineT<T>::get_AdditionalText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSheet(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICutLineT<T>::get_AutoSheet(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSheet((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_AutoSheet(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSheet(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_AutoZone(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoZone(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICutLineT<T>::get_AutoZone(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoZone((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_AutoZone(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoZone(Result);
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::get_AdditionalTextPos(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AdditionalTextPos(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMICutLineT<T>::get_AdditionalTextPos(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AdditionalTextPos((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICutLineT<T>::set_AdditionalTextPos(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AdditionalTextPos(Result);
}

// *********************************************************************//
// DispIntf:  ICutLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {26E86124-DC1C-41A2-8075-E73F3EAD8474}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_ArrowPos(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowPos"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::get_ArrowPos(void)
{
  TOLEBOOL Result;
  this->get_ArrowPos((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_ArrowPos(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowPos"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_X1(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutLineDispT<T>::get_X1(void)
{
  double Result;
  this->get_X1((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_X1(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Y1(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutLineDispT<T>::get_Y1(void)
{
  double Result;
  this->get_Y1((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_Y1(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_X2(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutLineDispT<T>::get_X2(void)
{
  double Result;
  this->get_X2((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_X2(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Y2(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICutLineDispT<T>::get_Y2(void)
{
  double Result;
  this->get_Y2((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_Y2(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_Points(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Points(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Points"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ICutLineDispT<T>::get_Points(void)
{
  TVariant PVal;
  this->get_Points((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  this->get_AutoSorted((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ICutLineDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalText"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ICutLineDispT<T>::get_AdditionalText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSheet"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::get_AutoSheet(void)
{
  TOLEBOOL Result;
  this->get_AutoSheet((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_AutoSheet(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSheet"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_AutoZone(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoZone"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::get_AutoZone(void)
{
  TOLEBOOL Result;
  this->get_AutoZone((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_AutoZone(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoZone"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_AdditionalTextPos(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalTextPos"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::get_AdditionalTextPos(void)
{
  TOLEBOOL Result;
  this->get_AdditionalTextPos((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_AdditionalTextPos(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalTextPos"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ICutLineDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutLineDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICutLineDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ICutLineDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICutLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICutLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICutLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICutLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICutLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  ISymbols2DContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F46B0086-17F2-4489-A5A7-0AA677610AFD}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_LineDimensions(Kompasltapi7_tlb::ILineDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineDimensions"), DISPID(10001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILineDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILineDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_LineDimensions(void)
{
  Kompasltapi7_tlb::ILineDimensionsPtr PVal;
  this->get_LineDimensions((Kompasltapi7_tlb::ILineDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_RadialDimensions(Kompasltapi7_tlb::IRadialDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RadialDimensions"), DISPID(10002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRadialDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRadialDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_RadialDimensions(void)
{
  Kompasltapi7_tlb::IRadialDimensionsPtr PVal;
  this->get_RadialDimensions((Kompasltapi7_tlb::IRadialDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_DiametralDimensions(Kompasltapi7_tlb::IDiametralDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DiametralDimensions"), DISPID(10003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDiametralDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDiametralDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_DiametralDimensions(void)
{
  Kompasltapi7_tlb::IDiametralDimensionsPtr PVal;
  this->get_DiametralDimensions((Kompasltapi7_tlb::IDiametralDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_AngleDimensions(Kompasltapi7_tlb::IAngleDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleDimensions"), DISPID(10004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAngleDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAngleDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_AngleDimensions(void)
{
  Kompasltapi7_tlb::IAngleDimensionsPtr PVal;
  this->get_AngleDimensions((Kompasltapi7_tlb::IAngleDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_BreakLineDimensions(Kompasltapi7_tlb::IBreakLineDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLineDimensions"), DISPID(10005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBreakLineDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBreakLineDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_BreakLineDimensions(void)
{
  Kompasltapi7_tlb::IBreakLineDimensionsPtr PVal;
  this->get_BreakLineDimensions((Kompasltapi7_tlb::IBreakLineDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_HeightDimensions(Kompasltapi7_tlb::IHeightDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HeightDimensions"), DISPID(10006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IHeightDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IHeightDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_HeightDimensions(void)
{
  Kompasltapi7_tlb::IHeightDimensionsPtr PVal;
  this->get_HeightDimensions((Kompasltapi7_tlb::IHeightDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_ArcDimensions(Kompasltapi7_tlb::IArcDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArcDimensions"), DISPID(10007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IArcDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IArcDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_ArcDimensions(void)
{
  Kompasltapi7_tlb::IArcDimensionsPtr PVal;
  this->get_ArcDimensions((Kompasltapi7_tlb::IArcDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_BreakRadialDimensions(Kompasltapi7_tlb::IBreakRadialDimensionsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakRadialDimensions"), DISPID(10008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBreakRadialDimensions**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBreakRadialDimensionsPtr __fastcall
ISymbols2DContainerDispT<T>::get_BreakRadialDimensions(void)
{
  Kompasltapi7_tlb::IBreakRadialDimensionsPtr PVal;
  this->get_BreakRadialDimensions((Kompasltapi7_tlb::IBreakRadialDimensionsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_Roughs(Kompasltapi7_tlb::IRoughsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Roughs"), DISPID(10009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRoughs**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRoughsPtr __fastcall
ISymbols2DContainerDispT<T>::get_Roughs(void)
{
  Kompasltapi7_tlb::IRoughsPtr PVal;
  this->get_Roughs((Kompasltapi7_tlb::IRoughsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_Leaders(Kompasltapi7_tlb::ILeadersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Leaders"), DISPID(10010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILeaders**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILeadersPtr __fastcall
ISymbols2DContainerDispT<T>::get_Leaders(void)
{
  Kompasltapi7_tlb::ILeadersPtr PVal;
  this->get_Leaders((Kompasltapi7_tlb::ILeadersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_Bases(Kompasltapi7_tlb::IBasesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Bases"), DISPID(10011));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBases**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBasesPtr __fastcall
ISymbols2DContainerDispT<T>::get_Bases(void)
{
  Kompasltapi7_tlb::IBasesPtr PVal;
  this->get_Bases((Kompasltapi7_tlb::IBasesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_Tolerances(Kompasltapi7_tlb::ITolerancesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tolerances"), DISPID(10012));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITolerances**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITolerancesPtr __fastcall
ISymbols2DContainerDispT<T>::get_Tolerances(void)
{
  Kompasltapi7_tlb::ITolerancesPtr PVal;
  this->get_Tolerances((Kompasltapi7_tlb::ITolerancesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_DrawingTables(Kompasltapi7_tlb::IDrawingTablesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingTables"), DISPID(10013));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingTables**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingTablesPtr __fastcall
ISymbols2DContainerDispT<T>::get_DrawingTables(void)
{
  Kompasltapi7_tlb::IDrawingTablesPtr PVal;
  this->get_DrawingTables((Kompasltapi7_tlb::IDrawingTablesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_CutLines(Kompasltapi7_tlb::ICutLinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CutLines"), DISPID(10014));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICutLines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICutLinesPtr __fastcall
ISymbols2DContainerDispT<T>::get_CutLines(void)
{
  Kompasltapi7_tlb::ICutLinesPtr PVal;
  this->get_CutLines((Kompasltapi7_tlb::ICutLinesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_ViewPointers(Kompasltapi7_tlb::IViewPointersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewPointers"), DISPID(10015));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IViewPointers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPointersPtr __fastcall
ISymbols2DContainerDispT<T>::get_ViewPointers(void)
{
  Kompasltapi7_tlb::IViewPointersPtr PVal;
  this->get_ViewPointers((Kompasltapi7_tlb::IViewPointersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_CentreMarkers(Kompasltapi7_tlb::ICentreMarkersPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CentreMarkers"), DISPID(10016));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICentreMarkers**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICentreMarkersPtr __fastcall
ISymbols2DContainerDispT<T>::get_CentreMarkers(void)
{
  Kompasltapi7_tlb::ICentreMarkersPtr PVal;
  this->get_CentreMarkers((Kompasltapi7_tlb::ICentreMarkersPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_RemoteElements(Kompasltapi7_tlb::IRemoteElementsPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteElements"), DISPID(10017));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRemoteElements**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRemoteElementsPtr __fastcall
ISymbols2DContainerDispT<T>::get_RemoteElements(void)
{
  Kompasltapi7_tlb::IRemoteElementsPtr PVal;
  this->get_RemoteElements((Kompasltapi7_tlb::IRemoteElementsPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_AxisLines(Kompasltapi7_tlb::IAxisLinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AxisLines"), DISPID(10018));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAxisLines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAxisLinesPtr __fastcall
ISymbols2DContainerDispT<T>::get_AxisLines(void)
{
  Kompasltapi7_tlb::IAxisLinesPtr PVal;
  this->get_AxisLines((Kompasltapi7_tlb::IAxisLinesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_WaveLines(Kompasltapi7_tlb::IWaveLinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WaveLines"), DISPID(10019));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IWaveLines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IWaveLinesPtr __fastcall
ISymbols2DContainerDispT<T>::get_WaveLines(void)
{
  Kompasltapi7_tlb::IWaveLinesPtr PVal;
  this->get_WaveLines((Kompasltapi7_tlb::IWaveLinesPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ISymbols2DContainerDispT<T>::get_BrokenLines(Kompasltapi7_tlb::IBrokenLinesPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BrokenLines"), DISPID(10020));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBrokenLines**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBrokenLinesPtr __fastcall
ISymbols2DContainerDispT<T>::get_BrokenLines(void)
{
  Kompasltapi7_tlb::IBrokenLinesPtr PVal;
  this->get_BrokenLines((Kompasltapi7_tlb::IBrokenLinesPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILineDimensions
// Interface: ILineDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILineDimensionsT<T>::get_LineDimension(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ILineDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_LineDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::ILineDimensionPtr __fastcall
TCOMILineDimensionsT<T>::get_LineDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILineDimensionPtr Result;
  OLECHECK(this->get_LineDimension(Index, (Kompasltapi7_tlb::ILineDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionsT<T>::Add(Kompasltapi7_tlb::ILineDimensionPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::ILineDimensionPtr __fastcall
TCOMILineDimensionsT<T>::Add(void)
{
  Kompasltapi7_tlb::ILineDimensionPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::ILineDimensionPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ILineDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A6F6A18A-78FA-4A77-BB75-90647E0C545C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get_LineDimension(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::ILineDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LineDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILineDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILineDimensionPtr __fastcall
ILineDimensionsDispT<T>::get_LineDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ILineDimensionPtr Result;
  this->get_LineDimension(Index, (Kompasltapi7_tlb::ILineDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::Add(Kompasltapi7_tlb::ILineDimensionPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ILineDimension**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ILineDimensionPtr __fastcall
ILineDimensionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ILineDimensionPtr Value;
  this->Add((Kompasltapi7_tlb::ILineDimensionPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ILineDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILineDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILineDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILineDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILineDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILineDimension
// Interface: ILineDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X3(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_X3(void)
{
  double PVal;
  OLECHECK(this->get_X3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_X3(double PVal/*[in]*/)
{
  return (*this)->set_X3(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y3(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_Y3(void)
{
  double PVal;
  OLECHECK(this->get_Y3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_Y3(double PVal/*[in]*/)
{
  return (*this)->set_Y3(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfX(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_ShelfX(void)
{
  double PVal;
  OLECHECK(this->get_ShelfX((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_ShelfX(double PVal/*[in]*/)
{
  return (*this)->set_ShelfX(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfY(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_ShelfY(void)
{
  double PVal;
  OLECHECK(this->get_ShelfY((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_ShelfY(double PVal/*[in]*/)
{
  return (*this)->set_ShelfY(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_Orientation(ksLineDimensionOrientationEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_Orientation(PVal);
}

template <class T> ksLineDimensionOrientationEnum __fastcall
TCOMILineDimensionT<T>::get_Orientation(void)
{
  ksLineDimensionOrientationEnum PVal;
  OLECHECK(this->get_Orientation((ksLineDimensionOrientationEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_Orientation(ksLineDimensionOrientationEnum PVal/*[in]*/)
{
  return (*this)->set_Orientation(PVal);
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMILineDimensionT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMILineDimensionT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

// *********************************************************************//
// DispIntf:  ILineDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A3767BDA-E605-4FC1-988D-81809DEB36F4}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_ShelfX(void)
{
  double PVal;
  this->get_ShelfX((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_ShelfX(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_ShelfY(void)
{
  double PVal;
  this->get_ShelfY((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_ShelfY(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Orientation(ksLineDimensionOrientationEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Orientation"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLineDimensionOrientationEnum __fastcall
ILineDimensionDispT<T>::get_Orientation(void)
{
  ksLineDimensionOrientationEnum PVal;
  this->get_Orientation((ksLineDimensionOrientationEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_Orientation(ksLineDimensionOrientationEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Orientation"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ILineDimensionDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ILineDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILineDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ILineDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILineDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILineDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILineDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILineDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILineDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRadialDimensions
// Interface: IRadialDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRadialDimensionsT<T>::get_RadialDimension(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IRadialDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_RadialDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRadialDimensionPtr __fastcall
TCOMIRadialDimensionsT<T>::get_RadialDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRadialDimensionPtr Result;
  OLECHECK(this->get_RadialDimension(Index, (Kompasltapi7_tlb::IRadialDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionsT<T>::Add(Kompasltapi7_tlb::IRadialDimensionPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IRadialDimensionPtr __fastcall
TCOMIRadialDimensionsT<T>::Add(void)
{
  Kompasltapi7_tlb::IRadialDimensionPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRadialDimensionPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IRadialDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {12D26993-449E-42E2-A909-B047AFD6E27D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get_RadialDimension(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IRadialDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RadialDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRadialDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRadialDimensionPtr __fastcall
IRadialDimensionsDispT<T>::get_RadialDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRadialDimensionPtr Result;
  this->get_RadialDimension(Index, (Kompasltapi7_tlb::IRadialDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::Add(Kompasltapi7_tlb::IRadialDimensionPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRadialDimension**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRadialDimensionPtr __fastcall
IRadialDimensionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRadialDimensionPtr Value;
  this->Add((Kompasltapi7_tlb::IRadialDimensionPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRadialDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRadialDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRadialDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRadialDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRadialDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRadialDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRadialDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRadialDimension
// Interface: IRadialDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIRadialDimensionT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIRadialDimensionT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIRadialDimensionT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIRadialDimensionT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIRadialDimensionT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject(Object1);
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIRadialDimensionT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIRadialDimensionT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

// *********************************************************************//
// DispIntf:  IRadialDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {712A9437-D772-4EAE-AF83-ABC9C22EB281}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRadialDimensionDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRadialDimensionDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRadialDimensionDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimensionDispT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  this->get_DimensionType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRadialDimensionDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRadialDimensionDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IRadialDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRadialDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRadialDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IRadialDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRadialDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRadialDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRadialDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRadialDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRadialDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimensions
// Interface: IDiametralDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDiametralDimensionsT<T>::get_DiametralDimension(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IDiametralDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_DiametralDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall
TCOMIDiametralDimensionsT<T>::get_DiametralDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDiametralDimensionPtr Result;
  OLECHECK(this->get_DiametralDimension(Index, (Kompasltapi7_tlb::IDiametralDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionsT<T>::Add(Kompasltapi7_tlb::IDiametralDimensionPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall
TCOMIDiametralDimensionsT<T>::Add(void)
{
  Kompasltapi7_tlb::IDiametralDimensionPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IDiametralDimensionPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IDiametralDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8E45FEB9-7BCD-4C9F-9767-320736980662}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get_DiametralDimension(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IDiametralDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DiametralDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDiametralDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall
IDiametralDimensionsDispT<T>::get_DiametralDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDiametralDimensionPtr Result;
  this->get_DiametralDimension(Index, (Kompasltapi7_tlb::IDiametralDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::Add(Kompasltapi7_tlb::IDiametralDimensionPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDiametralDimension**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDiametralDimensionPtr __fastcall
IDiametralDimensionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IDiametralDimensionPtr Value;
  this->Add((Kompasltapi7_tlb::IDiametralDimensionPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IDiametralDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDiametralDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDiametralDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDiametralDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDiametralDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDiametralDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDiametralDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDiametralDimension
// Interface: IDiametralDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIDiametralDimensionT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIDiametralDimensionT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIDiametralDimensionT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDiametralDimensionT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIDiametralDimensionT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject(Object1);
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIDiametralDimensionT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDiametralDimensionT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

// *********************************************************************//
// DispIntf:  IDiametralDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2B4CE92F-438D-4D3E-8F8D-4D14E5D0E214}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDiametralDimensionDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDiametralDimensionDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDiametralDimensionDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimensionDispT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  this->get_DimensionType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IDiametralDimensionDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDiametralDimensionDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IDiametralDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDiametralDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDiametralDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IDiametralDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDiametralDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDiametralDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDiametralDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDiametralDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDiametralDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAngleDimensions
// Interface: IAngleDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAngleDimensionsT<T>::get_AngleDimension(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IAngleDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_AngleDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::IAngleDimensionPtr __fastcall
TCOMIAngleDimensionsT<T>::get_AngleDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAngleDimensionPtr Result;
  OLECHECK(this->get_AngleDimension(Index, (Kompasltapi7_tlb::IAngleDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionsT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                              Kompasltapi7_tlb::IAngleDimensionPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(DimType, Value);
}

template <class T> Kompasltapi7_tlb::IAngleDimensionPtr __fastcall
TCOMIAngleDimensionsT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IAngleDimensionPtr Value;
  OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IAngleDimensionPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IAngleDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DF9ABB77-BBB6-4B29-A0E0-81DCFD525C2E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get_AngleDimension(TVariantInParam Index/*[in]*/, 
                                             Kompasltapi7_tlb::IAngleDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AngleDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAngleDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAngleDimensionPtr __fastcall
IAngleDimensionsDispT<T>::get_AngleDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAngleDimensionPtr Result;
  this->get_AngleDimension(Index, (Kompasltapi7_tlb::IAngleDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                              Kompasltapi7_tlb::IAngleDimensionPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)DimType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAngleDimension**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAngleDimensionPtr __fastcall
IAngleDimensionsDispT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IAngleDimensionPtr Value;
  this->Add(DimType, (Kompasltapi7_tlb::IAngleDimensionPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IAngleDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IAngleDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAngleDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAngleDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAngleDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAngleDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAngleDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAngleDimension
// Interface: IAngleDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Angle1(double PVal/*[in]*/)
{
  return (*this)->set_Angle1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle1(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Angle1(void)
{
  double PVal;
  OLECHECK(this->get_Angle1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Angle2(double PVal/*[in]*/)
{
  return (*this)->set_Angle2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle2(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Angle2(void)
{
  double PVal;
  OLECHECK(this->get_Angle2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject1(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIAngleDimensionT<T>::get_BaseObject1(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject1((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject1(Object1);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject2(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIAngleDimensionT<T>::get_BaseObject2(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject2((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject2(Object1);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> ksAngleDimTypeEnum __fastcall
TCOMIAngleDimensionT<T>::get_DimensionType(void)
{
  ksAngleDimTypeEnum PVal;
  OLECHECK(this->get_DimensionType((ksAngleDimTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfX(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_ShelfX(void)
{
  double PVal;
  OLECHECK(this->get_ShelfX((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_ShelfX(double PVal/*[in]*/)
{
  return (*this)->set_ShelfX(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfY(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_ShelfY(void)
{
  double PVal;
  OLECHECK(this->get_ShelfY((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_ShelfY(double PVal/*[in]*/)
{
  return (*this)->set_ShelfY(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIAngleDimensionT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_X3(double PVal/*[in]*/)
{
  return (*this)->set_X3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X3(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_X3(void)
{
  double PVal;
  OLECHECK(this->get_X3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::set_Y3(double PVal/*[in]*/)
{
  return (*this)->set_Y3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAngleDimensionT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y3(PVal);
}

template <class T> double __fastcall
TCOMIAngleDimensionT<T>::get_Y3(void)
{
  double PVal;
  OLECHECK(this->get_Y3((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAngleDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0F2CE9EC-5D2A-4B21-B96A-46201C120ED1}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Angle1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Angle1(void)
{
  double PVal;
  this->get_Angle1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject1"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IAngleDimensionDispT<T>::get_BaseObject1(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject1((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject1"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject2"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IAngleDimensionDispT<T>::get_BaseObject2(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject2((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject2"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAngleDimTypeEnum __fastcall
IAngleDimensionDispT<T>::get_DimensionType(void)
{
  ksAngleDimTypeEnum PVal;
  this->get_DimensionType((ksAngleDimTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_ShelfX(void)
{
  double PVal;
  this->get_ShelfX((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_ShelfX(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_ShelfY(void)
{
  double PVal;
  this->get_ShelfY((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_ShelfY(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimensionDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAngleDimensionDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IAngleDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAngleDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAngleDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IAngleDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAngleDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAngleDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAngleDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAngleDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAngleDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBreakLineDimensions
// Interface: IBreakLineDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionsT<T>::get_BreakLineDimension(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BreakLineDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall
TCOMIBreakLineDimensionsT<T>::get_BreakLineDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBreakLineDimensionPtr Result;
  OLECHECK(this->get_BreakLineDimension(Index, (Kompasltapi7_tlb::IBreakLineDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionsT<T>::Add(Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall
TCOMIBreakLineDimensionsT<T>::Add(void)
{
  Kompasltapi7_tlb::IBreakLineDimensionPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IBreakLineDimensionPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IBreakLineDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4125169F-3EA8-4AC0-9E1B-5582D62600C4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get_BreakLineDimension(TVariantInParam Index/*[in]*/, 
                                                     Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLineDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBreakLineDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall
IBreakLineDimensionsDispT<T>::get_BreakLineDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBreakLineDimensionPtr Result;
  this->get_BreakLineDimension(Index, (Kompasltapi7_tlb::IBreakLineDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::Add(Kompasltapi7_tlb::IBreakLineDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBreakLineDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBreakLineDimensionPtr __fastcall
IBreakLineDimensionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IBreakLineDimensionPtr Result;
  this->Add((Kompasltapi7_tlb::IBreakLineDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBreakLineDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBreakLineDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakLineDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBreakLineDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBreakLineDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBreakLineDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakLineDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBreakLineDimension
// Interface: IBreakLineDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X3(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_X3(void)
{
  double PVal;
  OLECHECK(this->get_X3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_X3(double PVal/*[in]*/)
{
  return (*this)->set_X3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y3(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_Y3(void)
{
  double PVal;
  OLECHECK(this->get_Y3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_Y3(double PVal/*[in]*/)
{
  return (*this)->set_Y3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfX(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_ShelfX(void)
{
  double PVal;
  OLECHECK(this->get_ShelfX((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_ShelfX(double PVal/*[in]*/)
{
  return (*this)->set_ShelfX(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfY(PVal);
}

template <class T> double __fastcall
TCOMIBreakLineDimensionT<T>::get_ShelfY(void)
{
  double PVal;
  OLECHECK(this->get_ShelfY((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_ShelfY(double PVal/*[in]*/)
{
  return (*this)->set_ShelfY(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIBreakLineDimensionT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIBreakLineDimensionT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject(Object1);
}

// *********************************************************************//
// DispIntf:  IBreakLineDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {61164A26-855C-4220-88ED-C2BDAF49B2DB}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_ShelfX(void)
{
  double PVal;
  this->get_ShelfX((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_ShelfX(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakLineDimensionDispT<T>::get_ShelfY(void)
{
  double PVal;
  this->get_ShelfY((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_ShelfY(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBreakLineDimensionDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBreakLineDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakLineDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakLineDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakLineDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakLineDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakLineDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBreakLineDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBreakLineDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBreakLineDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBreakLineDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakLineDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakLineDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIHeightDimensions
// Interface: IHeightDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIHeightDimensionsT<T>::get_HeightDimension(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_HeightDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::IHeightDimensionPtr __fastcall
TCOMIHeightDimensionsT<T>::get_HeightDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IHeightDimensionPtr Result;
  OLECHECK(this->get_HeightDimension(Index, (Kompasltapi7_tlb::IHeightDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionsT<T>::Add(Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IHeightDimensionPtr __fastcall
TCOMIHeightDimensionsT<T>::Add(void)
{
  Kompasltapi7_tlb::IHeightDimensionPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IHeightDimensionPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IHeightDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3A56D35C-3242-4C49-BA99-CF790EB10356}
// *********************************************************************//
template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get_HeightDimension(TVariantInParam Index/*[in]*/, 
                                               Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HeightDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IHeightDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IHeightDimensionPtr __fastcall
IHeightDimensionsDispT<T>::get_HeightDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IHeightDimensionPtr Result;
  this->get_HeightDimension(Index, (Kompasltapi7_tlb::IHeightDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::Add(Kompasltapi7_tlb::IHeightDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IHeightDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IHeightDimensionPtr __fastcall
IHeightDimensionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IHeightDimensionPtr Result;
  this->Add((Kompasltapi7_tlb::IHeightDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                    Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IHeightDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IHeightDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHeightDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IHeightDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IHeightDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IHeightDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHeightDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHeightDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIHeightDimension
// Interface: IHeightDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::get_DimensionType(ksHeightDimTypeEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> ksHeightDimTypeEnum __fastcall
TCOMIHeightDimensionT<T>::get_DimensionType(void)
{
  ksHeightDimTypeEnum PVal;
  OLECHECK(this->get_DimensionType((ksHeightDimTypeEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::set_DimensionType(ksHeightDimTypeEnum PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMIHeightDimensionT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMIHeightDimensionT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIHeightDimensionT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIHeightDimensionT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIHeightDimensionT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIHeightDimensionT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIHeightDimensionT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

// *********************************************************************//
// DispIntf:  IHeightDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {938BE57F-55FF-469F-82A5-B1CD6CCF8340}
// *********************************************************************//
template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_DimensionType(ksHeightDimTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksHeightDimTypeEnum __fastcall
IHeightDimensionDispT<T>::get_DimensionType(void)
{
  ksHeightDimTypeEnum PVal;
  this->get_DimensionType((ksHeightDimTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_DimensionType(ksHeightDimTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHeightDimensionDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHeightDimensionDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHeightDimensionDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHeightDimensionDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHeightDimensionDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IHeightDimensionDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IHeightDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHeightDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHeightDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHeightDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHeightDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IHeightDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IHeightDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IHeightDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IHeightDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IHeightDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IHeightDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IHeightDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIArcDimensions
// Interface: IArcDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIArcDimensionsT<T>::get_ArcDimension(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IArcDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ArcDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::IArcDimensionPtr __fastcall
TCOMIArcDimensionsT<T>::get_ArcDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IArcDimensionPtr Result;
  OLECHECK(this->get_ArcDimension(Index, (Kompasltapi7_tlb::IArcDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionsT<T>::Add(Kompasltapi7_tlb::IArcDimensionPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IArcDimensionPtr __fastcall
TCOMIArcDimensionsT<T>::Add(void)
{
  Kompasltapi7_tlb::IArcDimensionPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IArcDimensionPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IArcDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FE2755D9-48E2-44CC-BC24-86CF86BE08E2}
// *********************************************************************//
template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get_ArcDimension(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IArcDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArcDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IArcDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IArcDimensionPtr __fastcall
IArcDimensionsDispT<T>::get_ArcDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IArcDimensionPtr Result;
  this->get_ArcDimension(Index, (Kompasltapi7_tlb::IArcDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::Add(Kompasltapi7_tlb::IArcDimensionPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IArcDimension**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IArcDimensionPtr __fastcall
IArcDimensionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IArcDimensionPtr Value;
  this->Add((Kompasltapi7_tlb::IArcDimensionPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IArcDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IArcDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IArcDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IArcDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IArcDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIArcDimension
// Interface: IArcDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIArcDimensionT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject(Object1);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X3(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_X3(void)
{
  double PVal;
  OLECHECK(this->get_X3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_X3(double PVal/*[in]*/)
{
  return (*this)->set_X3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y3(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_Y3(void)
{
  double PVal;
  OLECHECK(this->get_Y3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_Y3(double PVal/*[in]*/)
{
  return (*this)->set_Y3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfX(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_ShelfX(void)
{
  double PVal;
  OLECHECK(this->get_ShelfX((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_ShelfX(double PVal/*[in]*/)
{
  return (*this)->set_ShelfX(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  return (*this)->get_ShelfY(PVal);
}

template <class T> double __fastcall
TCOMIArcDimensionT<T>::get_ShelfY(void)
{
  double PVal;
  OLECHECK(this->get_ShelfY((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_ShelfY(double PVal/*[in]*/)
{
  return (*this)->set_ShelfY(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIArcDimensionT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_DimensionType(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIArcDimensionT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_DimensionType((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_DimensionType(PVal);
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::get_TextPointer(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_TextPointer(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIArcDimensionT<T>::get_TextPointer(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_TextPointer((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIArcDimensionT<T>::set_TextPointer(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_TextPointer(PVal);
}

// *********************************************************************//
// DispIntf:  IArcDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {11487495-B18A-4877-9E85-3DC9016DF8BD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IArcDimensionDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_ShelfX(void)
{
  double PVal;
  this->get_ShelfX((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_ShelfX(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IArcDimensionDispT<T>::get_ShelfY(void)
{
  double PVal;
  this->get_ShelfY((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_ShelfY(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDimensionDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_DimensionType(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDimensionDispT<T>::get_DimensionType(void)
{
  TOLEBOOL PVal;
  this->get_DimensionType((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_DimensionType(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_TextPointer(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextPointer"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDimensionDispT<T>::get_TextPointer(void)
{
  TOLEBOOL PVal;
  this->get_TextPointer((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_TextPointer(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextPointer"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IArcDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IArcDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IArcDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IArcDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IArcDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IArcDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IArcDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IArcDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBreakRadialDimensions
// Interface: IBreakRadialDimensions
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionsT<T>::get_BreakRadialDimension(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IBreakRadialDimensionPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BreakRadialDimension(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall
TCOMIBreakRadialDimensionsT<T>::get_BreakRadialDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBreakRadialDimensionPtr Result;
  OLECHECK(this->get_BreakRadialDimension(Index, (Kompasltapi7_tlb::IBreakRadialDimensionPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionsT<T>::Add(Kompasltapi7_tlb::IBreakRadialDimensionPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall
TCOMIBreakRadialDimensionsT<T>::Add(void)
{
  Kompasltapi7_tlb::IBreakRadialDimensionPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IBreakRadialDimensionPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IBreakRadialDimensions
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E2181A3E-5417-4D73-AB65-983DED3438E0}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get_BreakRadialDimension(TVariantInParam Index/*[in]*/, 
                                                         Kompasltapi7_tlb::IBreakRadialDimensionPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakRadialDimension"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBreakRadialDimension**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall
IBreakRadialDimensionsDispT<T>::get_BreakRadialDimension(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBreakRadialDimensionPtr Result;
  this->get_BreakRadialDimension(Index, (Kompasltapi7_tlb::IBreakRadialDimensionPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::Add(Kompasltapi7_tlb::IBreakRadialDimensionPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBreakRadialDimension**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBreakRadialDimensionPtr __fastcall
IBreakRadialDimensionsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IBreakRadialDimensionPtr Value;
  this->Add((Kompasltapi7_tlb::IBreakRadialDimensionPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBreakRadialDimensionsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBreakRadialDimensionsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakRadialDimensionsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBreakRadialDimensionsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBreakRadialDimensionsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBreakRadialDimensionsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakRadialDimensionsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBreakRadialDimension
// Interface: IBreakRadialDimension
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIBreakRadialDimensionT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIBreakRadialDimensionT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIBreakRadialDimensionT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIBreakRadialDimensionT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject(Object1);
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIBreakRadialDimensionT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::get_BreakLength(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BreakLength(PVal);
}

template <class T> double __fastcall
TCOMIBreakRadialDimensionT<T>::get_BreakLength(void)
{
  double PVal;
  OLECHECK(this->get_BreakLength((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::set_BreakLength(double PVal/*[in]*/)
{
  return (*this)->set_BreakLength(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_TextOnLine(PVal);
}

template <class T> ksDimensionTextPosEnum __fastcall
TCOMIBreakRadialDimensionT<T>::get_TextOnLine(void)
{
  ksDimensionTextPosEnum PVal;
  OLECHECK(this->get_TextOnLine((ksDimensionTextPosEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBreakRadialDimensionT<T>::set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/)
{
  return (*this)->set_TextOnLine(PVal);
}

// *********************************************************************//
// DispIntf:  IBreakRadialDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88491537-9E93-42F3-861C-761A75BB89D6}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakRadialDimensionDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakRadialDimensionDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakRadialDimensionDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBreakRadialDimensionDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakRadialDimensionDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_BreakLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLength"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakRadialDimensionDispT<T>::get_BreakLength(void)
{
  double PVal;
  this->get_BreakLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_BreakLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakLength"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_TextOnLine(ksDimensionTextPosEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnLine"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDimensionTextPosEnum __fastcall
IBreakRadialDimensionDispT<T>::get_TextOnLine(void)
{
  ksDimensionTextPosEnum PVal;
  this->get_TextOnLine((ksDimensionTextPosEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_TextOnLine(ksDimensionTextPosEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnLine"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBreakRadialDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakRadialDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakRadialDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakRadialDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakRadialDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakRadialDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBreakRadialDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBreakRadialDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBreakRadialDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBreakRadialDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakRadialDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakRadialDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRoughs
// Interface: IRoughs
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRoughsT<T>::get_Rough(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IRoughPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Rough(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRoughPtr __fastcall
TCOMIRoughsT<T>::get_Rough(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRoughPtr Result;
  OLECHECK(this->get_Rough(Index, (Kompasltapi7_tlb::IRoughPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRoughsT<T>::Add(Kompasltapi7_tlb::IRoughPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IRoughPtr __fastcall
TCOMIRoughsT<T>::Add(void)
{
  Kompasltapi7_tlb::IRoughPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRoughPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IRoughs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {ACC42B32-27F3-4F74-B4A5-C97D4C7B289D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRoughsDispT<T>::get_Rough(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IRoughPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Rough"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRough**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRoughPtr __fastcall
IRoughsDispT<T>::get_Rough(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRoughPtr Result;
  this->get_Rough(Index, (Kompasltapi7_tlb::IRoughPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::Add(Kompasltapi7_tlb::IRoughPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRough**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRoughPtr __fastcall
IRoughsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRoughPtr Value;
  this->Add((Kompasltapi7_tlb::IRoughPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                          Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRoughsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRoughsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRoughsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRoughsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRoughsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRoughsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRoughsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRoughsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRough
// Interface: IRough
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRoughT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* NewObject/*[out,retval]*/)
{
  return (*this)->get_BaseObject(NewObject);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIRoughT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr NewObject;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&NewObject));
  return NewObject;
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr NewObject/*[in]*/)
{
  return (*this)->set_BaseObject(NewObject);
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::get_X0(double* Result/*[out,retval]*/)
{
  return (*this)->get_X0(Result);
}

template <class T> double __fastcall
TCOMIRoughT<T>::get_X0(void)
{
  double Result;
  OLECHECK(this->get_X0((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::set_X0(double Result/*[in]*/)
{
  return (*this)->set_X0(Result);
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::get_Y0(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y0(Result);
}

template <class T> double __fastcall
TCOMIRoughT<T>::get_Y0(void)
{
  double Result;
  OLECHECK(this->get_Y0((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::set_Y0(double Result/*[in]*/)
{
  return (*this)->set_Y0(Result);
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfX(Result);
}

template <class T> double __fastcall
TCOMIRoughT<T>::get_ShelfX(void)
{
  double Result;
  OLECHECK(this->get_ShelfX((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::set_ShelfX(double Result/*[in]*/)
{
  return (*this)->set_ShelfX(Result);
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  return (*this)->get_ShelfY(Result);
}

template <class T> double __fastcall
TCOMIRoughT<T>::get_ShelfY(void)
{
  double Result;
  OLECHECK(this->get_ShelfY((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRoughT<T>::set_ShelfY(double Result/*[in]*/)
{
  return (*this)->set_ShelfY(Result);
}

// *********************************************************************//
// DispIntf:  IRough
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0A192AC5-D8BC-43E9-8FC7-ACF32578DDB4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRoughDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* NewObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)NewObject /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRoughDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr NewObject;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&NewObject);
  return NewObject;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr NewObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)NewObject /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_X0(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X0"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRoughDispT<T>::get_X0(void)
{
  double Result;
  this->get_X0((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::set_X0(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X0"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_Y0(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y0"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRoughDispT<T>::get_Y0(void)
{
  double Result;
  this->get_Y0((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::set_Y0(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y0"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRoughDispT<T>::get_ShelfX(void)
{
  double Result;
  this->get_ShelfX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::set_ShelfX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRoughDispT<T>::get_ShelfY(void)
{
  double Result;
  this->get_ShelfY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::set_ShelfY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IRoughDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRoughDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRoughDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRoughDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRoughDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRoughDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IRoughDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRoughDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRoughDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRoughDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRoughDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRoughDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMILeaders
// Interface: ILeaders
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMILeadersT<T>::get_Leader(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IBaseLeaderPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Leader(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBaseLeaderPtr __fastcall
TCOMILeadersT<T>::get_Leader(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeaderPtr Result;
  OLECHECK(this->get_Leader(Index, (Kompasltapi7_tlb::IBaseLeaderPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMILeadersT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                      Kompasltapi7_tlb::IBaseLeaderPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(DimType, Value);
}

template <class T> Kompasltapi7_tlb::IBaseLeaderPtr __fastcall
TCOMILeadersT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeaderPtr Value;
  OLECHECK(this->Add(DimType, (Kompasltapi7_tlb::IBaseLeaderPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ILeaders
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {BA2D820C-0DB9-47C6-A32D-34C7D8BA1B2F}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILeadersDispT<T>::get_Leader(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IBaseLeaderPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Leader"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBaseLeader**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBaseLeaderPtr __fastcall
ILeadersDispT<T>::get_Leader(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeaderPtr Result;
  this->get_Leader(Index, (Kompasltapi7_tlb::IBaseLeaderPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/, 
                      Kompasltapi7_tlb::IBaseLeaderPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (int)DimType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBaseLeader**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBaseLeaderPtr __fastcall
ILeadersDispT<T>::Add(DrawingObjectTypeEnum DimType/*[in]*/)
{
  Kompasltapi7_tlb::IBaseLeaderPtr Value;
  this->Add(DimType, (Kompasltapi7_tlb::IBaseLeaderPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                           Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ILeadersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ILeadersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILeadersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ILeadersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ILeadersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ILeadersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ILeadersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ILeadersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBaseLeader
// Interface: IBaseLeader
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBaseLeaderT<T>::get_ArrowType(ksArrowEnum* Result/*[out,retval]*/)
{
  return (*this)->get_ArrowType(Result);
}

template <class T> ksArrowEnum __fastcall
TCOMIBaseLeaderT<T>::get_ArrowType(void)
{
  ksArrowEnum Result;
  OLECHECK(this->get_ArrowType((ksArrowEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseLeaderT<T>::set_ArrowType(ksArrowEnum Result/*[in]*/)
{
  return (*this)->set_ArrowType(Result);
}

// *********************************************************************//
// DispIntf:  IBaseLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1AF590A9-C339-477A-9F22-799C04D20BB4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_ArrowType(ksArrowEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(4001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksArrowEnum __fastcall
IBaseLeaderDispT<T>::get_ArrowType(void)
{
  ksArrowEnum Result;
  this->get_ArrowType((ksArrowEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::set_ArrowType(ksArrowEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(4001));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBaseLeaderDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBaseLeaderDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeaderDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeaderDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeaderDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseLeaderDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBaseLeaderDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBaseLeaderDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBaseLeaderDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBaseLeaderDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseLeaderDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBaseLeaderDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBases
// Interface: IBases
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBasesT<T>::get_Base(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IBasePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Base(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBasePtr __fastcall
TCOMIBasesT<T>::get_Base(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBasePtr Result;
  OLECHECK(this->get_Base(Index, (Kompasltapi7_tlb::IBasePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBasesT<T>::Add(Kompasltapi7_tlb::IBasePtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IBasePtr __fastcall
TCOMIBasesT<T>::Add(void)
{
  Kompasltapi7_tlb::IBasePtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IBasePtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IBases
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C607727C-6B0A-4FB6-AFCA-ED9D83F5C6B7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBasesDispT<T>::get_Base(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IBasePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Base"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBase**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBasePtr __fastcall
IBasesDispT<T>::get_Base(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBasePtr Result;
  this->get_Base(Index, (Kompasltapi7_tlb::IBasePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::Add(Kompasltapi7_tlb::IBasePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBase**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBasePtr __fastcall
IBasesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IBasePtr Value;
  this->Add((Kompasltapi7_tlb::IBasePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                         Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBasesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBasesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBasesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBasesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBasesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBasesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBasesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBasesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBase
// Interface: IBase
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Object1);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMIBaseT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1));
  return Object1;
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  return (*this)->set_BaseObject(Object1);
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_X0(double* Result/*[out,retval]*/)
{
  return (*this)->get_X0(Result);
}

template <class T> double __fastcall
TCOMIBaseT<T>::get_X0(void)
{
  double Result;
  OLECHECK(this->get_X0((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::set_X0(double Result/*[in]*/)
{
  return (*this)->set_X0(Result);
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_Y0(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y0(Result);
}

template <class T> double __fastcall
TCOMIBaseT<T>::get_Y0(void)
{
  double Result;
  OLECHECK(this->get_Y0((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::set_Y0(double Result/*[in]*/)
{
  return (*this)->set_Y0(Result);
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_BranchX(double* Result/*[out,retval]*/)
{
  return (*this)->get_BranchX(Result);
}

template <class T> double __fastcall
TCOMIBaseT<T>::get_BranchX(void)
{
  double Result;
  OLECHECK(this->get_BranchX((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::set_BranchX(double Result/*[in]*/)
{
  return (*this)->set_BranchX(Result);
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_BranchY(double* Result/*[out,retval]*/)
{
  return (*this)->get_BranchY(Result);
}

template <class T> double __fastcall
TCOMIBaseT<T>::get_BranchY(void)
{
  double Result;
  OLECHECK(this->get_BranchY((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::set_BranchY(double Result/*[in]*/)
{
  return (*this)->set_BranchY(Result);
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_DrawType(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_DrawType(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBaseT<T>::get_DrawType(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_DrawType((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::set_DrawType(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_DrawType(Result);
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSorted(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIBaseT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSorted(Result);
}

template <class T> HRESULT __fastcall
TCOMIBaseT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIBaseT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBase
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {01CDFD67-69EA-4289-8F42-5B01BB9BF70B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBaseDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBaseDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_X0(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X0"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBaseDispT<T>::get_X0(void)
{
  double Result;
  this->get_X0((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_X0(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X0"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Y0(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y0"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBaseDispT<T>::get_Y0(void)
{
  double Result;
  this->get_Y0((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_Y0(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y0"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_BranchX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBaseDispT<T>::get_BranchX(void)
{
  double Result;
  this->get_BranchX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_BranchX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_BranchY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBaseDispT<T>::get_BranchY(void)
{
  double Result;
  this->get_BranchY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_BranchY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_DrawType(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawType"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseDispT<T>::get_DrawType(void)
{
  TOLEBOOL Result;
  this->get_DrawType((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_DrawType(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawType"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseDispT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  this->get_AutoSorted((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBaseDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBaseDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBaseDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBaseDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBaseDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBaseDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBaseDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBaseDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBaseDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBaseDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITolerances
// Interface: ITolerances
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMITolerancesT<T>::get_Tolerance(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::ITolerancePtr* Result/*[out,retval]*/)
{
  return (*this)->get_Tolerance(Index, Result);
}

template <class T> Kompasltapi7_tlb::ITolerancePtr __fastcall
TCOMITolerancesT<T>::get_Tolerance(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ITolerancePtr Result;
  OLECHECK(this->get_Tolerance(Index, (Kompasltapi7_tlb::ITolerancePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMITolerancesT<T>::Add(Kompasltapi7_tlb::ITolerancePtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::ITolerancePtr __fastcall
TCOMITolerancesT<T>::Add(void)
{
  Kompasltapi7_tlb::ITolerancePtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::ITolerancePtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  ITolerances
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {97CDD55F-3C64-469B-B26E-A927D3300B6C}
// *********************************************************************//
template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get_Tolerance(TVariantInParam Index/*[in]*/, 
                                   Kompasltapi7_tlb::ITolerancePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tolerance"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITolerance**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITolerancePtr __fastcall
ITolerancesDispT<T>::get_Tolerance(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ITolerancePtr Result;
  this->get_Tolerance(Index, (Kompasltapi7_tlb::ITolerancePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::Add(Kompasltapi7_tlb::ITolerancePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITolerance**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITolerancePtr __fastcall
ITolerancesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ITolerancePtr Value;
  this->Add((Kompasltapi7_tlb::ITolerancePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                              Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ITolerancesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ITolerancesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITolerancesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ITolerancesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ITolerancesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ITolerancesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ITolerancesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ITolerancesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMITolerance
// Interface: ITolerance
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIToleranceT<T>::get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_ArrowType(Index, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIToleranceT<T>::get_ArrowType(long Index/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->get_ArrowType(Index, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIToleranceT<T>::set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_ArrowType(Index, Result);
}

template <class T> HRESULT __fastcall
TCOMIToleranceT<T>::get_BranchPos(long Index/*[in]*/, 
                                  ksTablePointEnum* Result/*[out,retval]*/)
{
  return (*this)->get_BranchPos(Index, Result);
}

template <class T> ksTablePointEnum __fastcall
TCOMIToleranceT<T>::get_BranchPos(long Index/*[in]*/)
{
  ksTablePointEnum Result;
  OLECHECK(this->get_BranchPos(Index, (ksTablePointEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIToleranceT<T>::set_BranchPos(long Index/*[in]*/, 
                                  ksTablePointEnum Result/*[in]*/)
{
  return (*this)->set_BranchPos(Index, Result);
}

// *********************************************************************//
// DispIntf:  ITolerance
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {42DEF911-ADB2-478C-85F1-D5FEFA262EEC}
// *********************************************************************//
template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_ArrowType(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IToleranceDispT<T>::get_ArrowType(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->get_ArrowType(Index, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::set_ArrowType(long Index/*[in]*/, TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ArrowType"), DISPID(1));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_BranchPos(long Index/*[in]*/, 
                                  ksTablePointEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPos"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTablePointEnum __fastcall
IToleranceDispT<T>::get_BranchPos(long Index/*[in]*/)
{
  ksTablePointEnum Result;
  this->get_BranchPos(Index, (ksTablePointEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::set_BranchPos(long Index/*[in]*/, 
                                  ksTablePointEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPos"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IToleranceDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IToleranceDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IToleranceDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IToleranceDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IToleranceDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IToleranceDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IToleranceDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IToleranceDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IToleranceDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IToleranceDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IToleranceDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IToleranceDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingTables
// Interface: IDrawingTables
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingTablesT<T>::get_DrawingTable(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IDrawingTablePtr* Result/*[out,retval]*/)
{
  return (*this)->get_DrawingTable(Index, Result);
}

template <class T> Kompasltapi7_tlb::IDrawingTablePtr __fastcall
TCOMIDrawingTablesT<T>::get_DrawingTable(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingTablePtr Result;
  OLECHECK(this->get_DrawingTable(Index, (Kompasltapi7_tlb::IDrawingTablePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTablesT<T>::Add(long RowsCount/*[in]*/, long ColumnsCount/*[in]*/, 
                            double RowHeigh/*[in]*/, double ColumnsWidth/*[in]*/, 
                            ksTableTileLayoutEnum TitlePos/*[in]*/, 
                            Kompasltapi7_tlb::IDrawingTablePtr* Value/*[out,retval]*/)
{
  return (*this)->Add(RowsCount, ColumnsCount, RowHeigh, ColumnsWidth, TitlePos, Value);
}

template <class T> Kompasltapi7_tlb::IDrawingTablePtr __fastcall
TCOMIDrawingTablesT<T>::Add(long RowsCount/*[in]*/, long ColumnsCount/*[in]*/, 
                            double RowHeigh/*[in]*/, double ColumnsWidth/*[in]*/, 
                            ksTableTileLayoutEnum TitlePos/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingTablePtr Value;
  OLECHECK(this->Add(RowsCount, ColumnsCount, RowHeigh, ColumnsWidth, TitlePos, (Kompasltapi7_tlb::IDrawingTablePtr*)&Value));
  return Value;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTablesT<T>::Load(BSTR FileName, Kompasltapi7_tlb::IDrawingTablePtr* PVal/*[out,retval]*/)
{
  return (*this)->Load(FileName, PVal);
}

template <class T> Kompasltapi7_tlb::IDrawingTablePtr __fastcall
TCOMIDrawingTablesT<T>::Load(BSTR FileName)
{
  Kompasltapi7_tlb::IDrawingTablePtr PVal;
  OLECHECK(this->Load(FileName, (Kompasltapi7_tlb::IDrawingTablePtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDrawingTables
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DF92DACE-BDC6-4341-86DA-3A9C8DCFDEFE}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get_DrawingTable(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IDrawingTablePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingTable"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingTable**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingTablePtr __fastcall
IDrawingTablesDispT<T>::get_DrawingTable(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingTablePtr Result;
  this->get_DrawingTable(Index, (Kompasltapi7_tlb::IDrawingTablePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::Add(long RowsCount/*[in]*/, long ColumnsCount/*[in]*/, 
                            double RowHeigh/*[in]*/, double ColumnsWidth/*[in]*/, 
                            ksTableTileLayoutEnum TitlePos/*[in]*/, 
                            Kompasltapi7_tlb::IDrawingTablePtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<5> _args;
  _args[1] = RowsCount /*[VT_I4:0]*/;
  _args[2] = ColumnsCount /*[VT_I4:0]*/;
  _args[3] = RowHeigh /*[VT_R8:0]*/;
  _args[4] = ColumnsWidth /*[VT_R8:0]*/;
  _args[5] = (int)TitlePos /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingTable**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingTablePtr __fastcall
IDrawingTablesDispT<T>::Add(long RowsCount/*[in]*/, long ColumnsCount/*[in]*/, 
                            double RowHeigh/*[in]*/, double ColumnsWidth/*[in]*/, 
                            ksTableTileLayoutEnum TitlePos/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingTablePtr Value;
  this->Add(RowsCount, ColumnsCount, RowHeigh, ColumnsWidth, TitlePos, (Kompasltapi7_tlb::IDrawingTablePtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::Load(BSTR FileName, Kompasltapi7_tlb::IDrawingTablePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Load"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingTable**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingTablePtr __fastcall
IDrawingTablesDispT<T>::Load(BSTR FileName)
{
  Kompasltapi7_tlb::IDrawingTablePtr PVal;
  this->Load(FileName, (Kompasltapi7_tlb::IDrawingTablePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IDrawingTablesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IDrawingTablesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTablesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingTablesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingTablesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingTablesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTablesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTablesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIDrawingTable
// Interface: IDrawingTable
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::get_X(double* Result/*[out,retval]*/)
{
  return (*this)->get_X(Result);
}

template <class T> double __fastcall
TCOMIDrawingTableT<T>::get_X(void)
{
  double Result;
  OLECHECK(this->get_X((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::set_X(double Result/*[in]*/)
{
  return (*this)->set_X(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::get_Y(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y(Result);
}

template <class T> double __fastcall
TCOMIDrawingTableT<T>::get_Y(void)
{
  double Result;
  OLECHECK(this->get_Y((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::set_Y(double Result/*[in]*/)
{
  return (*this)->set_Y(Result);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIDrawingTableT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::set_FixedCellsSize(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_FixedCellsSize(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::get_FixedCellsSize(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FixedCellsSize(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingTableT<T>::get_FixedCellsSize(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FixedCellsSize((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::set_FixedRowCount(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_FixedRowCount(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::get_FixedRowCount(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FixedRowCount(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingTableT<T>::get_FixedRowCount(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FixedRowCount((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::set_FixedColumnCount(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_FixedColumnCount(PVal);
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::get_FixedColumnCount(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_FixedColumnCount(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingTableT<T>::get_FixedColumnCount(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_FixedColumnCount((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIDrawingTableT<T>::Save(BSTR FileName, TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->Save(FileName, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIDrawingTableT<T>::Save(BSTR FileName)
{
  TOLEBOOL PVal;
  OLECHECK(this->Save(FileName, (TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IDrawingTable
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9B421BDA-0444-4A68-B69C-1C05D05C9D28}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_X(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTableDispT<T>::get_X(void)
{
  double Result;
  this->get_X((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_X(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Y(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTableDispT<T>::get_Y(void)
{
  double Result;
  this->get_Y((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_Y(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IDrawingTableDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_FixedCellsSize(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedCellsSize"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_FixedCellsSize(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedCellsSize"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::get_FixedCellsSize(void)
{
  TOLEBOOL PVal;
  this->get_FixedCellsSize((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_FixedRowCount(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedRowCount"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_FixedRowCount(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedRowCount"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::get_FixedRowCount(void)
{
  TOLEBOOL PVal;
  this->get_FixedRowCount((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_FixedColumnCount(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedColumnCount"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_FixedColumnCount(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FixedColumnCount"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::get_FixedColumnCount(void)
{
  TOLEBOOL PVal;
  this->get_FixedColumnCount((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::Save(BSTR FileName, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Save"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::Save(BSTR FileName)
{
  TOLEBOOL PVal;
  this->Save(FileName, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IDrawingTableDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTableDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IDrawingTableDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IDrawingTableDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IDrawingTableDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IDrawingTableDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IDrawingTableDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IDrawingTableDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDrawingTableDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIViewPointers
// Interface: IViewPointers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIViewPointersT<T>::get_ViewPointer(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IViewPointerPtr* Result/*[out,retval]*/)
{
  return (*this)->get_ViewPointer(Index, Result);
}

template <class T> Kompasltapi7_tlb::IViewPointerPtr __fastcall
TCOMIViewPointersT<T>::get_ViewPointer(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IViewPointerPtr Result;
  OLECHECK(this->get_ViewPointer(Index, (Kompasltapi7_tlb::IViewPointerPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointersT<T>::Add(Kompasltapi7_tlb::IViewPointerPtr* Value/*[out,retval]*/)
{
  return (*this)->Add(Value);
}

template <class T> Kompasltapi7_tlb::IViewPointerPtr __fastcall
TCOMIViewPointersT<T>::Add(void)
{
  Kompasltapi7_tlb::IViewPointerPtr Value;
  OLECHECK(this->Add((Kompasltapi7_tlb::IViewPointerPtr*)&Value));
  return Value;
}

// *********************************************************************//
// DispIntf:  IViewPointers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {08B45C97-6F86-4809-BBC3-78F216BD0430}
// *********************************************************************//
template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get_ViewPointer(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IViewPointerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewPointer"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IViewPointer**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPointerPtr __fastcall
IViewPointersDispT<T>::get_ViewPointer(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IViewPointerPtr Result;
  this->get_ViewPointer(Index, (Kompasltapi7_tlb::IViewPointerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::Add(Kompasltapi7_tlb::IViewPointerPtr* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IViewPointer**)Value /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IViewPointerPtr __fastcall
IViewPointersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IViewPointerPtr Value;
  this->Add((Kompasltapi7_tlb::IViewPointerPtr*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IViewPointersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IViewPointersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewPointersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IViewPointersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IViewPointersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IViewPointersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewPointersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewPointersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIViewPointer
// Interface: IViewPointer
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_X1(double* Result/*[out,retval]*/)
{
  return (*this)->get_X1(Result);
}

template <class T> double __fastcall
TCOMIViewPointerT<T>::get_X1(void)
{
  double Result;
  OLECHECK(this->get_X1((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_X1(double Result/*[in]*/)
{
  return (*this)->set_X1(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_Y1(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y1(Result);
}

template <class T> double __fastcall
TCOMIViewPointerT<T>::get_Y1(void)
{
  double Result;
  OLECHECK(this->get_Y1((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_Y1(double Result/*[in]*/)
{
  return (*this)->set_Y1(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_X2(double* Result/*[out,retval]*/)
{
  return (*this)->get_X2(Result);
}

template <class T> double __fastcall
TCOMIViewPointerT<T>::get_X2(void)
{
  double Result;
  OLECHECK(this->get_X2((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_X2(double Result/*[in]*/)
{
  return (*this)->set_X2(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_Y2(double* Result/*[out,retval]*/)
{
  return (*this)->get_Y2(Result);
}

template <class T> double __fastcall
TCOMIViewPointerT<T>::get_Y2(void)
{
  double Result;
  OLECHECK(this->get_Y2((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_Y2(double Result/*[in]*/)
{
  return (*this)->set_Y2(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_TextX(double* Result/*[out,retval]*/)
{
  return (*this)->get_TextX(Result);
}

template <class T> double __fastcall
TCOMIViewPointerT<T>::get_TextX(void)
{
  double Result;
  OLECHECK(this->get_TextX((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_TextX(double Result/*[in]*/)
{
  return (*this)->set_TextX(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_TextY(double* Result/*[out,retval]*/)
{
  return (*this)->get_TextY(Result);
}

template <class T> double __fastcall
TCOMIViewPointerT<T>::get_TextY(void)
{
  double Result;
  OLECHECK(this->get_TextY((double*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_TextY(double Result/*[in]*/)
{
  return (*this)->set_TextY(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSorted(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIViewPointerT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSorted(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSheet(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIViewPointerT<T>::get_AutoSheet(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSheet((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_AutoSheet(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSheet(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_AutoZone(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoZone(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIViewPointerT<T>::get_AutoZone(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoZone((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::set_AutoZone(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoZone(Result);
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_Text(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIViewPointerT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIViewPointerT<T>::get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalText(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIViewPointerT<T>::get_AdditionalText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IViewPointer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EE98177-63E8-4C48-89AD-3D5CCCF84D72}
// *********************************************************************//
template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_X1(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewPointerDispT<T>::get_X1(void)
{
  double Result;
  this->get_X1((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_X1(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Y1(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewPointerDispT<T>::get_Y1(void)
{
  double Result;
  this->get_Y1((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_Y1(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_X2(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewPointerDispT<T>::get_X2(void)
{
  double Result;
  this->get_X2((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_X2(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Y2(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewPointerDispT<T>::get_Y2(void)
{
  double Result;
  this->get_Y2((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_Y2(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_TextX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextX"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewPointerDispT<T>::get_TextX(void)
{
  double Result;
  this->get_TextX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_TextX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextX"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_TextY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextY"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IViewPointerDispT<T>::get_TextY(void)
{
  double Result;
  this->get_TextY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_TextY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextY"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewPointerDispT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  this->get_AutoSorted((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSheet"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewPointerDispT<T>::get_AutoSheet(void)
{
  TOLEBOOL Result;
  this->get_AutoSheet((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_AutoSheet(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSheet"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_AutoZone(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoZone"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewPointerDispT<T>::get_AutoZone(void)
{
  TOLEBOOL Result;
  this->get_AutoZone((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_AutoZone(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoZone"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Text(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Text"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IViewPointerDispT<T>::get_Text(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Text((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalText"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IViewPointerDispT<T>::get_AdditionalText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IViewPointerDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewPointerDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewPointerDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewPointerDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewPointerDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IViewPointerDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IViewPointerDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IViewPointerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IViewPointerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IViewPointerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IViewPointerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IViewPointerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICentreMarkers
// Interface: ICentreMarkers
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICentreMarkersT<T>::get_CentreMarker(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/)
{
  return (*this)->get_CentreMarker(Index, Result);
}

template <class T> Kompasltapi7_tlb::ICentreMarkerPtr __fastcall
TCOMICentreMarkersT<T>::get_CentreMarker(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICentreMarkerPtr Result;
  OLECHECK(this->get_CentreMarker(Index, (Kompasltapi7_tlb::ICentreMarkerPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkersT<T>::Add(Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::ICentreMarkerPtr __fastcall
TCOMICentreMarkersT<T>::Add(void)
{
  Kompasltapi7_tlb::ICentreMarkerPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::ICentreMarkerPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  ICentreMarkers
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A0533211-CF52-4AB5-A172-3DC7D94276D1}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get_CentreMarker(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CentreMarker"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICentreMarker**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICentreMarkerPtr __fastcall
ICentreMarkersDispT<T>::get_CentreMarker(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::ICentreMarkerPtr Result;
  this->get_CentreMarker(Index, (Kompasltapi7_tlb::ICentreMarkerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::Add(Kompasltapi7_tlb::ICentreMarkerPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICentreMarker**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICentreMarkerPtr __fastcall
ICentreMarkersDispT<T>::Add(void)
{
  Kompasltapi7_tlb::ICentreMarkerPtr Result;
  this->Add((Kompasltapi7_tlb::ICentreMarkerPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ICentreMarkersDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ICentreMarkersDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICentreMarkersDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICentreMarkersDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICentreMarkersDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICentreMarkersDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICentreMarkersDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICentreMarkersDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICentreMarker
// Interface: ICentreMarker
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  return (*this)->get_BaseObject(Result);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMICentreMarkerT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  OLECHECK(this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  return (*this)->set_BaseObject(Result);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_X(double PVal/*[in]*/)
{
  return (*this)->set_X(PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_X(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X(PVal);
}

template <class T> double __fastcall
TCOMICentreMarkerT<T>::get_X(void)
{
  double PVal;
  OLECHECK(this->get_X((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_Y(double PVal/*[in]*/)
{
  return (*this)->set_Y(PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y(PVal);
}

template <class T> double __fastcall
TCOMICentreMarkerT<T>::get_Y(void)
{
  double PVal;
  OLECHECK(this->get_Y((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMICentreMarkerT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_SignType(ksCentreMarkerEnum PVal/*[in]*/)
{
  return (*this)->set_SignType(PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_SignType(ksCentreMarkerEnum* PVal/*[out,retval]*/)
{
  return (*this)->get_SignType(PVal);
}

template <class T> ksCentreMarkerEnum __fastcall
TCOMICentreMarkerT<T>::get_SignType(void)
{
  ksCentreMarkerEnum PVal;
  OLECHECK(this->get_SignType((ksCentreMarkerEnum*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                              TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SemiAxisAutoLength(AxisType, PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                              TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SemiAxisAutoLength(AxisType, PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICentreMarkerT<T>::get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SemiAxisAutoLength(AxisType, (TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                          double PVal/*[in]*/)
{
  return (*this)->set_SemiAxisLength(AxisType, PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/, 
                                          double* PVal/*[out,retval]*/)
{
  return (*this)->get_SemiAxisLength(AxisType, PVal);
}

template <class T> double __fastcall
TCOMICentreMarkerT<T>::get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/)
{
  double PVal;
  OLECHECK(this->get_SemiAxisLength(AxisType, (double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_CrosshairSize(double PVal/*[in]*/)
{
  return (*this)->set_CrosshairSize(PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_CrosshairSize(double* PVal/*[out,retval]*/)
{
  return (*this)->get_CrosshairSize(PVal);
}

template <class T> double __fastcall
TCOMICentreMarkerT<T>::get_CrosshairSize(void)
{
  double PVal;
  OLECHECK(this->get_CrosshairSize((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::set_CrosshairSizeModify(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_CrosshairSizeModify(PVal);
}

template <class T> HRESULT __fastcall
TCOMICentreMarkerT<T>::get_CrosshairSizeModify(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_CrosshairSizeModify(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICentreMarkerT<T>::get_CrosshairSizeModify(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_CrosshairSizeModify((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICentreMarker
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8FE1CADA-DE72-4A55-B303-EAF1F4748CF6}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ICentreMarkerDispT<T>::get_BaseObject(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_BaseObject((Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_BaseObject(Kompasltapi7_tlb::IDrawingObjectPtr Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Result /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_X(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_X(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICentreMarkerDispT<T>::get_X(void)
{
  double PVal;
  this->get_X((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_Y(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Y(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICentreMarkerDispT<T>::get_Y(void)
{
  double PVal;
  this->get_Y((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICentreMarkerDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_SignType(ksCentreMarkerEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_SignType(ksCentreMarkerEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksCentreMarkerEnum __fastcall
ICentreMarkerDispT<T>::get_SignType(void)
{
  ksCentreMarkerEnum PVal;
  this->get_SignType((ksCentreMarkerEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                              , TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisAutoLength"), DISPID(6));
  TAutoArgs<2> _args;
  _args[1] = (int)AxisType /*[VT_USERDEFINED:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                              , TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisAutoLength"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)AxisType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICentreMarkerDispT<T>::get_SemiAxisAutoLength(ksSemiAxisTypeEnum AxisType/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_SemiAxisAutoLength(AxisType, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                          , double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisLength"), DISPID(7));
  TAutoArgs<2> _args;
  _args[1] = (int)AxisType /*[VT_USERDEFINED:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/
                                          , double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SemiAxisLength"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)AxisType /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICentreMarkerDispT<T>::get_SemiAxisLength(ksSemiAxisTypeEnum AxisType/*[in]*/)
{
  double PVal;
  this->get_SemiAxisLength(AxisType, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_CrosshairSize(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CrosshairSize"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_CrosshairSize(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CrosshairSize"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICentreMarkerDispT<T>::get_CrosshairSize(void)
{
  double PVal;
  this->get_CrosshairSize((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_CrosshairSizeModify(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CrosshairSizeModify"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_CrosshairSizeModify(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CrosshairSizeModify"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICentreMarkerDispT<T>::get_CrosshairSizeModify(void)
{
  TOLEBOOL PVal;
  this->get_CrosshairSizeModify((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
ICentreMarkerDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICentreMarkerDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICentreMarkerDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICentreMarkerDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICentreMarkerDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICentreMarkerDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
ICentreMarkerDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICentreMarkerDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICentreMarkerDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICentreMarkerDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICentreMarkerDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICentreMarkerDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRemoteElements
// Interface: IRemoteElements
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRemoteElementsT<T>::get_RemoteElement(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/)
{
  return (*this)->get_RemoteElement(Index, Result);
}

template <class T> Kompasltapi7_tlb::IRemoteElementPtr __fastcall
TCOMIRemoteElementsT<T>::get_RemoteElement(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRemoteElementPtr Result;
  OLECHECK(this->get_RemoteElement(Index, (Kompasltapi7_tlb::IRemoteElementPtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRemoteElementsT<T>::Add(Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IRemoteElementPtr __fastcall
TCOMIRemoteElementsT<T>::Add(void)
{
  Kompasltapi7_tlb::IRemoteElementPtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IRemoteElementPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IRemoteElements
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {88427A6B-00AF-46E2-9B95-BC8348C2162A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get_RemoteElement(TVariantInParam Index/*[in]*/, 
                                           Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("RemoteElement"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRemoteElement**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRemoteElementPtr __fastcall
IRemoteElementsDispT<T>::get_RemoteElement(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IRemoteElementPtr Result;
  this->get_RemoteElement(Index, (Kompasltapi7_tlb::IRemoteElementPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::Add(Kompasltapi7_tlb::IRemoteElementPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IRemoteElement**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IRemoteElementPtr __fastcall
IRemoteElementsDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IRemoteElementPtr Result;
  this->Add((Kompasltapi7_tlb::IRemoteElementPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                  Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IRemoteElementsDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IRemoteElementsDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRemoteElementsDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRemoteElementsDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRemoteElementsDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRemoteElementsDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRemoteElementsDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRemoteElementsDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIRemoteElement
// Interface: IRemoteElement
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIRemoteElementT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSorted(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRemoteElementT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSorted((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRemoteElementT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSorted(Result);
}

template <class T> HRESULT __fastcall
TCOMIRemoteElementT<T>::get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoSheet(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRemoteElementT<T>::get_AutoSheet(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoSheet((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRemoteElementT<T>::set_AutoSheet(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoSheet(Result);
}

template <class T> HRESULT __fastcall
TCOMIRemoteElementT<T>::get_AutoZone(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->get_AutoZone(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIRemoteElementT<T>::get_AutoZone(void)
{
  TOLEBOOL Result;
  OLECHECK(this->get_AutoZone((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIRemoteElementT<T>::set_AutoZone(TOLEBOOL Result/*[in]*/)
{
  return (*this)->set_AutoZone(Result);
}

template <class T> HRESULT __fastcall
TCOMIRemoteElementT<T>::get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  return (*this)->get_AdditionalText(PVal);
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
TCOMIRemoteElementT<T>::get_AdditionalText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  OLECHECK(this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IRemoteElement
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A9D96CE2-9FE4-494E-87B2-20122EAC2AE4}
// *********************************************************************//
template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_AutoSorted(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRemoteElementDispT<T>::get_AutoSorted(void)
{
  TOLEBOOL Result;
  this->get_AutoSorted((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_AutoSorted(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSorted"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_AutoSheet(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSheet"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRemoteElementDispT<T>::get_AutoSheet(void)
{
  TOLEBOOL Result;
  this->get_AutoSheet((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_AutoSheet(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoSheet"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_AutoZone(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoZone"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRemoteElementDispT<T>::get_AutoZone(void)
{
  TOLEBOOL Result;
  this->get_AutoZone((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_AutoZone(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoZone"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_AdditionalText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AdditionalText"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IRemoteElementDispT<T>::get_AdditionalText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_AdditionalText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Xc(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_Xc(void)
{
  double Result;
  this->get_Xc((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_Xc(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Yc(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_Yc(void)
{
  double Result;
  this->get_Yc((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_Yc(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Radius(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_Radius(void)
{
  double Result;
  this->get_Radius((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_Radius(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Height(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_Height(void)
{
  double Result;
  this->get_Height((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_Height(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Height"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Width(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_Width(void)
{
  double Result;
  this->get_Width((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_Width(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Width"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IRemoteElementDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_ShelfX(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_ShelfX(void)
{
  double Result;
  this->get_ShelfX((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_ShelfX(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_ShelfY(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_ShelfY(void)
{
  double Result;
  this->get_ShelfY((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_ShelfY(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Form(ksContourFormEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksContourFormEnum __fastcall
IRemoteElementDispT<T>::get_Form(void)
{
  ksContourFormEnum Result;
  this->get_Form((ksContourFormEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_Form(ksContourFormEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_TextUp(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUp"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IRemoteElementDispT<T>::get_TextUp(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUp((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_TextDown(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDown"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IRemoteElementDispT<T>::get_TextDown(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextDown((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_FilletRadius(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilletRadius"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IRemoteElementDispT<T>::get_FilletRadius(void)
{
  double Result;
  this->get_FilletRadius((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_FilletRadius(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FilletRadius"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IRemoteElementDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRemoteElementDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRemoteElementDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRemoteElementDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRemoteElementDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IRemoteElementDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IRemoteElementDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IRemoteElementDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IRemoteElementDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IRemoteElementDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IRemoteElementDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IRemoteElementDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAxisLines
// Interface: IAxisLines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAxisLinesT<T>::get_AxisLine(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_AxisLine(Index, Result);
}

template <class T> Kompasltapi7_tlb::IAxisLinePtr __fastcall
TCOMIAxisLinesT<T>::get_AxisLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAxisLinePtr Result;
  OLECHECK(this->get_AxisLine(Index, (Kompasltapi7_tlb::IAxisLinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIAxisLinesT<T>::Add(Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IAxisLinePtr __fastcall
TCOMIAxisLinesT<T>::Add(void)
{
  Kompasltapi7_tlb::IAxisLinePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IAxisLinePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IAxisLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C567E700-E163-4C8F-B329-931BB93D0223}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get_AxisLine(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AxisLine"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAxisLine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAxisLinePtr __fastcall
IAxisLinesDispT<T>::get_AxisLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAxisLinePtr Result;
  this->get_AxisLine(Index, (Kompasltapi7_tlb::IAxisLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::Add(Kompasltapi7_tlb::IAxisLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAxisLine**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAxisLinePtr __fastcall
IAxisLinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IAxisLinePtr Result;
  this->Add((Kompasltapi7_tlb::IAxisLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IAxisLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IAxisLinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAxisLinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAxisLinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAxisLinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAxisLinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAxisLinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAxisLinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIAxisLine
// Interface: IAxisLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIAxisLineT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIAxisLineT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIAxisLineT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIAxisLineT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIAxisLineT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIAxisLineT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIAxisLineT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAxisLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {5C5CAEBD-70A9-41DB-9F74-F9760D822D95}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IAxisLineDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAxisLineDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IAxisLineDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IAxisLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IAxisLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IAxisLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IAxisLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAxisLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIWaveLines
// Interface: IWaveLines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIWaveLinesT<T>::get_WaveLine(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_WaveLine(Index, Result);
}

template <class T> Kompasltapi7_tlb::IWaveLinePtr __fastcall
TCOMIWaveLinesT<T>::get_WaveLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IWaveLinePtr Result;
  OLECHECK(this->get_WaveLine(Index, (Kompasltapi7_tlb::IWaveLinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIWaveLinesT<T>::Add(Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IWaveLinePtr __fastcall
TCOMIWaveLinesT<T>::Add(void)
{
  Kompasltapi7_tlb::IWaveLinePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IWaveLinePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IWaveLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C1F0A911-8B4A-48B5-9611-5250D3FC2ACA}
// *********************************************************************//
template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get_WaveLine(TVariantInParam Index/*[in]*/, 
                                 Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WaveLine"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IWaveLine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IWaveLinePtr __fastcall
IWaveLinesDispT<T>::get_WaveLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IWaveLinePtr Result;
  this->get_WaveLine(Index, (Kompasltapi7_tlb::IWaveLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::Add(Kompasltapi7_tlb::IWaveLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IWaveLine**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IWaveLinePtr __fastcall
IWaveLinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IWaveLinePtr Result;
  this->Add((Kompasltapi7_tlb::IWaveLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                             Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IWaveLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IWaveLinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IWaveLinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IWaveLinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IWaveLinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IWaveLinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IWaveLinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IWaveLinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIWaveLine
// Interface: IWaveLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIWaveLineT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIWaveLineT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_HalfWavesCount(long PVal/*[in]*/)
{
  return (*this)->set_HalfWavesCount(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_HalfWavesCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_HalfWavesCount(PVal);
}

template <class T> long __fastcall
TCOMIWaveLineT<T>::get_HalfWavesCount(void)
{
  long PVal;
  OLECHECK(this->get_HalfWavesCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_WaveLength(double PVal/*[in]*/)
{
  return (*this)->set_WaveLength(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_WaveLength(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WaveLength(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_WaveLength(void)
{
  double PVal;
  OLECHECK(this->get_WaveLength((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, double NewVal/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetWavesAmplitude(Representation, NewVal, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIWaveLineT<T>::SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, double NewVal/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetWavesAmplitude(Representation, NewVal, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_WavesAmplitude(double* PVal/*[out,retval]*/)
{
  return (*this)->get_WavesAmplitude(PVal);
}

template <class T> double __fastcall
TCOMIWaveLineT<T>::get_WavesAmplitude(void)
{
  double PVal;
  OLECHECK(this->get_WavesAmplitude((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_WavesAmplitudeRepresentation(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_WavesAmplitudeRepresentation(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIWaveLineT<T>::get_WavesAmplitudeRepresentation(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_WavesAmplitudeRepresentation((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::set_AutoWavesAmplitude(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AutoWavesAmplitude(PVal);
}

template <class T> HRESULT __fastcall
TCOMIWaveLineT<T>::get_AutoWavesAmplitude(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoWavesAmplitude(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIWaveLineT<T>::get_AutoWavesAmplitude(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoWavesAmplitude((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IWaveLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA2012E1-A983-47D3-9D43-B8DC619AC554}
// *********************************************************************//
template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IWaveLineDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_HalfWavesCount(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("HalfWavesCount"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_HalfWavesCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("HalfWavesCount"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IWaveLineDispT<T>::get_HalfWavesCount(void)
{
  long PVal;
  this->get_HalfWavesCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_WaveLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("WaveLength"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_WaveLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WaveLength"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_WaveLength(void)
{
  double PVal;
  this->get_WaveLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, double NewVal/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetWavesAmplitude"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = Representation /*[VT_BOOL:0]*/;
  _args[2] = NewVal /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::SetWavesAmplitude(TOLEBOOL Representation/*[in]*/, double NewVal/*[in]*/)
{
  TOLEBOOL Result;
  this->SetWavesAmplitude(Representation, NewVal, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_WavesAmplitude(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WavesAmplitude"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IWaveLineDispT<T>::get_WavesAmplitude(void)
{
  double PVal;
  this->get_WavesAmplitude((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_WavesAmplitudeRepresentation(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("WavesAmplitudeRepresentation"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::get_WavesAmplitudeRepresentation(void)
{
  TOLEBOOL PVal;
  this->get_WavesAmplitudeRepresentation((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_AutoWavesAmplitude(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoWavesAmplitude"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_AutoWavesAmplitude(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoWavesAmplitude"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::get_AutoWavesAmplitude(void)
{
  TOLEBOOL PVal;
  this->get_AutoWavesAmplitude((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IWaveLineDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IWaveLineDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IWaveLineDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IWaveLineDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IWaveLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IWaveLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IWaveLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IWaveLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IWaveLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBrokenLines
// Interface: IBrokenLines
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBrokenLinesT<T>::get_BrokenLine(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/)
{
  return (*this)->get_BrokenLine(Index, Result);
}

template <class T> Kompasltapi7_tlb::IBrokenLinePtr __fastcall
TCOMIBrokenLinesT<T>::get_BrokenLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBrokenLinePtr Result;
  OLECHECK(this->get_BrokenLine(Index, (Kompasltapi7_tlb::IBrokenLinePtr*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLinesT<T>::Add(Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/)
{
  return (*this)->Add(Result);
}

template <class T> Kompasltapi7_tlb::IBrokenLinePtr __fastcall
TCOMIBrokenLinesT<T>::Add(void)
{
  Kompasltapi7_tlb::IBrokenLinePtr Result;
  OLECHECK(this->Add((Kompasltapi7_tlb::IBrokenLinePtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IBrokenLines
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2A7EADC0-5E79-4DDB-85D5-E3EDB743480D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get_BrokenLine(TVariantInParam Index/*[in]*/, 
                                     Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BrokenLine"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBrokenLine**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBrokenLinePtr __fastcall
IBrokenLinesDispT<T>::get_BrokenLine(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IBrokenLinePtr Result;
  this->get_BrokenLine(Index, (Kompasltapi7_tlb::IBrokenLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::Add(Kompasltapi7_tlb::IBrokenLinePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IBrokenLine**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IBrokenLinePtr __fastcall
IBrokenLinesDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IBrokenLinePtr Result;
  this->Add((Kompasltapi7_tlb::IBrokenLinePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                               Kompasltapi7_tlb::IDrawingObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBrokenLinesDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IDrawingObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get__NewEnum(LPUNKNOWN* PObject/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_NewEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PObject /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IBrokenLinesDispT<T>::get__NewEnum(void)
{
  LPUNKNOWN PObject;
  this->get__NewEnum((LPUNKNOWN*)&PObject);
  return PObject;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBrokenLinesDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBrokenLinesDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBrokenLinesDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBrokenLinesDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBrokenLinesDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBrokenLinesDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBrokenLine
// Interface: IBrokenLine
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_Style(long* Result/*[out,retval]*/)
{
  return (*this)->get_Style(Result);
}

template <class T> long __fastcall
TCOMIBrokenLineT<T>::get_Style(void)
{
  long Result;
  OLECHECK(this->get_Style((long*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_Style(long Result/*[in]*/)
{
  return (*this)->set_Style(Result);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_JutValue(double PVal/*[in]*/)
{
  return (*this)->set_JutValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_JutValue(double* PVal/*[out,retval]*/)
{
  return (*this)->get_JutValue(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_JutValue(void)
{
  double PVal;
  OLECHECK(this->get_JutValue((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_AutoJutValue(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AutoJutValue(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_AutoJutValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoJutValue(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIBrokenLineT<T>::get_AutoJutValue(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoJutValue((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_BreaksCount(long PVal/*[in]*/)
{
  return (*this)->set_BreaksCount(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_BreaksCount(long* PVal/*[out,retval]*/)
{
  return (*this)->get_BreaksCount(PVal);
}

template <class T> long __fastcall
TCOMIBrokenLineT<T>::get_BreaksCount(void)
{
  long PVal;
  OLECHECK(this->get_BreaksCount((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_BreakAmplitude(double PVal/*[in]*/)
{
  return (*this)->set_BreakAmplitude(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_BreakAmplitude(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BreakAmplitude(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_BreakAmplitude(void)
{
  double PVal;
  OLECHECK(this->get_BreakAmplitude((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_AutoBreakAmplitude(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AutoBreakAmplitude(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_AutoBreakAmplitude(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AutoBreakAmplitude(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIBrokenLineT<T>::get_AutoBreakAmplitude(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AutoBreakAmplitude((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_BreakDisplacement(double PVal/*[in]*/)
{
  return (*this)->set_BreakDisplacement(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_BreakDisplacement(double* PVal/*[out,retval]*/)
{
  return (*this)->get_BreakDisplacement(PVal);
}

template <class T> double __fastcall
TCOMIBrokenLineT<T>::get_BreakDisplacement(void)
{
  double PVal;
  OLECHECK(this->get_BreakDisplacement((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::set_Type1(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Type1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIBrokenLineT<T>::get_Type1(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Type1(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIBrokenLineT<T>::get_Type1(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Type1((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBrokenLine
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2482EB44-5625-4FB9-A46B-781426B02510}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Style(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBrokenLineDispT<T>::get_Style(void)
{
  long Result;
  this->get_Style((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_Style(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Style"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_JutValue(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("JutValue"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_JutValue(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("JutValue"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_JutValue(void)
{
  double PVal;
  this->get_JutValue((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_AutoJutValue(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoJutValue"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_AutoJutValue(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoJutValue"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrokenLineDispT<T>::get_AutoJutValue(void)
{
  TOLEBOOL PVal;
  this->get_AutoJutValue((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_BreaksCount(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreaksCount"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_BreaksCount(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreaksCount"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBrokenLineDispT<T>::get_BreaksCount(void)
{
  long PVal;
  this->get_BreaksCount((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_BreakAmplitude(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakAmplitude"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_BreakAmplitude(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakAmplitude"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_BreakAmplitude(void)
{
  double PVal;
  this->get_BreakAmplitude((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_AutoBreakAmplitude(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoBreakAmplitude"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_AutoBreakAmplitude(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoBreakAmplitude"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrokenLineDispT<T>::get_AutoBreakAmplitude(void)
{
  TOLEBOOL PVal;
  this->get_AutoBreakAmplitude((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_BreakDisplacement(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakDisplacement"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_BreakDisplacement(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BreakDisplacement"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBrokenLineDispT<T>::get_BreakDisplacement(void)
{
  double PVal;
  this->get_BreakDisplacement((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_Type1(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type1"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Type1(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type1"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrokenLineDispT<T>::get_Type1(void)
{
  TOLEBOOL PVal;
  this->get_Type1((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBrokenLineDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBrokenLineDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrokenLineDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrokenLineDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrokenLineDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrokenLineDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBrokenLineDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBrokenLineDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBrokenLineDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBrokenLineDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBrokenLineDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBrokenLineDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIBreakAngleDimension
// Interface: IBreakAngleDimension
// *********************************************************************//
// *********************************************************************//
// DispIntf:  IBreakAngleDimension
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F6ED408A-C2A8-47DD-8EC3-011A7AD60335}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Angle1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Angle1(void)
{
  double PVal;
  this->get_Angle1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject1"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBreakAngleDimensionDispT<T>::get_BaseObject1(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject1((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_BaseObject1(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject1"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr* Object1/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject2"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Object1 /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
IBreakAngleDimensionDispT<T>::get_BaseObject2(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Object1;
  this->get_BaseObject2((Kompasltapi7_tlb::IDrawingObjectPtr*)&Object1);
  return Object1;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_BaseObject2(Kompasltapi7_tlb::IDrawingObjectPtr Object1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseObject2"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Object1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_DimensionType(ksAngleDimTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAngleDimTypeEnum __fastcall
IBreakAngleDimensionDispT<T>::get_DimensionType(void)
{
  ksAngleDimTypeEnum PVal;
  this->get_DimensionType((ksAngleDimTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_DimensionType(ksAngleDimTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionType"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_ShelfX(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_ShelfX(void)
{
  double PVal;
  this->get_ShelfX((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_ShelfX(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfX"), DISPID(13));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_ShelfY(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(14));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_ShelfY(void)
{
  double PVal;
  this->get_ShelfY((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_ShelfY(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfY"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(15));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakAngleDimensionDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(16));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBreakAngleDimensionDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IBreakAngleDimensionDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakAngleDimensionDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakAngleDimensionDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakAngleDimensionDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakAngleDimensionDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBreakAngleDimensionDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IBreakAngleDimensionDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IBreakAngleDimensionDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IBreakAngleDimensionDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IBreakAngleDimensionDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IBreakAngleDimensionDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBreakAngleDimensionDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBranchs
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C8A55AB3-D6DD-49B8-95F0-716475855C10}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBranchsDispT<T>::get_X0(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X0"), DISPID(5001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBranchsDispT<T>::get_X0(void)
{
  double Result;
  this->get_X0((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::set_X0(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X0"), DISPID(5001));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::get_Y0(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y0"), DISPID(5002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBranchsDispT<T>::get_Y0(void)
{
  double Result;
  this->get_Y0((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::set_Y0(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y0"), DISPID(5002));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::get_BranchCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchCount"), DISPID(5003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBranchsDispT<T>::get_BranchCount(void)
{
  long Result;
  this->get_BranchCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::set_BranchPoints(long Index/*[in]*/, TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(5004));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::get_BranchPoints(long Index/*[in]*/, TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPoints"), DISPID(5004));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IBranchsDispT<T>::get_BranchPoints(long Index/*[in]*/)
{
  TVariant PVal;
  this->get_BranchPoints(Index, (TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::get_BranchPointsCount(long Index/*[in]*/, long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchPointsCount"), DISPID(5005));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IBranchsDispT<T>::get_BranchPointsCount(long Index/*[in]*/)
{
  long Result;
  this->get_BranchPointsCount(Index, (long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::set_BranchX(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(5006));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::get_BranchX(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchX"), DISPID(5006));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBranchsDispT<T>::get_BranchX(long Index/*[in]*/)
{
  double PVal;
  this->get_BranchX(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::set_BranchY(long Index/*[in]*/, double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(5007));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::get_BranchY(long Index/*[in]*/, double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchY"), DISPID(5007));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IBranchsDispT<T>::get_BranchY(long Index/*[in]*/)
{
  double PVal;
  this->get_BranchY(Index, (double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/, 
                            TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranch"), DISPID(5008));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = Points /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchsDispT<T>::AddBranch(long Index/*[in]*/, TVariantInParam Points/*[in]*/)
{
  TOLEBOOL Result;
  this->AddBranch(Index, Points, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/, 
                                   TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBranchByPoint"), DISPID(5009));
  TAutoArgs<3> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = X /*[VT_R8:0]*/;
  _args[3] = Y /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchsDispT<T>::AddBranchByPoint(long Index/*[in]*/, double X/*[in]*/, double Y/*[in]*/)
{
  TOLEBOOL Result;
  this->AddBranchByPoint(Index, X, Y, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBranchsDispT<T>::DeleteBranch(long Index/*[in]*/, TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteBranch"), DISPID(5010));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBranchsDispT<T>::DeleteBranch(long Index/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteBranch(Index, (TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// DispIntf:  ILeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A7419920-06B8-4F34-AC1E-9D48E0ED9DCB}
// *********************************************************************//
template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
ILeaderDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_SignType(ksLeaderSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksLeaderSignEnum __fastcall
ILeaderDispT<T>::get_SignType(void)
{
  ksLeaderSignEnum Result;
  this->get_SignType((ksLeaderSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::set_SignType(ksLeaderSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_Arround(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Arround"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILeaderDispT<T>::get_Arround(void)
{
  TOLEBOOL Result;
  this->get_Arround((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::set_Arround(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Arround"), DISPID(1503));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_TextOnShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnShelf"), DISPID(1504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ILeaderDispT<T>::get_TextOnShelf(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextOnShelf((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_TextUnderShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnderShelf"), DISPID(1505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ILeaderDispT<T>::get_TextUnderShelf(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnderShelf((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnBranch"), DISPID(1506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ILeaderDispT<T>::get_TextOnBranch(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextOnBranch((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnderBranch"), DISPID(1507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ILeaderDispT<T>::get_TextUnderBranch(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnderBranch((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_TextAfterShelf(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextAfterShelf"), DISPID(1508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
ILeaderDispT<T>::get_TextAfterShelf(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextAfterShelf((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::set_BranchBegin(long Index/*[in]*/, TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchBegin"), DISPID(1509));
  TAutoArgs<2> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  _args[2] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_BranchBegin(long Index/*[in]*/, TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BranchBegin"), DISPID(1509));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILeaderDispT<T>::get_BranchBegin(long Index/*[in]*/)
{
  TOLEBOOL PVal;
  this->get_BranchBegin(Index, (TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::get_ParallelBranch(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParallelBranch"), DISPID(1510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ILeaderDispT<T>::get_ParallelBranch(void)
{
  TOLEBOOL PVal;
  this->get_ParallelBranch((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ILeaderDispT<T>::set_ParallelBranch(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ParallelBranch"), DISPID(1510));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IMarkLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8A5D2A56-ECB6-4151-B1AC-F8548CD668CF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMarkLeaderDispT<T>::get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnBranch"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkLeaderDispT<T>::get_TextOnBranch(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextOnBranch((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkLeaderDispT<T>::get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnderBranch"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkLeaderDispT<T>::get_TextUnderBranch(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnderBranch((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMarkLeaderDispT<T>::get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Designation"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IMarkLeaderDispT<T>::get_Designation(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Designation((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPositionLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A8227628-4B9C-42C8-AE58-B3716A7EC1AF}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::get_ShelfDirection(ksShelfDirectionEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksShelfDirectionEnum __fastcall
IPositionLeaderDispT<T>::get_ShelfDirection(void)
{
  ksShelfDirectionEnum Result;
  this->get_ShelfDirection((ksShelfDirectionEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::set_ShelfDirection(ksShelfDirectionEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfDirection"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::get_ShelfVisible(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfVisible"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPositionLeaderDispT<T>::get_ShelfVisible(void)
{
  TOLEBOOL Result;
  this->get_ShelfVisible((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::set_ShelfVisible(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ShelfVisible"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::get_TextDirection(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDirection"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPositionLeaderDispT<T>::get_TextDirection(void)
{
  TOLEBOOL Result;
  this->get_TextDirection((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::set_TextDirection(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextDirection"), DISPID(1503));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::get_Form(ksPositionLederFormEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(1504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksPositionLederFormEnum __fastcall
IPositionLeaderDispT<T>::get_Form(void)
{
  ksPositionLederFormEnum Result;
  this->get_Form((ksPositionLederFormEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::set_Form(ksPositionLederFormEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Form"), DISPID(1504));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::get_Positions(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Positions"), DISPID(1505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IPositionLeaderDispT<T>::get_Positions(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Positions((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::get_UnderPositionText(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("UnderPositionText"), DISPID(1506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IPositionLeaderDispT<T>::get_UnderPositionText(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_UnderPositionText((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::get_Horizontally(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Horizontally"), DISPID(1507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPositionLeaderDispT<T>::get_Horizontally(void)
{
  TOLEBOOL Result;
  this->get_Horizontally((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IPositionLeaderDispT<T>::set_Horizontally(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Horizontally"), DISPID(1507));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IChangeLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {CCFBE87D-1A3C-4C8B-ABE3-1C2319694314}
// *********************************************************************//
template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::get_SignType(ksChangeLeaderSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksChangeLeaderSignEnum __fastcall
IChangeLeaderDispT<T>::get_SignType(void)
{
  ksChangeLeaderSignEnum Result;
  this->get_SignType((ksChangeLeaderSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::set_SignType(ksChangeLeaderSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignType"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::get_SignHeight(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignHeight"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IChangeLeaderDispT<T>::get_SignHeight(void)
{
  double Result;
  this->get_SignHeight((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::set_SignHeight(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SignHeight"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::get_LeaderLength(double* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeaderLength"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IChangeLeaderDispT<T>::get_LeaderLength(void)
{
  double Result;
  this->get_LeaderLength((double*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::set_LeaderLength(double Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LeaderLength"), DISPID(1503));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::get_FullLeaderLength(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FullLeaderLength"), DISPID(1504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IChangeLeaderDispT<T>::get_FullLeaderLength(void)
{
  TOLEBOOL Result;
  this->get_FullLeaderLength((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::set_FullLeaderLength(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("FullLeaderLength"), DISPID(1504));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IChangeLeaderDispT<T>::get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Designation"), DISPID(1505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IChangeLeaderDispT<T>::get_Designation(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Designation((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBrandLeader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EEF8366B-7C8D-448B-9944-BE63E82C1543}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBrandLeaderDispT<T>::get_TextOnBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextOnBranch"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBrandLeaderDispT<T>::get_TextOnBranch(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextOnBranch((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrandLeaderDispT<T>::get_TextUnderBranch(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TextUnderBranch"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBrandLeaderDispT<T>::get_TextUnderBranch(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_TextUnderBranch((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrandLeaderDispT<T>::get_Designation(Kompasltapi7_tlb::ITextPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Designation"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IText**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextPtr __fastcall
IBrandLeaderDispT<T>::get_Designation(void)
{
  Kompasltapi7_tlb::ITextPtr PVal;
  this->get_Designation((Kompasltapi7_tlb::ITextPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBrandLeaderDispT<T>::get_Direction(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(1504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBrandLeaderDispT<T>::get_Direction(void)
{
  TOLEBOOL Result;
  this->get_Direction((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBrandLeaderDispT<T>::set_Direction(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(1504));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IToleranceParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {46E2F216-6BCE-4863-9DDC-CC08DC0016F7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_BasePointPos(ksTablePointEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePointPos"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTablePointEnum __fastcall
IToleranceParamDispT<T>::get_BasePointPos(void)
{
  ksTablePointEnum Result;
  this->get_BasePointPos((ksTablePointEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_BasePointPos(ksTablePointEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BasePointPos"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_Vertical(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Vertical"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IToleranceParamDispT<T>::get_Vertical(void)
{
  TOLEBOOL Result;
  this->get_Vertical((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_Vertical(TOLEBOOL Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Vertical"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_Table(Kompasltapi7_tlb::ITablePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Table"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITable**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITablePtr __fastcall
IToleranceParamDispT<T>::get_Table(void)
{
  Kompasltapi7_tlb::ITablePtr PVal;
  this->get_Table((Kompasltapi7_tlb::ITablePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_Sign(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign"), DISPID(1504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IToleranceParamDispT<T>::get_Sign(void)
{
  long Result;
  this->get_Sign((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_Sign(long Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign"), DISPID(1504));
  TAutoArgs<1> _args;
  _args[1] = Result /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_PrefixSign(ksTolerancePrefixSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PrefixSign"), DISPID(1505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksTolerancePrefixSignEnum __fastcall
IToleranceParamDispT<T>::get_PrefixSign(void)
{
  ksTolerancePrefixSignEnum Result;
  this->get_PrefixSign((ksTolerancePrefixSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_PrefixSign(ksTolerancePrefixSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PrefixSign"), DISPID(1505));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_Value(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(1506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IToleranceParamDispT<T>::get_Value(void)
{
  BSTR PVal;
  this->get_Value((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_Value(BSTR PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(1506));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_SuffixSign(ksToleranceSuffixSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SuffixSign"), DISPID(1507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksToleranceSuffixSignEnum __fastcall
IToleranceParamDispT<T>::get_SuffixSign(void)
{
  ksToleranceSuffixSignEnum Result;
  this->get_SuffixSign((ksToleranceSuffixSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_SuffixSign(ksToleranceSuffixSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SuffixSign"), DISPID(1507));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_BaseValue1(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseValue1"), DISPID(1508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IToleranceParamDispT<T>::get_BaseValue1(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_BaseValue1((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_BaseSign1(ksToleranceSuffixSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseSign1"), DISPID(1509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksToleranceSuffixSignEnum __fastcall
IToleranceParamDispT<T>::get_BaseSign1(void)
{
  ksToleranceSuffixSignEnum Result;
  this->get_BaseSign1((ksToleranceSuffixSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_BaseSign1(ksToleranceSuffixSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseSign1"), DISPID(1509));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_BaseValue2(Kompasltapi7_tlb::ITextLinePtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseValue2"), DISPID(1510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ITextLine**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ITextLinePtr __fastcall
IToleranceParamDispT<T>::get_BaseValue2(void)
{
  Kompasltapi7_tlb::ITextLinePtr PVal;
  this->get_BaseValue2((Kompasltapi7_tlb::ITextLinePtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::get_BaseSign2(ksToleranceSuffixSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseSign2"), DISPID(1511));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksToleranceSuffixSignEnum __fastcall
IToleranceParamDispT<T>::get_BaseSign2(void)
{
  ksToleranceSuffixSignEnum Result;
  this->get_BaseSign2((ksToleranceSuffixSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IToleranceParamDispT<T>::set_BaseSign2(ksToleranceSuffixSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseSign2"), DISPID(1511));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIContourSegment
// Interface: IContourSegment
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIContourSegmentT<T>::get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/)
{
  return (*this)->get_SegmentType(Result);
}

template <class T> ksContourSegmentEnum __fastcall
TCOMIContourSegmentT<T>::get_SegmentType(void)
{
  ksContourSegmentEnum Result;
  OLECHECK(this->get_SegmentType((ksContourSegmentEnum*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIContourSegmentT<T>::get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/)
{
  return (*this)->get_Curve2D(Result);
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
TCOMIContourSegmentT<T>::get_Curve2D(void)
{
  Kompasltapi7_tlb::ICurve2DPtr Result;
  OLECHECK(this->get_Curve2D((Kompasltapi7_tlb::ICurve2DPtr*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IContourSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AA485B32-FF45-4035-BFC4-AEE54E638344}
// *********************************************************************//
template <class T> HRESULT __fastcall
IContourSegmentDispT<T>::get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SegmentType"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksContourSegmentEnum __fastcall
IContourSegmentDispT<T>::get_SegmentType(void)
{
  ksContourSegmentEnum Result;
  this->get_SegmentType((ksContourSegmentEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourSegmentDispT<T>::get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Curve2D"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IContourSegmentDispT<T>::get_Curve2D(void)
{
  Kompasltapi7_tlb::ICurve2DPtr Result;
  this->get_Curve2D((Kompasltapi7_tlb::ICurve2DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourSegmentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IContourSegmentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourSegmentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IContourSegmentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourSegmentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IContourSegmentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IContourSegmentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IContourSegmentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIContourLineSegment
// Interface: IContourLineSegment
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIContourLineSegmentT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIContourLineSegmentT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIContourLineSegmentT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIContourLineSegmentT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::set_Length(double PVal/*[in]*/)
{
  return (*this)->set_Length(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Length(PVal);
}

template <class T> double __fastcall
TCOMIContourLineSegmentT<T>::get_Length(void)
{
  double PVal;
  OLECHECK(this->get_Length((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::set_Angle(double PVal/*[in]*/)
{
  return (*this)->set_Angle(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourLineSegmentT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle(PVal);
}

template <class T> double __fastcall
TCOMIContourLineSegmentT<T>::get_Angle(void)
{
  double PVal;
  OLECHECK(this->get_Angle((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IContourLineSegment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FB2432F1-8AE7-4D43-AFF2-A3A3BE226CFA}
// *********************************************************************//
template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourLineSegmentDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourLineSegmentDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourLineSegmentDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourLineSegmentDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::set_Length(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Length(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Length"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourLineSegmentDispT<T>::get_Length(void)
{
  double PVal;
  this->get_Length((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourLineSegmentDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SegmentType"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksContourSegmentEnum __fastcall
IContourLineSegmentDispT<T>::get_SegmentType(void)
{
  ksContourSegmentEnum Result;
  this->get_SegmentType((ksContourSegmentEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Curve2D"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IContourLineSegmentDispT<T>::get_Curve2D(void)
{
  Kompasltapi7_tlb::ICurve2DPtr Result;
  this->get_Curve2D((Kompasltapi7_tlb::ICurve2DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IContourLineSegmentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IContourLineSegmentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IContourLineSegmentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IContourLineSegmentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IContourLineSegmentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIContourArc
// Interface: IContourArc
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Radius(double PVal/*[in]*/)
{
  return (*this)->set_Radius(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Radius(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Radius(void)
{
  double PVal;
  OLECHECK(this->get_Radius((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_Direction(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_Direction(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIContourArcT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_Direction((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Xc(double PVal/*[in]*/)
{
  return (*this)->set_Xc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Xc(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Xc(void)
{
  double PVal;
  OLECHECK(this->get_Xc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Yc(double PVal/*[in]*/)
{
  return (*this)->set_Yc(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Yc(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Yc(void)
{
  double PVal;
  OLECHECK(this->get_Yc((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_X1(double PVal/*[in]*/)
{
  return (*this)->set_X1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X1(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_X1(void)
{
  double PVal;
  OLECHECK(this->get_X1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Y1(double PVal/*[in]*/)
{
  return (*this)->set_Y1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y1(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Y1(void)
{
  double PVal;
  OLECHECK(this->get_Y1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_X2(double PVal/*[in]*/)
{
  return (*this)->set_X2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X2(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_X2(void)
{
  double PVal;
  OLECHECK(this->get_X2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Y2(double PVal/*[in]*/)
{
  return (*this)->set_Y2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y2(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Y2(void)
{
  double PVal;
  OLECHECK(this->get_Y2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_X3(double PVal/*[in]*/)
{
  return (*this)->set_X3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_X3(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_X3(void)
{
  double PVal;
  OLECHECK(this->get_X3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Y3(double PVal/*[in]*/)
{
  return (*this)->set_Y3(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Y3(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Y3(void)
{
  double PVal;
  OLECHECK(this->get_Y3((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Angle1(double PVal/*[in]*/)
{
  return (*this)->set_Angle1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle1(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Angle1(void)
{
  double PVal;
  OLECHECK(this->get_Angle1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::set_Angle2(double PVal/*[in]*/)
{
  return (*this)->set_Angle2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIContourArcT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle2(PVal);
}

template <class T> double __fastcall
TCOMIContourArcT<T>::get_Angle2(void)
{
  double PVal;
  OLECHECK(this->get_Angle2((double*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IContourArc
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {ED4A6D97-4543-4842-B2C3-973FB0E90E87}
// *********************************************************************//
template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Radius(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Radius(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Radius(void)
{
  double PVal;
  this->get_Radius((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Direction(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Direction(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Direction"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IContourArcDispT<T>::get_Direction(void)
{
  TOLEBOOL PVal;
  this->get_Direction((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Xc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Xc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Xc(void)
{
  double PVal;
  this->get_Xc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Yc(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Yc(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Yc(void)
{
  double PVal;
  this->get_Yc((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_X1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_X1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X1"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_X1(void)
{
  double PVal;
  this->get_X1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Y1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Y1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y1"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Y1(void)
{
  double PVal;
  this->get_Y1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_X2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_X2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X2"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_X2(void)
{
  double PVal;
  this->get_X2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Y2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Y2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y2"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Y2(void)
{
  double PVal;
  this->get_Y2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_X3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_X3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("X3"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_X3(void)
{
  double PVal;
  this->get_X3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Y3(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(10));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Y3(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Y3"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Y3(void)
{
  double PVal;
  this->get_Y3((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Angle1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(11));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Angle1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Angle1(void)
{
  double PVal;
  this->get_Angle1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(12));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IContourArcDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_SegmentType(ksContourSegmentEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SegmentType"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksContourSegmentEnum __fastcall
IContourArcDispT<T>::get_SegmentType(void)
{
  ksContourSegmentEnum Result;
  this->get_SegmentType((ksContourSegmentEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Curve2D(Kompasltapi7_tlb::ICurve2DPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Curve2D"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::ICurve2D**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::ICurve2DPtr __fastcall
IContourArcDispT<T>::get_Curve2D(void)
{
  Kompasltapi7_tlb::ICurve2DPtr Result;
  this->get_Curve2D((Kompasltapi7_tlb::ICurve2DPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IContourArcDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IContourArcDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IContourArcDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IContourArcDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IContourArcDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsertionFragment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3D99B82C-CD88-406D-A946-2D8C8E94EE73}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IInsertionFragmentDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::set_MultiLayer(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("MultiLayer"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_MultiLayer(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("MultiLayer"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::get_MultiLayer(void)
{
  TOLEBOOL PVal;
  this->get_MultiLayer((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Variables(TVariant* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variables"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IInsertionFragmentDispT<T>::get_Variables(void)
{
  TVariant Result;
  this->get_Variables((TVariant*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Variable(TVariantInParam Index/*[in]*/, 
                                         Kompasltapi7_tlb::IVariable7Ptr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Variable"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariable7**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariable7Ptr __fastcall
IInsertionFragmentDispT<T>::get_Variable(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IVariable7Ptr Result;
  this->get_Variable(Index, (Kompasltapi7_tlb::IVariable7Ptr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_VariablesCount(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VariablesCount"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionFragmentDispT<T>::get_VariablesCount(void)
{
  long Result;
  this->get_VariablesCount((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_VariableTable(Kompasltapi7_tlb::IVariableTablePtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VariableTable"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IVariableTable**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IVariableTablePtr __fastcall
IInsertionFragmentDispT<T>::get_VariableTable(void)
{
  Kompasltapi7_tlb::IVariableTablePtr Result;
  this->get_VariableTable((Kompasltapi7_tlb::IVariableTablePtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                         double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPlacement"), DISPID(1));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Angle /*[VT_R8:1]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, 
                                         double* Angle/*[out]*/, TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                         TOLEBOOL MirrorSymmetry/*[in]*/, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPlacement"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                         TOLEBOOL MirrorSymmetry/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionFragmentDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionFragmentDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_InsertionType(ksInsertionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksInsertionTypeEnum __fastcall
IInsertionFragmentDispT<T>::get_InsertionType(void)
{
  ksInsertionTypeEnum PVal;
  this->get_InsertionType((ksInsertionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionDefinition**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall
IInsertionFragmentDispT<T>::get_InsertionDefinition(void)
{
  Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
  this->get_InsertionDefinition((Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsertionDefinition*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IInsertionFragmentDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionFragmentDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionFragmentDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IInsertionFragmentDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertionFragmentDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertionFragmentDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertionFragmentDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionFragmentDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionFragmentDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIInsertionView
// Interface: IInsertionView
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIInsertionViewT<T>::set_ViewNumber(long PVal/*[in]*/)
{
  return (*this)->set_ViewNumber(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionViewT<T>::get_ViewNumber(long* PVal/*[out,retval]*/)
{
  return (*this)->get_ViewNumber(PVal);
}

template <class T> long __fastcall
TCOMIInsertionViewT<T>::get_ViewNumber(void)
{
  long PVal;
  OLECHECK(this->get_ViewNumber((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionViewT<T>::get_ViewName(BSTR* PVal/*[out,retval]*/)
{
  return (*this)->get_ViewName(PVal);
}

template <class T> BSTR __fastcall
TCOMIInsertionViewT<T>::get_ViewName(void)
{
  BSTR PVal = 0;
  OLECHECK(this->get_ViewName((BSTR*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionViewT<T>::set_ThinLines(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ThinLines(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionViewT<T>::get_ThinLines(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ThinLines(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIInsertionViewT<T>::get_ThinLines(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ThinLines((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIInsertionViewT<T>::set_OwnerDocumentParams(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_OwnerDocumentParams(PVal);
}

template <class T> HRESULT __fastcall
TCOMIInsertionViewT<T>::get_OwnerDocumentParams(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_OwnerDocumentParams(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIInsertionViewT<T>::get_OwnerDocumentParams(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_OwnerDocumentParams((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsertionView
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0C8FC5A9-57A8-4971-8E6C-68933269D42E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_ViewNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewNumber"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_ViewNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewNumber"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionViewDispT<T>::get_ViewNumber(void)
{
  long PVal;
  this->get_ViewNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_ViewName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ViewName"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionViewDispT<T>::get_ViewName(void)
{
  BSTR PVal;
  this->get_ViewName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_ThinLines(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ThinLines"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_ThinLines(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ThinLines"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::get_ThinLines(void)
{
  TOLEBOOL PVal;
  this->get_ThinLines((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_OwnerDocumentParams(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("OwnerDocumentParams"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_OwnerDocumentParams(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("OwnerDocumentParams"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::get_OwnerDocumentParams(void)
{
  TOLEBOOL PVal;
  this->get_OwnerDocumentParams((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/
                                     , TOLEBOOL* MirrorSymmetry/*[out]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GetPlacement"), DISPID(1));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:1]*/;
  _args[2] = Y /*[VT_R8:1]*/;
  _args[3] = Angle /*[VT_R8:1]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:1]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::GetPlacement(double* X/*[out]*/, double* Y/*[out]*/, double* Angle/*[out]*/, 
                                     TOLEBOOL* MirrorSymmetry/*[out]*/)
{
  TOLEBOOL Result;
  this->GetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                     TOLEBOOL MirrorSymmetry/*[in]*/, 
                                     TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPlacement"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = X /*[VT_R8:0]*/;
  _args[2] = Y /*[VT_R8:0]*/;
  _args[3] = Angle /*[VT_R8:0]*/;
  _args[4] = MirrorSymmetry /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::SetPlacement(double X/*[in]*/, double Y/*[in]*/, double Angle/*[in]*/, 
                                     TOLEBOOL MirrorSymmetry/*[in]*/)
{
  TOLEBOOL Result;
  this->SetPlacement(X, Y, Angle, MirrorSymmetry, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionViewDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_FileName(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("FileName"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IInsertionViewDispT<T>::get_FileName(void)
{
  BSTR PVal;
  this->get_FileName((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_InsertionType(ksInsertionTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionType"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksInsertionTypeEnum __fastcall
IInsertionViewDispT<T>::get_InsertionType(void)
{
  ksInsertionTypeEnum PVal;
  this->get_InsertionType((ksInsertionTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionDefinition**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall
IInsertionViewDispT<T>::get_InsertionDefinition(void)
{
  Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
  this->get_InsertionDefinition((Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_InsertionDefinition(Kompasltapi7_tlb::IInsertionDefinitionPtr PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IInsertionDefinition*)PVal /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_DrawingObjectType(DrawingObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectType"), DISPID(3000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> DrawingObjectTypeEnum __fastcall
IInsertionViewDispT<T>::get_DrawingObjectType(void)
{
  DrawingObjectTypeEnum Type;
  this->get_DrawingObjectType((DrawingObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_LayerNumber(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionViewDispT<T>::get_LayerNumber(void)
{
  long PVal;
  this->get_LayerNumber((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_LayerNumber(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("LayerNumber"), DISPID(3001));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_Temp(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Temp"), DISPID(3002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::get_Temp(void)
{
  TOLEBOOL Type;
  this->get_Temp((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_Valid(TOLEBOOL* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Valid"), DISPID(3003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Type /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::get_Valid(void)
{
  TOLEBOOL Type;
  this->get_Valid((TOLEBOOL*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::_Update(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Update"), DISPID(3004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::_Update(void)
{
  TOLEBOOL PRes;
  this->_Update((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::Delete(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(3005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IInsertionViewDispT<T>::Delete(void)
{
  TOLEBOOL PRes;
  this->Delete((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_DrawingObjectParamType(ksDrawingObjectParamTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksDrawingObjectParamTypeEnum __fastcall
IInsertionViewDispT<T>::get_DrawingObjectParamType(void)
{
  ksDrawingObjectParamTypeEnum PVal;
  this->get_DrawingObjectParamType((ksDrawingObjectParamTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::set_DrawingObjectParamType(ksDrawingObjectParamTypeEnum PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DrawingObjectParamType"), DISPID(3006));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IInsertionViewDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IInsertionViewDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IInsertionViewDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IInsertionViewDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionViewDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IInsertionsManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B43FA13A-9488-422C-A9F3-D279FDA296BB}
// *********************************************************************//
template <class T> HRESULT __fastcall
IInsertionsManagerDispT<T>::get_InsertionDefinitions(ksInsertionTypeEnum Type/*[in]*/
                                                     , TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinitions"), DISPID(501));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IInsertionsManagerDispT<T>::get_InsertionDefinitions(ksInsertionTypeEnum Type/*[in]*/)
{
  TVariant PVal;
  this->get_InsertionDefinitions(Type, (TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionsManagerDispT<T>::get_InsertionDefinition(ksInsertionTypeEnum Type/*[in]*/
                                                    , TVariantInParam Index/*[in]*/, 
                                                    Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("InsertionDefinition"), DISPID(502));
  TAutoArgs<2> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionDefinition**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall
IInsertionsManagerDispT<T>::get_InsertionDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                                    TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
  this->get_InsertionDefinition(Type, Index, (Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionsManagerDispT<T>::AddDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                          BSTR Name/*[in]*/, BSTR FileName/*[in]*/, 
                                          Kompasltapi7_tlb::IInsertionDefinitionPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddDefinition"), DISPID(503));
  TAutoArgs<3> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  _args[2] = Name /*[VT_BSTR:0]*/;
  _args[3] = FileName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IInsertionDefinition**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IInsertionDefinitionPtr __fastcall
IInsertionsManagerDispT<T>::AddDefinition(ksInsertionTypeEnum Type/*[in]*/, 
                                          BSTR Name/*[in]*/, BSTR FileName/*[in]*/)
{
  Kompasltapi7_tlb::IInsertionDefinitionPtr PVal;
  this->AddDefinition(Type, Name, FileName, (Kompasltapi7_tlb::IInsertionDefinitionPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IInsertionsManagerDispT<T>::get_DefinitionsCount(ksInsertionTypeEnum Type/*[in]*/
                                                 , long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DefinitionsCount"), DISPID(504));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IInsertionsManagerDispT<T>::get_DefinitionsCount(ksInsertionTypeEnum Type/*[in]*/)
{
  long PVal;
  this->get_DefinitionsCount(Type, (long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IAxisLineParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {620CC8EB-A5C0-4978-BD98-38344DC6ADC0}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_JutLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("JutLength"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_JutLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("JutLength"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineParamDispT<T>::get_JutLength(void)
{
  double PVal;
  this->get_JutLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_DottedLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_DottedLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLength"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineParamDispT<T>::get_DottedLength(void)
{
  double PVal;
  this->get_DottedLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_Interval(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(1503));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_Interval(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Interval"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineParamDispT<T>::get_Interval(void)
{
  double PVal;
  this->get_Interval((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_AutoDetectedDash(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoDetectedDash"), DISPID(1504));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_AutoDetectedDash(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoDetectedDash"), DISPID(1504));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineParamDispT<T>::get_AutoDetectedDash(void)
{
  TOLEBOOL PVal;
  this->get_AutoDetectedDash((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_DashMaxLength(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DashMaxLength"), DISPID(1505));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_DashMaxLength(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DashMaxLength"), DISPID(1505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IAxisLineParamDispT<T>::get_DashMaxLength(void)
{
  double PVal;
  this->get_DashMaxLength((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_JutLengthModify(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("JutLengthModify"), DISPID(1506));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_JutLengthModify(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("JutLengthModify"), DISPID(1506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineParamDispT<T>::get_JutLengthModify(void)
{
  TOLEBOOL PVal;
  this->get_JutLengthModify((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_DottedLengthModify(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLengthModify"), DISPID(1507));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_DottedLengthModify(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DottedLengthModify"), DISPID(1507));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineParamDispT<T>::get_DottedLengthModify(void)
{
  TOLEBOOL PVal;
  this->get_DottedLengthModify((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_IntervalModify(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("IntervalModify"), DISPID(1508));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_IntervalModify(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("IntervalModify"), DISPID(1508));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineParamDispT<T>::get_IntervalModify(void)
{
  TOLEBOOL PVal;
  this->get_IntervalModify((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_AutoDetectedDashModify(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoDetectedDashModify"), DISPID(1509));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_AutoDetectedDashModify(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AutoDetectedDashModify"), DISPID(1509));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineParamDispT<T>::get_AutoDetectedDashModify(void)
{
  TOLEBOOL PVal;
  this->get_AutoDetectedDashModify((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::set_DashMaxLengthModify(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DashMaxLengthModify"), DISPID(1510));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAxisLineParamDispT<T>::get_DashMaxLengthModify(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DashMaxLengthModify"), DISPID(1510));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IAxisLineParamDispT<T>::get_DashMaxLengthModify(void)
{
  TOLEBOOL PVal;
  this->get_DashMaxLengthModify((TOLEBOOL*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IBoundariesObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {7198C93A-7655-4347-9954-BA9AA28D0608}
// *********************************************************************//
template <class T> HRESULT __fastcall
IBoundariesObjectDispT<T>::get_Boundaries(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Boundaries"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IBoundariesObjectDispT<T>::get_Boundaries(void)
{
  TVariant PVal;
  this->get_Boundaries((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IBoundariesObjectDispT<T>::AddBoundaries(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteSource, 
                                         TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddBoundaries"), DISPID(2002));
  TAutoArgs<2> _args;
  _args[1] = Objects /*[VT_VARIANT:0]*/;
  _args[2] = DeleteSource /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBoundariesObjectDispT<T>::AddBoundaries(TVariantInParam Objects/*[in]*/, TOLEBOOL DeleteSource)
{
  TOLEBOOL Result;
  this->AddBoundaries(Objects, DeleteSource, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IBoundariesObjectDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IBoundariesObjectDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

// *********************************************************************//
// DispIntf:  IAnnotativeObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0DBD7BCD-F78E-4BDA-BCAD-3004C60B6D06}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAnnotativeObjectDispT<T>::get_Sign1(ksAnnotativeTerminatorSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign1"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAnnotativeTerminatorSignEnum __fastcall
IAnnotativeObjectDispT<T>::get_Sign1(void)
{
  ksAnnotativeTerminatorSignEnum Result;
  this->get_Sign1((ksAnnotativeTerminatorSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAnnotativeObjectDispT<T>::set_Sign1(ksAnnotativeTerminatorSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign1"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IAnnotativeObjectDispT<T>::get_Sign2(ksAnnotativeTerminatorSignEnum* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign2"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Result /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAnnotativeTerminatorSignEnum __fastcall
IAnnotativeObjectDispT<T>::get_Sign2(void)
{
  ksAnnotativeTerminatorSignEnum Result;
  this->get_Sign2((ksAnnotativeTerminatorSignEnum*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAnnotativeObjectDispT<T>::set_Sign2(ksAnnotativeTerminatorSignEnum Result/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Sign2"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = (int)Result /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IAnnotativeContainer
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AE6C238C-4398-4057-9D28-D275954D9506}
// *********************************************************************//
template <class T> HRESULT __fastcall
IAnnotativeContainerDispT<T>::get_Item(TVariantInParam Index/*[in]*/, 
                                       Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = Index /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAnnotativeObject**)Result /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall
IAnnotativeContainerDispT<T>::get_Item(TVariantInParam Index/*[in]*/)
{
  Kompasltapi7_tlb::IAnnotativeObjectPtr Result;
  this->get_Item(Index, (Kompasltapi7_tlb::IAnnotativeObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAnnotativeContainerDispT<T>::get_Count(long* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(7001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IAnnotativeContainerDispT<T>::get_Count(void)
{
  long Result;
  this->get_Count((long*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAnnotativeContainerDispT<T>::Add(DrawingObjectTypeEnum Type, 
                                  Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(7002));
  TAutoArgs<1> _args;
  _args[1] = (int)Type /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAnnotativeObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall
IAnnotativeContainerDispT<T>::Add(DrawingObjectTypeEnum Type)
{
  Kompasltapi7_tlb::IAnnotativeObjectPtr Result;
  this->Add(Type, (Kompasltapi7_tlb::IAnnotativeObjectPtr*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IAnnotativeContainerDispT<T>::CreateByGeomObject(Kompasltapi7_tlb::IDrawingObjectPtr Obj/*[in]*/, 
                                                 Kompasltapi7_tlb::IAnnotativeObjectPtr* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CreateByGeomObject"), DISPID(7003));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Obj /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IAnnotativeObject**)Result /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IAnnotativeObjectPtr __fastcall
IAnnotativeContainerDispT<T>::CreateByGeomObject(Kompasltapi7_tlb::IDrawingObjectPtr Obj/*[in]*/)
{
  Kompasltapi7_tlb::IAnnotativeObjectPtr Result;
  this->CreateByGeomObject(Obj, (Kompasltapi7_tlb::IAnnotativeObjectPtr*)&Result);
  return Result;
}

// *********************************************************************//
// SmartIntf: TCOMICurveCopyObjectParam
// Interface: ICurveCopyObjectParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::set_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/)
{
  return (*this)->set_BaseCurve(Curve);
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::get_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr* Curve/*[out,retval]*/)
{
  return (*this)->get_BaseCurve(Curve);
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
TCOMICurveCopyObjectParamT<T>::get_BaseCurve(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Curve;
  OLECHECK(this->get_BaseCurve((Kompasltapi7_tlb::IDrawingObjectPtr*)&Curve));
  return Curve;
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::set_Step(double PVal/*[in]*/)
{
  return (*this)->set_Step(PVal);
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step(PVal);
}

template <class T> double __fastcall
TCOMICurveCopyObjectParamT<T>::get_Step(void)
{
  double PVal;
  OLECHECK(this->get_Step((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::set_Count(long PVal/*[in]*/)
{
  return (*this)->set_Count(PVal);
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Count(PVal);
}

template <class T> long __fastcall
TCOMICurveCopyObjectParamT<T>::get_Count(void)
{
  long PVal;
  OLECHECK(this->get_Count((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::set_TurnToNormal(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_TurnToNormal(PVal);
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::get_TurnToNormal(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_TurnToNormal(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveCopyObjectParamT<T>::get_TurnToNormal(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_TurnToNormal((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::set_PositiveDirection(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_PositiveDirection(PVal);
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_PositiveDirection(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveCopyObjectParamT<T>::get_PositiveDirection(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_PositiveDirection((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::set_StepFactor(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_StepFactor(PVal);
}

template <class T> HRESULT __fastcall
TCOMICurveCopyObjectParamT<T>::get_StepFactor(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_StepFactor(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICurveCopyObjectParamT<T>::get_StepFactor(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_StepFactor((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICurveCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {12B52A99-FF5F-4C08-9E5E-DF7C7AD834A8}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr Curve/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseCurve"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDrawingObject*)Curve /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_BaseCurve(Kompasltapi7_tlb::IDrawingObjectPtr* Curve/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("BaseCurve"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IDrawingObject**)Curve /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IDrawingObjectPtr __fastcall
ICurveCopyObjectParamDispT<T>::get_BaseCurve(void)
{
  Kompasltapi7_tlb::IDrawingObjectPtr Curve;
  this->get_BaseCurve((Kompasltapi7_tlb::IDrawingObjectPtr*)&Curve);
  return Curve;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_Step(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurveCopyObjectParamDispT<T>::get_Step(void)
{
  double PVal;
  this->get_Step((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_Count(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICurveCopyObjectParamDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_TurnToNormal(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TurnToNormal"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_TurnToNormal(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TurnToNormal"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveCopyObjectParamDispT<T>::get_TurnToNormal(void)
{
  TOLEBOOL PVal;
  this->get_TurnToNormal((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_PositiveDirection(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositiveDirection"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositiveDirection"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveCopyObjectParamDispT<T>::get_PositiveDirection(void)
{
  TOLEBOOL PVal;
  this->get_PositiveDirection((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_StepFactor(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_StepFactor(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveCopyObjectParamDispT<T>::get_StepFactor(void)
{
  TOLEBOOL PVal;
  this->get_StepFactor((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_XOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_XOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurveCopyObjectParamDispT<T>::get_XOld(void)
{
  double PVal;
  this->get_XOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_YOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_YOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurveCopyObjectParamDispT<T>::get_YOld(void)
{
  double PVal;
  this->get_YOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_XNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_XNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurveCopyObjectParamDispT<T>::get_XNew(void)
{
  double PVal;
  this->get_XNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_YNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_YNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurveCopyObjectParamDispT<T>::get_YNew(void)
{
  double PVal;
  this->get_YNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurveCopyObjectParamDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICurveCopyObjectParamDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_AttributeCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveCopyObjectParamDispT<T>::get_AttributeCopy(void)
{
  TOLEBOOL PVal;
  this->get_AttributeCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveCopyObjectParamDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICurveCopyObjectParamDispT<T>::get_SpecificationObjectCopy(void)
{
  TOLEBOOL PVal;
  this->get_SpecificationObjectCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICurveCopyObjectParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICurveCopyObjectParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICurveCopyObjectParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICurveCopyObjectParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICurveCopyObjectParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICircleCopyObjectParam
// Interface: ICircleCopyObjectParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::set_Xc(double Val/*[in]*/)
{
  return (*this)->set_Xc(Val);
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::get_Xc(double* Val/*[out,retval]*/)
{
  return (*this)->get_Xc(Val);
}

template <class T> double __fastcall
TCOMICircleCopyObjectParamT<T>::get_Xc(void)
{
  double Val;
  OLECHECK(this->get_Xc((double*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::set_Yc(double Val/*[in]*/)
{
  return (*this)->set_Yc(Val);
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::get_Yc(double* Val/*[out,retval]*/)
{
  return (*this)->get_Yc(Val);
}

template <class T> double __fastcall
TCOMICircleCopyObjectParamT<T>::get_Yc(void)
{
  double Val;
  OLECHECK(this->get_Yc((double*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::set_Step(double PVal/*[in]*/)
{
  return (*this)->set_Step(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step(PVal);
}

template <class T> double __fastcall
TCOMICircleCopyObjectParamT<T>::get_Step(void)
{
  double PVal;
  OLECHECK(this->get_Step((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::set_Count(long PVal/*[in]*/)
{
  return (*this)->set_Count(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Count(PVal);
}

template <class T> long __fastcall
TCOMICircleCopyObjectParamT<T>::get_Count(void)
{
  long PVal;
  OLECHECK(this->get_Count((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::set_ByStep(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_ByStep(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::get_ByStep(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_ByStep(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICircleCopyObjectParamT<T>::get_ByStep(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_ByStep((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::set_PositiveDirection(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_PositiveDirection(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircleCopyObjectParamT<T>::get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_PositiveDirection(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICircleCopyObjectParamT<T>::get_PositiveDirection(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_PositiveDirection((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICircleCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {138D1202-CA46-4DB3-BF2B-85D260E44355}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_Xc(double Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Xc(double* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Xc"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_Xc(void)
{
  double Val;
  this->get_Xc((double*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_Yc(double Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Yc(double* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Yc"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_Yc(void)
{
  double Val;
  this->get_Yc((double*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_Step(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Step(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_Step(void)
{
  double PVal;
  this->get_Step((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_Count(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Count(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircleCopyObjectParamDispT<T>::get_Count(void)
{
  long PVal;
  this->get_Count((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_ByStep(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ByStep"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_ByStep(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ByStep"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleCopyObjectParamDispT<T>::get_ByStep(void)
{
  TOLEBOOL PVal;
  this->get_ByStep((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_PositiveDirection(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositiveDirection"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_PositiveDirection(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("PositiveDirection"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleCopyObjectParamDispT<T>::get_PositiveDirection(void)
{
  TOLEBOOL PVal;
  this->get_PositiveDirection((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_XOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_XOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_XOld(void)
{
  double PVal;
  this->get_XOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_YOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_YOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_YOld(void)
{
  double PVal;
  this->get_YOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_XNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_XNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_XNew(void)
{
  double PVal;
  this->get_XNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_YNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_YNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_YNew(void)
{
  double PVal;
  this->get_YNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircleCopyObjectParamDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_AttributeCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleCopyObjectParamDispT<T>::get_AttributeCopy(void)
{
  TOLEBOOL PVal;
  this->get_AttributeCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleCopyObjectParamDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircleCopyObjectParamDispT<T>::get_SpecificationObjectCopy(void)
{
  TOLEBOOL PVal;
  this->get_SpecificationObjectCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICircleCopyObjectParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICircleCopyObjectParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICircleCopyObjectParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircleCopyObjectParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircleCopyObjectParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIExternalTessellationObject
// Interface: IExternalTessellationObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::get_ObjectID(long* PVal/*[out,retval]*/)
{
  return (*this)->get_ObjectID(PVal);
}

template <class T> long __fastcall
TCOMIExternalTessellationObjectT<T>::get_ObjectID(void)
{
  long PVal;
  OLECHECK(this->get_ObjectID((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetTessellation(TVariantInParam Points/*[in]*/, 
                                                     TVariantInParam Indexes/*[in]*/, 
                                                     TVariantInParam Normals/*[in]*/, 
                                                     TVariantInParam Colors/*[in]*/, 
                                                     TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetTessellation(Points, Indexes, Normals, Colors, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetTessellation(TVariantInParam Points/*[in]*/, 
                                                     TVariantInParam Indexes/*[in]*/, 
                                                     TVariantInParam Normals/*[in]*/, 
                                                     TVariantInParam Colors/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetTessellation(Points, Indexes, Normals, Colors, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                                 TOLEBOOL Param2/*[in,def,opt]*/)
{
  return (*this)->set_Visible(Frame, Param2);
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::Delete(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Delete(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::Delete(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Delete((TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                                      double Diffuse/*[in]*/, 
                                                      double Specularity/*[in]*/, 
                                                      double Shininess/*[in]*/, 
                                                      double Transparency/*[in]*/, 
                                                      double Emission/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->SetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, 
                                   Emission, Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                                      double Diffuse/*[in]*/, 
                                                      double Specularity/*[in]*/, 
                                                      double Shininess/*[in]*/, 
                                                      double Transparency/*[in]*/, 
                                                      double Emission/*[in]*/)
{
  TOLEBOOL Result;
  OLECHECK(this->SetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, 
                                  Emission, (TOLEBOOL*)&Result));
  return Result;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetEdges(TVariantInParam Points/*[in]*/, 
                                              TVariantInParam Edges/*[in]*/, 
                                              TVariantInParam Colors/*[in]*/, 
                                              TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetEdges(Points, Edges, Colors, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetEdges(TVariantInParam Points/*[in]*/, 
                                              TVariantInParam Edges/*[in]*/, 
                                              TVariantInParam Colors/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetEdges(Points, Edges, Colors, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetPlaces(TVariantInParam Places/*[in]*/, 
                                               TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetPlaces(Places, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetPlaces(TVariantInParam Places/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetPlaces(Places, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetEdgeStyles(TVariantInParam Styles/*[in]*/, 
                                                   TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetEdgeStyles(Styles, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetEdgeStyles(TVariantInParam Styles/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetEdgeStyles(Styles, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetEdgeWidths(TVariantInParam Widths/*[in]*/, 
                                                   TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetEdgeWidths(Widths, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetEdgeWidths(TVariantInParam Widths/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetEdgeWidths(Widths, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                                     TOLEBOOL RGBA/*[in]*/, 
                                                     TOLEBOOL WrapMode/*[in]*/, 
                                                     TOLEBOOL FiltMode/*[in]*/, 
                                                     TVariantInParam ImageData/*[in]*/, 
                                                     TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetTextureImage(Width, Heigh, RGBA, WrapMode, FiltMode, ImageData, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                                     TOLEBOOL RGBA/*[in]*/, 
                                                     TOLEBOOL WrapMode/*[in]*/, 
                                                     TOLEBOOL FiltMode/*[in]*/, 
                                                     TVariantInParam ImageData/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetTextureImage(Width, Heigh, RGBA, WrapMode, FiltMode, ImageData, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                                      TVariantInParam ImagePoints/*[in]*/, 
                                                      TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetTexturePoints(Image2D, ImagePoints, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                                      TVariantInParam ImagePoints/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetTexturePoints(Image2D, ImagePoints, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalTessellationObjectT<T>::SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                                  ksFacetCullingMode CullingMode/*[in]*/, 
                                                  TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetFacetMode(SideMode, CullingMode, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalTessellationObjectT<T>::SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                                  ksFacetCullingMode CullingMode/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetFacetMode(SideMode, CullingMode, (TOLEBOOL*)&Res));
  return Res;
}

// *********************************************************************//
// DispIntf:  IExternalTessellationObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {9D5CDE37-7833-4359-B25A-FE7011EA771A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::get_ObjectID(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectID"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IExternalTessellationObjectDispT<T>::get_ObjectID(void)
{
  long PVal;
  this->get_ObjectID((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetTessellation(TVariantInParam Points/*[in]*/, 
                                                     TVariantInParam Indexes/*[in]*/, 
                                                     TVariantInParam Normals/*[in]*/, 
                                                     TVariantInParam Colors/*[in]*/, 
                                                     TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetTessellation"), DISPID(2));
  TAutoArgs<4> _args;
  _args[1] = Points /*[VT_VARIANT:0]*/;
  _args[2] = Indexes /*[VT_VARIANT:0]*/;
  _args[3] = Normals /*[VT_VARIANT:0]*/;
  _args[4] = Colors /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetTessellation(TVariantInParam Points/*[in]*/, 
                                                     TVariantInParam Indexes/*[in]*/, 
                                                     TVariantInParam Normals/*[in]*/, 
                                                     TVariantInParam Colors/*[in]*/)
{
  TOLEBOOL Res;
  this->SetTessellation(Points, Indexes, Normals, Colors, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                                 TOLEBOOL Param2/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDocumentFrame*)Frame /*[VT_USERDEFINED:1]*/;
  _args[2] = Param2 /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::Delete(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::Delete(void)
{
  TOLEBOOL Result;
  this->Delete((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                                      double Diffuse/*[in]*/, 
                                                      double Specularity/*[in]*/, 
                                                      double Shininess/*[in]*/, 
                                                      double Transparency/*[in]*/, 
                                                      double Emission/*[in]*/, 
                                                      TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetAdvancedColor"), DISPID(5));
  TAutoArgs<7> _args;
  _args[1] = Color /*[VT_I4:0]*/;
  _args[2] = Ambient /*[VT_R8:0]*/;
  _args[3] = Diffuse /*[VT_R8:0]*/;
  _args[4] = Specularity /*[VT_R8:0]*/;
  _args[5] = Shininess /*[VT_R8:0]*/;
  _args[6] = Transparency /*[VT_R8:0]*/;
  _args[7] = Emission /*[VT_R8:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetAdvancedColor(long Color/*[in]*/, double Ambient/*[in]*/, 
                                                      double Diffuse/*[in]*/, 
                                                      double Specularity/*[in]*/, 
                                                      double Shininess/*[in]*/, 
                                                      double Transparency/*[in]*/, 
                                                      double Emission/*[in]*/)
{
  TOLEBOOL Result;
  this->SetAdvancedColor(Color, Ambient, Diffuse, Specularity, Shininess, Transparency, Emission, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetEdges(TVariantInParam Points/*[in]*/, 
                                              TVariantInParam Edges/*[in]*/, 
                                              TVariantInParam Colors/*[in]*/, 
                                              TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetEdges"), DISPID(6));
  TAutoArgs<3> _args;
  _args[1] = Points /*[VT_VARIANT:0]*/;
  _args[2] = Edges /*[VT_VARIANT:0]*/;
  _args[3] = Colors /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetEdges(TVariantInParam Points/*[in]*/, 
                                              TVariantInParam Edges/*[in]*/, 
                                              TVariantInParam Colors/*[in]*/)
{
  TOLEBOOL Res;
  this->SetEdges(Points, Edges, Colors, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetPlaces(TVariantInParam Places/*[in]*/, 
                                               TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetPlaces"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = Places /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetPlaces(TVariantInParam Places/*[in]*/)
{
  TOLEBOOL Res;
  this->SetPlaces(Places, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetEdgeStyles(TVariantInParam Styles/*[in]*/, 
                                                   TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetEdgeStyles"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = Styles /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetEdgeStyles(TVariantInParam Styles/*[in]*/)
{
  TOLEBOOL Res;
  this->SetEdgeStyles(Styles, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetEdgeWidths(TVariantInParam Widths/*[in]*/, 
                                                   TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetEdgeWidths"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = Widths /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetEdgeWidths(TVariantInParam Widths/*[in]*/)
{
  TOLEBOOL Res;
  this->SetEdgeWidths(Widths, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                                     TOLEBOOL RGBA/*[in]*/, 
                                                     TOLEBOOL WrapMode/*[in]*/, 
                                                     TOLEBOOL FiltMode/*[in]*/, 
                                                     TVariantInParam ImageData/*[in]*/, 
                                                     TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetTextureImage"), DISPID(10));
  TAutoArgs<6> _args;
  _args[1] = Width /*[VT_I4:0]*/;
  _args[2] = Heigh /*[VT_I4:0]*/;
  _args[3] = RGBA /*[VT_BOOL:0]*/;
  _args[4] = WrapMode /*[VT_BOOL:0]*/;
  _args[5] = FiltMode /*[VT_BOOL:0]*/;
  _args[6] = ImageData /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetTextureImage(long Width/*[in]*/, long Heigh/*[in]*/, 
                                                     TOLEBOOL RGBA/*[in]*/, 
                                                     TOLEBOOL WrapMode/*[in]*/, 
                                                     TOLEBOOL FiltMode/*[in]*/, 
                                                     TVariantInParam ImageData/*[in]*/)
{
  TOLEBOOL Res;
  this->SetTextureImage(Width, Heigh, RGBA, WrapMode, FiltMode, ImageData, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                                      TVariantInParam ImagePoints/*[in]*/, 
                                                      TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetTexturePoints"), DISPID(11));
  TAutoArgs<2> _args;
  _args[1] = Image2D /*[VT_BOOL:0]*/;
  _args[2] = ImagePoints /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetTexturePoints(TOLEBOOL Image2D/*[in]*/, 
                                                      TVariantInParam ImagePoints/*[in]*/)
{
  TOLEBOOL Res;
  this->SetTexturePoints(Image2D, ImagePoints, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                                  ksFacetCullingMode CullingMode/*[in]*/
                                                  , TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetFacetMode"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = SideMode /*[VT_BOOL:0]*/;
  _args[2] = (int)CullingMode /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationObjectDispT<T>::SetFacetMode(TOLEBOOL SideMode/*[in]*/, 
                                                  ksFacetCullingMode CullingMode/*[in]*/)
{
  TOLEBOOL Res;
  this->SetFacetMode(SideMode, CullingMode, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IExternalTessellationObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IExternalTessellationObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IExternalTessellationObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IExternalTessellationObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IExternalTessellationObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IExternalTessellationManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {DC21F3D3-FFA6-4274-A976-79F34729B866}
// *********************************************************************//
template <class T> HRESULT __fastcall
IExternalTessellationManagerDispT<T>::Add(Kompasltapi7_tlb::IExternalTessellationObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(7501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IExternalTessellationObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IExternalTessellationObjectPtr __fastcall
IExternalTessellationManagerDispT<T>::Add(void)
{
  Kompasltapi7_tlb::IExternalTessellationObjectPtr PVal;
  this->Add((Kompasltapi7_tlb::IExternalTessellationObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalTessellationManagerDispT<T>::get_TessellationObject(long Id/*[in]*/, 
                                                             Kompasltapi7_tlb::IExternalTessellationObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TessellationObject"), DISPID(7502));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IExternalTessellationObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IExternalTessellationObjectPtr __fastcall
IExternalTessellationManagerDispT<T>::get_TessellationObject(long Id/*[in]*/)
{
  Kompasltapi7_tlb::IExternalTessellationObjectPtr PVal;
  this->get_TessellationObject(Id, (Kompasltapi7_tlb::IExternalTessellationObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalTessellationManagerDispT<T>::set_ObjectsVisible(TVariantInParam Ids/*[in]*/, 
                                                         Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/
                                                         , TOLEBOOL Param3/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectsVisible"), DISPID(7503));
  TAutoArgs<3> _args;
  _args[1] = Ids /*[VT_VARIANT:0]*/;
  _args[2] = (LPDISPATCH)(Kompasltapi7_tlb::IDocumentFrame*)Frame /*[VT_USERDEFINED:1]*/;
  _args[3] = Param3 /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExternalTessellationManagerDispT<T>::DeleteObjects(TVariantInParam Id/*[in]*/, 
                                                    TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DeleteObjects"), DISPID(7504));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationManagerDispT<T>::DeleteObjects(TVariantInParam Id/*[in]*/)
{
  TOLEBOOL Result;
  this->DeleteObjects(Id, (TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExternalTessellationManagerDispT<T>::Clear(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Clear"), DISPID(7505));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalTessellationManagerDispT<T>::Clear(void)
{
  TOLEBOOL Result;
  this->Clear((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExternalTessellationManagerDispT<T>::AddGDIObject(Kompasltapi7_tlb::IExternalGDIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AddGDIObject"), DISPID(7506));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IExternalGDIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IExternalGDIObjectPtr __fastcall
IExternalTessellationManagerDispT<T>::AddGDIObject(void)
{
  Kompasltapi7_tlb::IExternalGDIObjectPtr PVal;
  this->AddGDIObject((Kompasltapi7_tlb::IExternalGDIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalTessellationManagerDispT<T>::get_GDIObject(long Id/*[in]*/, 
                                                    Kompasltapi7_tlb::IExternalGDIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("GDIObject"), DISPID(7507));
  TAutoArgs<1> _args;
  _args[1] = Id /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IExternalGDIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IExternalGDIObjectPtr __fastcall
IExternalTessellationManagerDispT<T>::get_GDIObject(long Id/*[in]*/)
{
  Kompasltapi7_tlb::IExternalGDIObjectPtr PVal;
  this->get_GDIObject(Id, (Kompasltapi7_tlb::IExternalGDIObjectPtr*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIExternalGDIObject
// Interface: IExternalGDIObject
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIExternalGDIObjectT<T>::get_ObjectID(long* PVal/*[out,retval]*/)
{
  return (*this)->get_ObjectID(PVal);
}

template <class T> long __fastcall
TCOMIExternalGDIObjectT<T>::get_ObjectID(void)
{
  long PVal;
  OLECHECK(this->get_ObjectID((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIExternalGDIObjectT<T>::SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                                     TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                                     TOLEBOOL Is3DPoints/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  return (*this)->SetTexts(Points, Texts, Colors, Fonts, Is3DPoints, Res);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalGDIObjectT<T>::SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                                     TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                                     TOLEBOOL Is3DPoints/*[in]*/)
{
  TOLEBOOL Res;
  OLECHECK(this->SetTexts(Points, Texts, Colors, Fonts, Is3DPoints, (TOLEBOOL*)&Res));
  return Res;
}

template <class T> HRESULT __fastcall
TCOMIExternalGDIObjectT<T>::set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                        TOLEBOOL Param2/*[in,def,opt]*/)
{
  return (*this)->set_Visible(Frame, Param2);
}

template <class T> HRESULT __fastcall
TCOMIExternalGDIObjectT<T>::Delete(TOLEBOOL* Result/*[out,retval]*/)
{
  return (*this)->Delete(Result);
}

template <class T> TOLEBOOL __fastcall
TCOMIExternalGDIObjectT<T>::Delete(void)
{
  TOLEBOOL Result;
  OLECHECK(this->Delete((TOLEBOOL*)&Result));
  return Result;
}

// *********************************************************************//
// DispIntf:  IExternalGDIObject
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C234E81D-4232-41FD-980D-8E7E6EA7B733}
// *********************************************************************//
template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::get_ObjectID(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ObjectID"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IExternalGDIObjectDispT<T>::get_ObjectID(void)
{
  long PVal;
  this->get_ObjectID((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                                     TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                                     TOLEBOOL Is3DPoints/*[in]*/, TOLEBOOL* Res/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SetTexts"), DISPID(2));
  TAutoArgs<5> _args;
  _args[1] = Points /*[VT_VARIANT:0]*/;
  _args[2] = Texts /*[VT_VARIANT:0]*/;
  _args[3] = Colors /*[VT_VARIANT:0]*/;
  _args[4] = Fonts /*[VT_VARIANT:0]*/;
  _args[5] = Is3DPoints /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr(Res /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalGDIObjectDispT<T>::SetTexts(TVariantInParam Points/*[in]*/, TVariantInParam Texts/*[in]*/, 
                                     TVariantInParam Colors/*[in]*/, TVariantInParam Fonts/*[in]*/, 
                                     TOLEBOOL Is3DPoints/*[in]*/)
{
  TOLEBOOL Res;
  this->SetTexts(Points, Texts, Colors, Fonts, Is3DPoints, (TOLEBOOL*)&Res);
  return Res;
}

template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::set_Visible(Kompasltapi7_tlb::IDocumentFramePtr Frame/*[in]*/, 
                                        TOLEBOOL Param2/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(3));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Kompasltapi7_tlb::IDocumentFrame*)Frame /*[VT_USERDEFINED:1]*/;
  _args[2] = Param2 /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::Delete(TOLEBOOL* Result/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Delete"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Result /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IExternalGDIObjectDispT<T>::Delete(void)
{
  TOLEBOOL Result;
  this->Delete((TOLEBOOL*)&Result);
  return Result;
}

template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IExternalGDIObjectDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IExternalGDIObjectDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IExternalGDIObjectDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IExternalGDIObjectDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IExternalGDIObjectDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// DispIntf:  IModelCurve3D
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {EB4AB3A9-8E01-4952-9119-F8D09D9572D5}
// *********************************************************************//
template <class T> HRESULT __fastcall
IModelCurve3DDispT<T>::get_VertexVisible(TOLEBOOL* Value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexVisible"), DISPID(1501));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Value /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IModelCurve3DDispT<T>::get_VertexVisible(void)
{
  TOLEBOOL Value;
  this->get_VertexVisible((TOLEBOOL*)&Value);
  return Value;
}

template <class T> HRESULT __fastcall
IModelCurve3DDispT<T>::set_VertexVisible(TOLEBOOL Value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexVisible"), DISPID(1501));
  TAutoArgs<1> _args;
  _args[1] = Value /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IModelCurve3DDispT<T>::get_VertexStyle(ksAnnotationSymbolEnum* Style/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexStyle"), DISPID(1502));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Style /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksAnnotationSymbolEnum __fastcall
IModelCurve3DDispT<T>::get_VertexStyle(void)
{
  ksAnnotationSymbolEnum Style;
  this->get_VertexStyle((ksAnnotationSymbolEnum*)&Style);
  return Style;
}

template <class T> HRESULT __fastcall
IModelCurve3DDispT<T>::set_VertexStyle(ksAnnotationSymbolEnum Style/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("VertexStyle"), DISPID(1502));
  TAutoArgs<1> _args;
  _args[1] = (int)Style /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IModelCurve3DDispT<T>::get_EdgesStyle(ksCurveStyleEnum* Style/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("EdgesStyle"), DISPID(1503));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Style /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ksCurveStyleEnum __fastcall
IModelCurve3DDispT<T>::get_EdgesStyle(void)
{
  ksCurveStyleEnum Style;
  this->get_EdgesStyle((ksCurveStyleEnum*)&Style);
  return Style;
}

template <class T> HRESULT __fastcall
IModelCurve3DDispT<T>::set_EdgesStyle(ksCurveStyleEnum Style/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("EdgesStyle"), DISPID(1503));
  TAutoArgs<1> _args;
  _args[1] = (int)Style /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIPropertyStyleList
// Interface: IPropertyStyleList
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::Add(TVariantInParam Styles/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->Add(Styles, PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyStyleListT<T>::Add(TVariantInParam Styles/*[in]*/)
{
  TOLEBOOL PRes;
  OLECHECK(this->Add(Styles, (TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::get_Count(long* Count/*[out,retval]*/)
{
  return (*this)->get_Count(Count);
}

template <class T> long __fastcall
TCOMIPropertyStyleListT<T>::get_Count(void)
{
  long Count;
  OLECHECK(this->get_Count((long*)&Count));
  return Count;
}

template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::ClearList(TOLEBOOL* PRes/*[out,retval]*/)
{
  return (*this)->ClearList(PRes);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyStyleListT<T>::ClearList(void)
{
  TOLEBOOL PRes;
  OLECHECK(this->ClearList((TOLEBOOL*)&PRes));
  return PRes;
}

template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::Find(long Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  return (*this)->Find(Val, PVal);
}

template <class T> long __fastcall
TCOMIPropertyStyleListT<T>::Find(long Val/*[in]*/)
{
  long PVal;
  OLECHECK(this->Find(Val, (long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::set_CurrentIndex(long PVal/*[in]*/)
{
  return (*this)->set_CurrentIndex(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::get_CurrentIndex(long* PVal/*[out,retval]*/)
{
  return (*this)->get_CurrentIndex(PVal);
}

template <class T> long __fastcall
TCOMIPropertyStyleListT<T>::get_CurrentIndex(void)
{
  long PVal;
  OLECHECK(this->get_CurrentIndex((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::set_AnotherStyleBtnEnable(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_AnotherStyleBtnEnable(PVal);
}

template <class T> HRESULT __fastcall
TCOMIPropertyStyleListT<T>::get_AnotherStyleBtnEnable(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_AnotherStyleBtnEnable(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIPropertyStyleListT<T>::get_AnotherStyleBtnEnable(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_AnotherStyleBtnEnable((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IPropertyStyleList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {B2431C46-9A35-494B-A958-D9098F82C3FA}
// *********************************************************************//
template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::Add(TVariantInParam Styles/*[in]*/, TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Add"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = Styles /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyStyleListDispT<T>::Add(TVariantInParam Styles/*[in]*/)
{
  TOLEBOOL PRes;
  this->Add(Styles, (TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Count(long* Count/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count"), DISPID(102));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Count /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyStyleListDispT<T>::get_Count(void)
{
  long Count;
  this->get_Count((long*)&Count);
  return Count;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::ClearList(TOLEBOOL* PRes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ClearList"), DISPID(103));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PRes /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyStyleListDispT<T>::ClearList(void)
{
  TOLEBOOL PRes;
  this->ClearList((TOLEBOOL*)&PRes);
  return PRes;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::Find(long Val/*[in]*/, long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Find"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IPropertyStyleListDispT<T>::Find(long Val/*[in]*/)
{
  long PVal;
  this->Find(Val, (long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_CurrentIndex(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentIndex"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_CurrentIndex(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("CurrentIndex"), DISPID(105));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyStyleListDispT<T>::get_CurrentIndex(void)
{
  long PVal;
  this->get_CurrentIndex((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_AnotherStyleBtnEnable(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AnotherStyleBtnEnable"), DISPID(106));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_AnotherStyleBtnEnable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AnotherStyleBtnEnable"), DISPID(106));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyStyleListDispT<T>::get_AnotherStyleBtnEnable(void)
{
  TOLEBOOL PVal;
  this->get_AnotherStyleBtnEnable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_Visible(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Visible(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Visible"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyStyleListDispT<T>::get_Visible(void)
{
  TOLEBOOL PVal;
  this->get_Visible((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_Name(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Name(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Name"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyStyleListDispT<T>::get_Name(void)
{
  BSTR PVal;
  this->get_Name((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_ControlType(ControlTypeEnum* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ControlType"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> ControlTypeEnum __fastcall
IPropertyStyleListDispT<T>::get_ControlType(void)
{
  ControlTypeEnum PVal;
  this->get_ControlType((ControlTypeEnum*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_Id(long PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Id(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Id"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyStyleListDispT<T>::get_Id(void)
{
  long PVal;
  this->get_Id((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_Enable(TOLEBOOL PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Enable(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Enable"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IPropertyStyleListDispT<T>::get_Enable(void)
{
  TOLEBOOL PVal;
  this->get_Enable((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_Value(TVariantInParam PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Value(TVariant* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Value"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IPropertyStyleListDispT<T>::get_Value(void)
{
  TVariant PVal;
  this->get_Value((TVariant*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_NameVisibility(PropertyControlNameVisibility PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = (int)PVal /*[VT_USERDEFINED:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_NameVisibility(PropertyControlNameVisibility* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("NameVisibility"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)PVal /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> PropertyControlNameVisibility __fastcall
IPropertyStyleListDispT<T>::get_NameVisibility(void)
{
  PropertyControlNameVisibility PVal;
  this->get_NameVisibility((PropertyControlNameVisibility*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_Hint(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Hint(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Hint"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyStyleListDispT<T>::get_Hint(void)
{
  BSTR PVal;
  this->get_Hint((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::set_Tips(BSTR PVal/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Tips(BSTR* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Tips"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IPropertyStyleListDispT<T>::get_Tips(void)
{
  BSTR PVal;
  this->get_Tips((BSTR*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IPropertyStyleListDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IPropertyStyleListDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IPropertyStyleListDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IPropertyStyleListDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IPropertyStyleListDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMICircularCopyObjectParam
// Interface: ICircularCopyObjectParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_Radius(double Val/*[in]*/)
{
  return (*this)->set_Radius(Val);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_Radius(double* Val/*[out,retval]*/)
{
  return (*this)->get_Radius(Val);
}

template <class T> double __fastcall
TCOMICircularCopyObjectParamT<T>::get_Radius(void)
{
  double Val;
  OLECHECK(this->get_Radius((double*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_Step1(double PVal/*[in]*/)
{
  return (*this)->set_Step1(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_Step1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step1(PVal);
}

template <class T> double __fastcall
TCOMICircularCopyObjectParamT<T>::get_Step1(void)
{
  double PVal;
  OLECHECK(this->get_Step1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_StepFactor1(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_StepFactor1(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_StepFactor1(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICircularCopyObjectParamT<T>::get_StepFactor1(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_StepFactor1((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_Count1(long Val/*[in]*/)
{
  return (*this)->set_Count1(Val);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_Count1(long* Val/*[out,retval]*/)
{
  return (*this)->get_Count1(Val);
}

template <class T> long __fastcall
TCOMICircularCopyObjectParamT<T>::get_Count1(void)
{
  long Val;
  OLECHECK(this->get_Count1((long*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_Angle2(double PVal/*[in]*/)
{
  return (*this)->set_Angle2(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle2(PVal);
}

template <class T> double __fastcall
TCOMICircularCopyObjectParamT<T>::get_Angle2(void)
{
  double PVal;
  OLECHECK(this->get_Angle2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_Step2(double PVal/*[in]*/)
{
  return (*this)->set_Step2(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_Step2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step2(PVal);
}

template <class T> double __fastcall
TCOMICircularCopyObjectParamT<T>::get_Step2(void)
{
  double PVal;
  OLECHECK(this->get_Step2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_StepFactor2(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_StepFactor2(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_StepFactor2(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICircularCopyObjectParamT<T>::get_StepFactor2(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_StepFactor2((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_Count2(long PVal/*[in]*/)
{
  return (*this)->set_Count2(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_Count2(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Count2(PVal);
}

template <class T> long __fastcall
TCOMICircularCopyObjectParamT<T>::get_Count2(void)
{
  long PVal;
  OLECHECK(this->get_Count2((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SaveCentreCopy(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SaveCentreCopy(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICircularCopyObjectParamT<T>::get_SaveCentreCopy(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SaveCentreCopy((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::set_TurnObject(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_TurnObject(PVal);
}

template <class T> HRESULT __fastcall
TCOMICircularCopyObjectParamT<T>::get_TurnObject(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_TurnObject(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMICircularCopyObjectParamT<T>::get_TurnObject(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_TurnObject((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  ICircularCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {A5B8E337-EE84-4EEC-8235-A812FDD6C2DE}
// *********************************************************************//
template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Radius(double Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Radius(double* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Radius"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_Radius(void)
{
  double Val;
  this->get_Radius((double*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Step1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step1"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Step1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step1"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_Step1(void)
{
  double PVal;
  this->get_Step1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_StepFactor1(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor1"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor1"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircularCopyObjectParamDispT<T>::get_StepFactor1(void)
{
  TOLEBOOL PVal;
  this->get_StepFactor1((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Count1(long Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count1"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Count1(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count1"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircularCopyObjectParamDispT<T>::get_Count1(void)
{
  long Val;
  this->get_Count1((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Step2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step2"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Step2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step2"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_Step2(void)
{
  double PVal;
  this->get_Step2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_StepFactor2(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor2"), DISPID(2007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor2"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircularCopyObjectParamDispT<T>::get_StepFactor2(void)
{
  TOLEBOOL PVal;
  this->get_StepFactor2((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Count2(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count2"), DISPID(2008));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Count2(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count2"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircularCopyObjectParamDispT<T>::get_Count2(void)
{
  long PVal;
  this->get_Count2((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveCentreCopy"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveCentreCopy"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircularCopyObjectParamDispT<T>::get_SaveCentreCopy(void)
{
  TOLEBOOL PVal;
  this->get_SaveCentreCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_TurnObject(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("TurnObject"), DISPID(2010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_TurnObject(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("TurnObject"), DISPID(2010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircularCopyObjectParamDispT<T>::get_TurnObject(void)
{
  TOLEBOOL PVal;
  this->get_TurnObject((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_XOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_XOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_XOld(void)
{
  double PVal;
  this->get_XOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_YOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_YOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_YOld(void)
{
  double PVal;
  this->get_YOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_XNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_XNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_XNew(void)
{
  double PVal;
  this->get_XNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_YNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_YNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_YNew(void)
{
  double PVal;
  this->get_YNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
ICircularCopyObjectParamDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_AttributeCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircularCopyObjectParamDispT<T>::get_AttributeCopy(void)
{
  TOLEBOOL PVal;
  this->get_AttributeCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircularCopyObjectParamDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ICircularCopyObjectParamDispT<T>::get_SpecificationObjectCopy(void)
{
  TOLEBOOL PVal;
  this->get_SpecificationObjectCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
ICircularCopyObjectParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
ICircularCopyObjectParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
ICircularCopyObjectParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
ICircularCopyObjectParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ICircularCopyObjectParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// SmartIntf: TCOMIMeshCopyObjectParam
// Interface: IMeshCopyObjectParam
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_Angle1(double Val/*[in]*/)
{
  return (*this)->set_Angle1(Val);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Angle1(double* Val/*[out,retval]*/)
{
  return (*this)->get_Angle1(Val);
}

template <class T> double __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Angle1(void)
{
  double Val;
  OLECHECK(this->get_Angle1((double*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_Step1(double PVal/*[in]*/)
{
  return (*this)->set_Step1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Step1(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step1(PVal);
}

template <class T> double __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Step1(void)
{
  double PVal;
  OLECHECK(this->get_Step1((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_StepFactor1(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_StepFactor1(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_StepFactor1(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMeshCopyObjectParamT<T>::get_StepFactor1(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_StepFactor1((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_Count1(long Val/*[in]*/)
{
  return (*this)->set_Count1(Val);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Count1(long* Val/*[out,retval]*/)
{
  return (*this)->get_Count1(Val);
}

template <class T> long __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Count1(void)
{
  long Val;
  OLECHECK(this->get_Count1((long*)&Val));
  return Val;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_Angle2(double PVal/*[in]*/)
{
  return (*this)->set_Angle2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Angle2(PVal);
}

template <class T> double __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Angle2(void)
{
  double PVal;
  OLECHECK(this->get_Angle2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_Step2(double PVal/*[in]*/)
{
  return (*this)->set_Step2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Step2(double* PVal/*[out,retval]*/)
{
  return (*this)->get_Step2(PVal);
}

template <class T> double __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Step2(void)
{
  double PVal;
  OLECHECK(this->get_Step2((double*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_StepFactor2(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_StepFactor2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_StepFactor2(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMeshCopyObjectParamT<T>::get_StepFactor2(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_StepFactor2((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_Count2(long PVal/*[in]*/)
{
  return (*this)->set_Count2(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Count2(long* PVal/*[out,retval]*/)
{
  return (*this)->get_Count2(PVal);
}

template <class T> long __fastcall
TCOMIMeshCopyObjectParamT<T>::get_Count2(void)
{
  long PVal;
  OLECHECK(this->get_Count2((long*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_SaveCornersCopy(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SaveCornersCopy(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_SaveCornersCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SaveCornersCopy(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMeshCopyObjectParamT<T>::get_SaveCornersCopy(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SaveCornersCopy((TOLEBOOL*)&PVal));
  return PVal;
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/)
{
  return (*this)->set_SaveCentreCopy(PVal);
}

template <class T> HRESULT __fastcall
TCOMIMeshCopyObjectParamT<T>::get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  return (*this)->get_SaveCentreCopy(PVal);
}

template <class T> TOLEBOOL __fastcall
TCOMIMeshCopyObjectParamT<T>::get_SaveCentreCopy(void)
{
  TOLEBOOL PVal;
  OLECHECK(this->get_SaveCentreCopy((TOLEBOOL*)&PVal));
  return PVal;
}

// *********************************************************************//
// DispIntf:  IMeshCopyObjectParam
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {592AB214-A8CF-462E-ACD5-528839113338}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Angle1(double Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(2001));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Angle1(double* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle1"), DISPID(2001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_Angle1(void)
{
  double Val;
  this->get_Angle1((double*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Step1(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step1"), DISPID(2002));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Step1(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step1"), DISPID(2002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_Step1(void)
{
  double PVal;
  this->get_Step1((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_StepFactor1(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor1"), DISPID(2003));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_StepFactor1(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor1"), DISPID(2003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMeshCopyObjectParamDispT<T>::get_StepFactor1(void)
{
  TOLEBOOL PVal;
  this->get_StepFactor1((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Count1(long Val/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count1"), DISPID(2004));
  TAutoArgs<1> _args;
  _args[1] = Val /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Count1(long* Val/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count1"), DISPID(2004));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(Val /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMeshCopyObjectParamDispT<T>::get_Count1(void)
{
  long Val;
  this->get_Count1((long*)&Val);
  return Val;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Angle2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(2005));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Angle2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle2"), DISPID(2005));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_Angle2(void)
{
  double PVal;
  this->get_Angle2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Step2(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step2"), DISPID(2006));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Step2(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Step2"), DISPID(2006));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_Step2(void)
{
  double PVal;
  this->get_Step2((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_StepFactor2(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor2"), DISPID(2007));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_StepFactor2(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("StepFactor2"), DISPID(2007));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMeshCopyObjectParamDispT<T>::get_StepFactor2(void)
{
  TOLEBOOL PVal;
  this->get_StepFactor2((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Count2(long PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count2"), DISPID(2008));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Count2(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Count2"), DISPID(2008));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMeshCopyObjectParamDispT<T>::get_Count2(void)
{
  long PVal;
  this->get_Count2((long*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_SaveCornersCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveCornersCopy"), DISPID(2009));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_SaveCornersCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveCornersCopy"), DISPID(2009));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMeshCopyObjectParamDispT<T>::get_SaveCornersCopy(void)
{
  TOLEBOOL PVal;
  this->get_SaveCornersCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_SaveCentreCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveCentreCopy"), DISPID(2010));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_SaveCentreCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SaveCentreCopy"), DISPID(2010));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMeshCopyObjectParamDispT<T>::get_SaveCentreCopy(void)
{
  TOLEBOOL PVal;
  this->get_SaveCentreCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_XOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_XOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XOld"), DISPID(1));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_XOld(void)
{
  double PVal;
  this->get_XOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_YOld(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_YOld(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YOld"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_YOld(void)
{
  double PVal;
  this->get_YOld((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_XNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_XNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XNew"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_XNew(void)
{
  double PVal;
  this->get_XNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_YNew(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_YNew(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("YNew"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_YNew(void)
{
  double PVal;
  this->get_YNew((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Scale(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Scale(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Scale"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_Scale(void)
{
  double PVal;
  this->get_Scale((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_Angle(double PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_R8:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Angle(double* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Angle"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_R8:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> double __fastcall
IMeshCopyObjectParamDispT<T>::get_Angle(void)
{
  double PVal;
  this->get_Angle((double*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_AttributeCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_AttributeCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("AttributeCopy"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMeshCopyObjectParamDispT<T>::get_AttributeCopy(void)
{
  TOLEBOOL PVal;
  this->get_AttributeCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_DimensionLineScale(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_DimensionLineScale(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("DimensionLineScale"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMeshCopyObjectParamDispT<T>::get_DimensionLineScale(void)
{
  TOLEBOOL PVal;
  this->get_DimensionLineScale((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::set_SpecificationObjectCopy(TOLEBOOL PVal/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<1> _args;
  _args[1] = PVal /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_SpecificationObjectCopy(TOLEBOOL* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("SpecificationObjectCopy"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMeshCopyObjectParamDispT<T>::get_SpecificationObjectCopy(void)
{
  TOLEBOOL PVal;
  this->get_SpecificationObjectCopy((TOLEBOOL*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Parent(Kompasltapi7_tlb::IKompasAPIObjectPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Parent"), DISPID(1000));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IKompasAPIObject**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IKompasAPIObjectPtr __fastcall
IMeshCopyObjectParamDispT<T>::get_Parent(void)
{
  Kompasltapi7_tlb::IKompasAPIObjectPtr PVal;
  this->get_Parent((Kompasltapi7_tlb::IKompasAPIObjectPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Application(Kompasltapi7_tlb::IApplicationPtr* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Application"), DISPID(1001));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Kompasltapi7_tlb::IApplication**)PVal /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Kompasltapi7_tlb::IApplicationPtr __fastcall
IMeshCopyObjectParamDispT<T>::get_Application(void)
{
  Kompasltapi7_tlb::IApplicationPtr PVal;
  this->get_Application((Kompasltapi7_tlb::IApplicationPtr*)&PVal);
  return PVal;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Type(KompasAPIObjectTypeEnum* Type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Type"), DISPID(1002));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)Type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> KompasAPIObjectTypeEnum __fastcall
IMeshCopyObjectParamDispT<T>::get_Type(void)
{
  KompasAPIObjectTypeEnum Type;
  this->get_Type((KompasAPIObjectTypeEnum*)&Type);
  return Type;
}

template <class T> HRESULT __fastcall
IMeshCopyObjectParamDispT<T>::get_Reference(long* PVal/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("Reference"), DISPID(1003));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(PVal /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMeshCopyObjectParamDispT<T>::get_Reference(void)
{
  long PVal;
  this->get_Reference((long*)&PVal);
  return PVal;
}

// *********************************************************************//
// The following typedefs expose classes (named CoCoClassName) that       
// provide static Create() and CreateRemote(LPWSTR machineName) methods   
// for creating an instance of an exposed object. These functions can     
// be used by client wishing to automate CoClasses exposed by this        
// typelibrary.                                                           
// *********************************************************************//

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : KompasDocument
// Interface: TCOMIKompasDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIKompasDocument, IKompasDocument, &CLSID_KompasDocument, &IID_IKompasDocument> CoKompasDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Application
// Interface: TCOMIApplication
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIApplication, IApplication, &CLSID__Application, &IID_IApplication> Co_Application;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Documents
// Interface: TCOMIDocuments
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDocuments, IDocuments, &CLSID_Documents, &IID_IDocuments> CoDocuments;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DocumentFrame
// Interface: TCOMIDocumentFrame
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDocumentFrame, IDocumentFrame, &CLSID_DocumentFrame, &IID_IDocumentFrame> CoDocumentFrame;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DocumentFrames
// Interface: TCOMIDocumentFrames
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDocumentFrames, IDocumentFrames, &CLSID_DocumentFrames, &IID_IDocumentFrames> CoDocumentFrames;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ProcessParam
// Interface: TCOMIProcessParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIProcessParam, IProcessParam, &CLSID_ProcessParam, &IID_IProcessParam> CoProcessParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyControls
// Interface: TCOMIPropertyControls
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyControls, IPropertyControls, &CLSID_PropertyControls, &IID_IPropertyControls> CoPropertyControls;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyTab
// Interface: TCOMIPropertyTab
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyTab, IPropertyTab, &CLSID_PropertyTab, &IID_IPropertyTab> CoPropertyTab;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyTabs
// Interface: TCOMIPropertyTabs
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyTabs, IPropertyTabs, &CLSID_PropertyTabs, &IID_IPropertyTabs> CoPropertyTabs;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyEdit
// Interface: TCOMIPropertyEdit
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyEdit, IPropertyEdit, &CLSID_PropertyEdit, &IID_IPropertyEdit> CoPropertyEdit;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertySeparator
// Interface: TCOMIPropertySeparator
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertySeparator, IPropertySeparator, &CLSID_PropertySeparator, &IID_IPropertySeparator> CoPropertySeparator;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyList
// Interface: TCOMIPropertyList
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyList, IPropertyList, &CLSID_PropertyList, &IID_IPropertyList> CoPropertyList;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyCheckBox
// Interface: TCOMIPropertyCheckBox
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyCheckBox, IPropertyCheckBox, &CLSID_PropertyCheckBox, &IID_IPropertyCheckBox> CoPropertyCheckBox;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyMultiButton
// Interface: TCOMIPropertyMultiButton
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyMultiButton, IPropertyMultiButton, &CLSID_PropertyMultiButton, &IID_IPropertyMultiButton> CoPropertyMultiButton;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertySlideBox
// Interface: TCOMIPropertySlideBox
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertySlideBox, IPropertySlideBox, &CLSID_PropertySlideBox, &IID_IPropertySlideBox> CoPropertySlideBox;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyUserControl
// Interface: TCOMIPropertyUserControl
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyUserControl, IPropertyUserControl, &CLSID_PropertyUserControl, &IID_IPropertyUserControl> CoPropertyUserControl;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyGrid
// Interface: TCOMIPropertyGrid
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyGrid, IPropertyGrid, &CLSID_PropertyGrid, &IID_IPropertyGrid> CoPropertyGrid;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyManager
// Interface: TCOMIPropertyManager
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyManager, IPropertyManager, &CLSID_PropertyManager, &IID_IPropertyManager> CoPropertyManager;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : KompasDocument3D
// Interface: TCOMIKompasDocument3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIKompasDocument3D, IKompasDocument3D, &CLSID_KompasDocument3D, &IID_IKompasDocument3D> CoKompasDocument3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingDocument
// Interface: TCOMIDrawingDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingDocument, IDrawingDocument, &CLSID_DrawingDocument, &IID_IDrawingDocument> CoDrawingDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : FragmentDocument
// Interface: TCOMIFragmentDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIFragmentDocument, IFragmentDocument, &CLSID_FragmentDocument, &IID_IFragmentDocument> CoFragmentDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationDocument
// Interface: TCOMISpecificationDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationDocument, ISpecificationDocument, &CLSID_SpecificationDocument, &IID_ISpecificationDocument> CoSpecificationDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TextDocument
// Interface: TCOMITextDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITextDocument, ITextDocument, &CLSID_TextDocument, &IID_ITextDocument> CoTextDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PartDocument
// Interface: TCOMIPartDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPartDocument, IPartDocument, &CLSID_PartDocument, &IID_IPartDocument> CoPartDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AssemblyDocument
// Interface: TCOMIAssemblyDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAssemblyDocument, IAssemblyDocument, &CLSID_AssemblyDocument, &IID_IAssemblyDocument> CoAssemblyDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyTextButton
// Interface: TCOMIPropertyTextButton
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyTextButton, IPropertyTextButton, &CLSID_PropertyTextButton, &IID_IPropertyTextButton> CoPropertyTextButton;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertySpinEdit
// Interface: TCOMIPropertySpinEdit
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertySpinEdit, IPropertySpinEdit, &CLSID_PropertySpinEdit, &IID_IPropertySpinEdit> CoPropertySpinEdit;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ViewsAndLayersManager
// Interface: TCOMIViewsAndLayersManager
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIViewsAndLayersManager, IViewsAndLayersManager, &CLSID_ViewsAndLayersManager, &IID_IViewsAndLayersManager> CoViewsAndLayersManager;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingObject
// Interface: TCOMIDrawingObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingObject, IDrawingObject, &CLSID_DrawingObject, &IID_IDrawingObject> CoDrawingObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingObjects
// Interface: TCOMIDrawingObjects
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingObjects, IDrawingObjects, &CLSID_DrawingObjects, &IID_IDrawingObjects> CoDrawingObjects;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Views
// Interface: TCOMIViews
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIViews, IViews, &CLSID_Views, &IID_IViews> CoViews;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : View
// Interface: TCOMIView
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIView, IView, &CLSID_View, &IID_IView> CoView;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AssociationView
// Interface: TCOMIAssociationView
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAssociationView, IAssociationView, &CLSID_AssociationView, &IID_IAssociationView> CoAssociationView;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LayerGroups
// Interface: TCOMILayerGroups
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayerGroups, ILayerGroups, &CLSID_LayerGroups, &IID_ILayerGroups> CoLayerGroups;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LayerGroup
// Interface: TCOMILayerGroup
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayerGroup, ILayerGroup, &CLSID_LayerGroup, &IID_ILayerGroup> CoLayerGroup;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Layers
// Interface: TCOMILayers
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayers, ILayers, &CLSID_Layers, &IID_ILayers> CoLayers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Layer
// Interface: TCOMILayer
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayer, ILayer, &CLSID_Layer, &IID_ILayer> CoLayer;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LayerFilterCondition
// Interface: TCOMILayerFilterCondition
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayerFilterCondition, ILayerFilterCondition, &CLSID_LayerFilterCondition, &IID_ILayerFilterCondition> CoLayerFilterCondition;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LayerFilterConditions
// Interface: TCOMILayerFilterConditions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayerFilterConditions, ILayerFilterConditions, &CLSID_LayerFilterConditions, &IID_ILayerFilterConditions> CoLayerFilterConditions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DocumentSettings
// Interface: TCOMIDocumentSettings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDocumentSettings, IDocumentSettings, &CLSID_DocumentSettings, &IID_IDocumentSettings> CoDocumentSettings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Document2DSettings
// Interface: TCOMIDocument2DSettings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDocument2DSettings, IDocument2DSettings, &CLSID_Document2DSettings, &IID_IDocument2DSettings> CoDocument2DSettings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LibraryManager
// Interface: TCOMILibraryManager
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILibraryManager, ILibraryManager, &CLSID_LibraryManager, &IID_ILibraryManager> CoLibraryManager;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ProceduresLibrary
// Interface: TCOMIProceduresLibrary
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIProceduresLibrary, IProceduresLibrary, &CLSID_ProceduresLibrary, &IID_IProceduresLibrary> CoProceduresLibrary;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Procedures
// Interface: TCOMIProcedures
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIProcedures, IProcedures, &CLSID_Procedures, &IID_IProcedures> CoProcedures;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Procedure
// Interface: TCOMIProcedure
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIProcedure, IProcedure, &CLSID_Procedure, &IID_IProcedure> CoProcedure;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : InsertsLibrary
// Interface: TCOMIInsertsLibrary
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInsertsLibrary, IInsertsLibrary, &CLSID_InsertsLibrary, &IID_IInsertsLibrary> CoInsertsLibrary;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Inserts
// Interface: TCOMIInserts
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInserts, IInserts, &CLSID_Inserts, &IID_IInserts> CoInserts;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Insert
// Interface: TCOMIInsert
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInsert, IInsert, &CLSID_Insert, &IID_IInsert> CoInsert;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : InsertsLibraries
// Interface: TCOMIInsertsLibraries
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInsertsLibraries, IInsertsLibraries, &CLSID_InsertsLibraries, &IID_IInsertsLibraries> CoInsertsLibraries;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ProceduresLibraries
// Interface: TCOMIProceduresLibraries
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIProceduresLibraries, IProceduresLibraries, &CLSID_ProceduresLibraries, &IID_IProceduresLibraries> CoProceduresLibraries;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationDescriptions
// Interface: TCOMISpecificationDescriptions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationDescriptions, ISpecificationDescriptions, &CLSID_SpecificationDescriptions, &IID_ISpecificationDescriptions> CoSpecificationDescriptions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationDescription
// Interface: TCOMISpecificationDescription
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationDescription, ISpecificationDescription, &CLSID_SpecificationDescription, &IID_ISpecificationDescription> CoSpecificationDescription;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationStyle
// Interface: TCOMISpecificationStyle
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationStyle, ISpecificationStyle, &CLSID_SpecificationStyle, &IID_ISpecificationStyle> CoSpecificationStyle;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationColumnStyles
// Interface: TCOMISpecificationColumnStyles
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationColumnStyles, ISpecificationColumnStyles, &CLSID_SpecificationColumnStyles, &IID_ISpecificationColumnStyles> CoSpecificationColumnStyles;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationColumnStyle
// Interface: TCOMISpecificationColumnStyle
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationColumnStyle, ISpecificationColumnStyle, &CLSID_SpecificationColumnStyle, &IID_ISpecificationColumnStyle> CoSpecificationColumnStyle;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationSectionStyles
// Interface: TCOMISpecificationSectionStyles
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationSectionStyles, ISpecificationSectionStyles, &CLSID_SpecificationSectionStyles, &IID_ISpecificationSectionStyles> CoSpecificationSectionStyles;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationSectionStyle
// Interface: TCOMISpecificationSectionStyle
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationSectionStyle, ISpecificationSectionStyle, &CLSID_SpecificationSectionStyle, &IID_ISpecificationSectionStyle> CoSpecificationSectionStyle;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AdditionalBlockStyles
// Interface: TCOMIAdditionalBlockStyles
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAdditionalBlockStyles, IAdditionalBlockStyles, &CLSID_AdditionalBlockStyles, &IID_IAdditionalBlockStyles> CoAdditionalBlockStyles;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AdditionalBlockStyle
// Interface: TCOMIAdditionalBlockStyle
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAdditionalBlockStyle, IAdditionalBlockStyle, &CLSID_AdditionalBlockStyle, &IID_IAdditionalBlockStyle> CoAdditionalBlockStyle;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetFormat
// Interface: TCOMISheetFormat
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetFormat, ISheetFormat, &CLSID_SheetFormat, &IID_ISheetFormat> CoSheetFormat;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationTuning
// Interface: TCOMISpecificationTuning
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationTuning, ISpecificationTuning, &CLSID_SpecificationTuning, &IID_ISpecificationTuning> CoSpecificationTuning;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationTuningSections
// Interface: TCOMISpecificationTuningSections
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationTuningSections, ISpecificationTuningSections, &CLSID_SpecificationTuningSections, &IID_ISpecificationTuningSections> CoSpecificationTuningSections;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationTuningSection
// Interface: TCOMISpecificationTuningSection
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationTuningSection, ISpecificationTuningSection, &CLSID_SpecificationTuningSection, &IID_ISpecificationTuningSection> CoSpecificationTuningSection;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationSubsections
// Interface: TCOMISpecificationSubsections
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationSubsections, ISpecificationSubsections, &CLSID_SpecificationSubsections, &IID_ISpecificationSubsections> CoSpecificationSubsections;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationSubsection
// Interface: TCOMISpecificationSubsection
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationSubsection, ISpecificationSubsection, &CLSID_SpecificationSubsection, &IID_ISpecificationSubsection> CoSpecificationSubsection;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AdditionalBlockTunings
// Interface: TCOMIAdditionalBlockTunings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAdditionalBlockTunings, IAdditionalBlockTunings, &CLSID_AdditionalBlockTunings, &IID_IAdditionalBlockTunings> CoAdditionalBlockTunings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AdditionalBlockTuning
// Interface: TCOMIAdditionalBlockTuning
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAdditionalBlockTuning, IAdditionalBlockTuning, &CLSID_AdditionalBlockTuning, &IID_IAdditionalBlockTuning> CoAdditionalBlockTuning;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AdditionalBlockSectionTunings
// Interface: TCOMIAdditionalBlockSectionTunings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAdditionalBlockSectionTunings, IAdditionalBlockSectionTunings, &CLSID_AdditionalBlockSectionTunings, &IID_IAdditionalBlockSectionTunings> CoAdditionalBlockSectionTunings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AdditionalBlockSectionTuning
// Interface: TCOMIAdditionalBlockSectionTuning
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAdditionalBlockSectionTuning, IAdditionalBlockSectionTuning, &CLSID_AdditionalBlockSectionTuning, &IID_IAdditionalBlockSectionTuning> CoAdditionalBlockSectionTuning;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TextFont
// Interface: TCOMITextFont
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITextFont, ITextFont, &CLSID_TextFont, &IID_ITextFont> CoTextFont;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TextStyle
// Interface: TCOMITextStyle
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITextStyle, ITextStyle, &CLSID_TextStyle, &IID_ITextStyle> CoTextStyle;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Tabulators
// Interface: TCOMITabulators
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITabulators, ITabulators, &CLSID_Tabulators, &IID_ITabulators> CoTabulators;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Tabulator
// Interface: TCOMITabulator
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITabulator, ITabulator, &CLSID_Tabulator, &IID_ITabulator> CoTabulator;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : KompasError
// Interface: TCOMIKompasError
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIKompasError, IKompasError, &CLSID_KompasError, &IID_IKompasError> CoKompasError;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationBaseObjects
// Interface: TCOMISpecificationBaseObjects
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationBaseObjects, ISpecificationBaseObjects, &CLSID_SpecificationBaseObjects, &IID_ISpecificationBaseObjects> CoSpecificationBaseObjects;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationCommentObjects
// Interface: TCOMISpecificationCommentObjects
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationCommentObjects, ISpecificationCommentObjects, &CLSID_SpecificationCommentObjects, &IID_ISpecificationCommentObjects> CoSpecificationCommentObjects;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationObject
// Interface: TCOMISpecificationObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationObject, ISpecificationObject, &CLSID_SpecificationObject, &IID_ISpecificationObject> CoSpecificationObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationBaseObject
// Interface: TCOMISpecificationBaseObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationBaseObject, ISpecificationBaseObject, &CLSID_SpecificationBaseObject, &IID_ISpecificationBaseObject> CoSpecificationBaseObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationCommentObject
// Interface: TCOMISpecificationCommentObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationCommentObject, ISpecificationCommentObject, &CLSID_SpecificationCommentObject, &IID_ISpecificationCommentObject> CoSpecificationCommentObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationColumns
// Interface: TCOMISpecificationColumns
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationColumns, ISpecificationColumns, &CLSID_SpecificationColumns, &IID_ISpecificationColumns> CoSpecificationColumns;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationColumn
// Interface: TCOMISpecificationColumn
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationColumn, ISpecificationColumn, &CLSID_SpecificationColumn, &IID_ISpecificationColumn> CoSpecificationColumn;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationColumnItems
// Interface: TCOMISpecificationColumnItems
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationColumnItems, ISpecificationColumnItems, &CLSID_SpecificationColumnItems, &IID_ISpecificationColumnItems> CoSpecificationColumnItems;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SpecificationColumnItem
// Interface: TCOMISpecificationColumnItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecificationColumnItem, ISpecificationColumnItem, &CLSID_SpecificationColumnItem, &IID_ISpecificationColumnItem> CoSpecificationColumnItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AttachedDocuments
// Interface: TCOMIAttachedDocuments
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAttachedDocuments, IAttachedDocuments, &CLSID_AttachedDocuments, &IID_IAttachedDocuments> CoAttachedDocuments;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AttachedDocument
// Interface: TCOMIAttachedDocument
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAttachedDocument, IAttachedDocument, &CLSID_AttachedDocument, &IID_IAttachedDocument> CoAttachedDocument;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyFileName
// Interface: TCOMIPropertyFileName
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyFileName, IPropertyFileName, &CLSID_PropertyFileName, &IID_IPropertyFileName> CoPropertyFileName;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyColor
// Interface: TCOMIPropertyColor
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyColor, IPropertyColor, &CLSID_PropertyColor, &IID_IPropertyColor> CoPropertyColor;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LayoutSheets
// Interface: TCOMILayoutSheets
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayoutSheets, ILayoutSheets, &CLSID_LayoutSheets, &IID_ILayoutSheets> CoLayoutSheets;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LayoutSheet
// Interface: TCOMILayoutSheet
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILayoutSheet, ILayoutSheet, &CLSID_LayoutSheet, &IID_ILayoutSheet> CoLayoutSheet;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Converter
// Interface: TCOMIConverter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIConverter, IConverter, &CLSID_Converter, &IID_IConverter> CoConverter;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CheckSum
// Interface: TCOMICheckSum
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICheckSum, ICheckSum, &CLSID_CheckSum, &IID_ICheckSum> CoCheckSum;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ModelObject
// Interface: TCOMIModelObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIModelObject, IModelObject, &CLSID_ModelObject, &IID_IModelObject> CoModelObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ModelObjects
// Interface: TCOMIModelObjects
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIModelObjects, IModelObjects, &CLSID_ModelObjects, &IID_IModelObjects> CoModelObjects;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Parts7
// Interface: TCOMIParts7
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIParts7, IParts7, &CLSID_Parts7, &IID_IParts7> CoParts7;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Part7
// Interface: TCOMIPart7
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPart7, IPart7, &CLSID_Part7, &IID_IPart7> CoPart7;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Sketchs
// Interface: TCOMISketchs
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISketchs, ISketchs, &CLSID_Sketchs, &IID_ISketchs> CoSketchs;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Extrusions
// Interface: TCOMIExtrusions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIExtrusions, IExtrusions, &CLSID_Extrusions, &IID_IExtrusions> CoExtrusions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : VariableTable
// Interface: TCOMIVariableTable
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIVariableTable, IVariableTable, &CLSID_VariableTable, &IID_IVariableTable> CoVariableTable;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ProgressBarIndicator
// Interface: TCOMIProgressBarIndicator
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIProgressBarIndicator, IProgressBarIndicator, &CLSID_ProgressBarIndicator, &IID_IProgressBarIndicator> CoProgressBarIndicator;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Text
// Interface: TCOMIText
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIText, IText, &CLSID_Text, &IID_IText> CoText;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TextLine
// Interface: TCOMITextLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITextLine, ITextLine, &CLSID_TextLine, &IID_ITextLine> CoTextLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TextItem
// Interface: TCOMITextItem
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITextItem, ITextItem, &CLSID_TextItem, &IID_ITextItem> CoTextItem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingText
// Interface: TCOMIDrawingText
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingText, IDrawingText, &CLSID_DrawingText, &IID_IDrawingText> CoDrawingText;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingTexts
// Interface: TCOMIDrawingTexts
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingTexts, IDrawingTexts, &CLSID_DrawingTexts, &IID_IDrawingTexts> CoDrawingTexts;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Marks
// Interface: TCOMIMarks
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMarks, IMarks, &CLSID_Marks, &IID_IMarks> CoMarks;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MarkInsideForm
// Interface: TCOMIMarkInsideForm
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMarkInsideForm, IMarkInsideForm, &CLSID_MarkInsideForm, &IID_IMarkInsideForm> CoMarkInsideForm;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MarkOnLine
// Interface: TCOMIMarkOnLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMarkOnLine, IMarkOnLine, &CLSID_MarkOnLine, &IID_IMarkOnLine> CoMarkOnLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MarkOnLeader
// Interface: TCOMIMarkOnLeader
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMarkOnLeader, IMarkOnLeader, &CLSID_MarkOnLeader, &IID_IMarkOnLeader> CoMarkOnLeader;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UserDataStoragesMng
// Interface: TCOMIUserDataStoragesMng
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIUserDataStoragesMng, IUserDataStoragesMng, &CLSID_UserDataStoragesMng, &IID_IUserDataStoragesMng> CoUserDataStoragesMng;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UserDataStorages
// Interface: TCOMIUserDataStorages
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIUserDataStorages, IUserDataStorages, &CLSID_UserDataStorages, &IID_IUserDataStorages> CoUserDataStorages;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UserDataStorage
// Interface: TCOMIUserDataStorage
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIUserDataStorage, IUserDataStorage, &CLSID_UserDataStorage, &IID_IUserDataStorage> CoUserDataStorage;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BuildingAxes
// Interface: TCOMIBuildingAxes
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBuildingAxes, IBuildingAxes, &CLSID_BuildingAxes, &IID_IBuildingAxes> CoBuildingAxes;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : StraightAxis
// Interface: TCOMIStraightAxis
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIStraightAxis, IStraightAxis, &CLSID_StraightAxis, &IID_IStraightAxis> CoStraightAxis;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ArcAxis
// Interface: TCOMIArcAxis
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIArcAxis, IArcAxis, &CLSID_ArcAxis, &IID_IArcAxis> CoArcAxis;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CircleAxis
// Interface: TCOMICircleAxis
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICircleAxis, ICircleAxis, &CLSID_CircleAxis, &IID_ICircleAxis> CoCircleAxis;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AxisJut
// Interface: TCOMIAxisJut
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAxisJut, IAxisJut, &CLSID_AxisJut, &IID_IAxisJut> CoAxisJut;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MarkNodes
// Interface: TCOMIMarkNodes
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMarkNodes, IMarkNodes, &CLSID_MarkNodes, &IID_IMarkNodes> CoMarkNodes;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MarkNode
// Interface: TCOMIMarkNode
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMarkNode, IMarkNode, &CLSID_MarkNode, &IID_IMarkNode> CoMarkNode;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LineSegments
// Interface: TCOMILineSegments
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILineSegments, ILineSegments, &CLSID_LineSegments, &IID_ILineSegments> CoLineSegments;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LineSegment
// Interface: TCOMILineSegment
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILineSegment, ILineSegment, &CLSID_LineSegment, &IID_ILineSegment> CoLineSegment;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SystemSettings
// Interface: TCOMISystemSettings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISystemSettings, ISystemSettings, &CLSID_SystemSettings, &IID_ISystemSettings> CoSystemSettings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CutUnitMarking
// Interface: TCOMICutUnitMarking
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICutUnitMarking, ICutUnitMarking, &CLSID_CutUnitMarking, &IID_ICutUnitMarking> CoCutUnitMarking;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CutUnitMarkings
// Interface: TCOMICutUnitMarkings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICutUnitMarkings, ICutUnitMarkings, &CLSID_CutUnitMarkings, &IID_ICutUnitMarkings> CoCutUnitMarkings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UnitMarking
// Interface: TCOMIUnitMarking
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIUnitMarking, IUnitMarking, &CLSID_UnitMarking, &IID_IUnitMarking> CoUnitMarking;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UnitMarkings
// Interface: TCOMIUnitMarkings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIUnitMarkings, IUnitMarkings, &CLSID_UnitMarkings, &IID_IUnitMarkings> CoUnitMarkings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Arcs
// Interface: TCOMIArcs
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIArcs, IArcs, &CLSID_Arcs, &IID_IArcs> CoArcs;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Arc
// Interface: TCOMIArc
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIArc, IArc, &CLSID__Arc, &IID_IArc> Co_Arc;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MultiTextLeader
// Interface: TCOMIMultiTextLeader
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMultiTextLeader, IMultiTextLeader, &CLSID_MultiTextLeader, &IID_IMultiTextLeader> CoMultiTextLeader;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MultiTextLeaders
// Interface: TCOMIMultiTextLeaders
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMultiTextLeaders, IMultiTextLeaders, &CLSID_MultiTextLeaders, &IID_IMultiTextLeaders> CoMultiTextLeaders;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Brace
// Interface: TCOMIBrace
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBrace, IBrace, &CLSID_Brace, &IID_IBrace> CoBrace;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Braces
// Interface: TCOMIBraces
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBraces, IBraces, &CLSID_Braces, &IID_IBraces> CoBraces;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UnitNumber
// Interface: TCOMIUnitNumber
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIUnitNumber, IUnitNumber, &CLSID_UnitNumber, &IID_IUnitNumber> CoUnitNumber;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UnitNumbers
// Interface: TCOMIUnitNumbers
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIUnitNumbers, IUnitNumbers, &CLSID_UnitNumbers, &IID_IUnitNumbers> CoUnitNumbers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Sketch
// Interface: TCOMISketch
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISketch, ISketch, &CLSID_Sketch, &IID_ISketch> CoSketch;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Extrusion
// Interface: TCOMIExtrusion
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIExtrusion, IExtrusion, &CLSID_Extrusion, &IID_IExtrusion> CoExtrusion;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ParametriticConstraint
// Interface: TCOMIParametriticConstraint
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIParametriticConstraint, IParametriticConstraint, &CLSID_ParametriticConstraint, &IID_IParametriticConstraint> CoParametriticConstraint;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CutExtrusion
// Interface: TCOMICutExtrusion
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICutExtrusion, ICutExtrusion, &CLSID_CutExtrusion, &IID_ICutExtrusion> CoCutExtrusion;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Body7
// Interface: TCOMIBody7
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBody7, IBody7, &CLSID_Body7, &IID_IBody7> CoBody7;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalBodies
// Interface: TCOMISheetMetalBodies
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalBodies, ISheetMetalBodies, &CLSID_SheetMetalBodies, &IID_ISheetMetalBodies> CoSheetMetalBodies;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalBody
// Interface: TCOMISheetMetalBody
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalBody, ISheetMetalBody, &CLSID_SheetMetalBody, &IID_ISheetMetalBody> CoSheetMetalBody;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Points3D
// Interface: TCOMIPoints3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoints3D, IPoints3D, &CLSID_Points3D, &IID_IPoints3D> CoPoints3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Point3D
// Interface: TCOMIPoint3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint3D, IPoint3D, &CLSID_Point3D, &IID_IPoint3D> CoPoint3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Point3DParamDisplace
// Interface: TCOMIPoint3DParamDisplace
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint3DParamDisplace, IPoint3DParamDisplace, &CLSID_Point3DParamDisplace, &IID_IPoint3DParamDisplace> CoPoint3DParamDisplace;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Point3DParamIntersect
// Interface: TCOMIPoint3DParamIntersect
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint3DParamIntersect, IPoint3DParamIntersect, &CLSID_Point3DParamIntersect, &IID_IPoint3DParamIntersect> CoPoint3DParamIntersect;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Point3DParamCenter
// Interface: TCOMIPoint3DParamCenter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint3DParamCenter, IPoint3DParamCenter, &CLSID_Point3DParamCenter, &IID_IPoint3DParamCenter> CoPoint3DParamCenter;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Point3DParamCurve
// Interface: TCOMIPoint3DParamCurve
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint3DParamCurve, IPoint3DParamCurve, &CLSID_Point3DParamCurve, &IID_IPoint3DParamCurve> CoPoint3DParamCurve;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Point3DParamSurface
// Interface: TCOMIPoint3DParamSurface
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint3DParamSurface, IPoint3DParamSurface, &CLSID_Point3DParamSurface, &IID_IPoint3DParamSurface> CoPoint3DParamSurface;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Point3DParamProjection
// Interface: TCOMIPoint3DParamProjection
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint3DParamProjection, IPoint3DParamProjection, &CLSID_Point3DParamProjection, &IID_IPoint3DParamProjection> CoPoint3DParamProjection;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalBends
// Interface: TCOMISheetMetalBends
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalBends, ISheetMetalBends, &CLSID_SheetMetalBends, &IID_ISheetMetalBends> CoSheetMetalBends;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalBend
// Interface: TCOMISheetMetalBend
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalBend, ISheetMetalBend, &CLSID_SheetMetalBend, &IID_ISheetMetalBend> CoSheetMetalBend;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalLineBends
// Interface: TCOMISheetMetalLineBends
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalLineBends, ISheetMetalLineBends, &CLSID_SheetMetalLineBends, &IID_ISheetMetalLineBends> CoSheetMetalLineBends;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalLineBend
// Interface: TCOMISheetMetalLineBend
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalLineBend, ISheetMetalLineBend, &CLSID_SheetMetalLineBend, &IID_ISheetMetalLineBend> CoSheetMetalLineBend;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalHole
// Interface: TCOMISheetMetalHole
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalHole, ISheetMetalHole, &CLSID_SheetMetalHole, &IID_ISheetMetalHole> CoSheetMetalHole;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalHoles
// Interface: TCOMISheetMetalHoles
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalHoles, ISheetMetalHoles, &CLSID_SheetMetalHoles, &IID_ISheetMetalHoles> CoSheetMetalHoles;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalCut
// Interface: TCOMISheetMetalCut
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalCut, ISheetMetalCut, &CLSID_SheetMetalCut, &IID_ISheetMetalCut> CoSheetMetalCut;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SheetMetalCuts
// Interface: TCOMISheetMetalCuts
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISheetMetalCuts, ISheetMetalCuts, &CLSID_SheetMetalCuts, &IID_ISheetMetalCuts> CoSheetMetalCuts;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RadialDimension
// Interface: TCOMIRadialDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRadialDimension, IRadialDimension, &CLSID_RadialDimension, &IID_IRadialDimension> CoRadialDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RadialDimensions
// Interface: TCOMIRadialDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRadialDimensions, IRadialDimensions, &CLSID_RadialDimensions, &IID_IRadialDimensions> CoRadialDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BreakRadialDimension
// Interface: TCOMIBreakRadialDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBreakRadialDimension, IBreakRadialDimension, &CLSID_BreakRadialDimension, &IID_IBreakRadialDimension> CoBreakRadialDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RadialBreakDimensions
// Interface: TCOMIBreakRadialDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBreakRadialDimensions, IBreakRadialDimensions, &CLSID_RadialBreakDimensions, &IID_IBreakRadialDimensions> CoRadialBreakDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DiametralDimension
// Interface: TCOMIDiametralDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDiametralDimension, IDiametralDimension, &CLSID_DiametralDimension, &IID_IDiametralDimension> CoDiametralDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DiametralDimensions
// Interface: TCOMIDiametralDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDiametralDimensions, IDiametralDimensions, &CLSID_DiametralDimensions, &IID_IDiametralDimensions> CoDiametralDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LineDimensions3D
// Interface: TCOMILineDimensions3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILineDimensions3D, ILineDimensions3D, &CLSID_LineDimensions3D, &IID_ILineDimensions3D> CoLineDimensions3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BaseLineDimension3D
// Interface: TCOMIBaseLineDimension3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBaseLineDimension3D, IBaseLineDimension3D, &CLSID_BaseLineDimension3D, &IID_IBaseLineDimension3D> CoBaseLineDimension3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LineDimension3D
// Interface: TCOMILineDimension3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILineDimension3D, ILineDimension3D, &CLSID_LineDimension3D, &IID_ILineDimension3D> CoLineDimension3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LineDimension
// Interface: TCOMILineDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILineDimension, ILineDimension, &CLSID_LineDimension, &IID_ILineDimension> CoLineDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LineDimensions
// Interface: TCOMILineDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILineDimensions, ILineDimensions, &CLSID_LineDimensions, &IID_ILineDimensions> CoLineDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RadialDimension3D
// Interface: TCOMIRadialDimension3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRadialDimension3D, IRadialDimension3D, &CLSID_RadialDimension3D, &IID_IRadialDimension3D> CoRadialDimension3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DiametralDimension3D
// Interface: TCOMIDiametralDimension3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDiametralDimension3D, IDiametralDimension3D, &CLSID_DiametralDimension3D, &IID_IDiametralDimension3D> CoDiametralDimension3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RadialDimensions3D
// Interface: TCOMIRadialDimensions3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRadialDimensions3D, IRadialDimensions3D, &CLSID_RadialDimensions3D, &IID_IRadialDimensions3D> CoRadialDimensions3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DiametralDimensions3D
// Interface: TCOMIDiametralDimensions3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDiametralDimensions3D, IDiametralDimensions3D, &CLSID_DiametralDimensions3D, &IID_IDiametralDimensions3D> CoDiametralDimensions3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BreakLineDimension
// Interface: TCOMIBreakLineDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBreakLineDimension, IBreakLineDimension, &CLSID_BreakLineDimension, &IID_IBreakLineDimension> CoBreakLineDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BreakLineDimensions
// Interface: TCOMIBreakLineDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBreakLineDimensions, IBreakLineDimensions, &CLSID_BreakLineDimensions, &IID_IBreakLineDimensions> CoBreakLineDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : HeightDimension
// Interface: TCOMIHeightDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIHeightDimension, IHeightDimension, &CLSID_HeightDimension, &IID_IHeightDimension> CoHeightDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : HeightDimensions
// Interface: TCOMIHeightDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIHeightDimensions, IHeightDimensions, &CLSID_HeightDimensions, &IID_IHeightDimensions> CoHeightDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AngleDimension
// Interface: TCOMIAngleDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAngleDimension, IAngleDimension, &CLSID_AngleDimension, &IID_IAngleDimension> CoAngleDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AngleDimensions
// Interface: TCOMIAngleDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAngleDimensions, IAngleDimensions, &CLSID_AngleDimensions, &IID_IAngleDimensions> CoAngleDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BreakAngleDimension
// Interface: TCOMIBreakAngleDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBreakAngleDimension, IBreakAngleDimension, &CLSID_BreakAngleDimension, &IID_IBreakAngleDimension> CoBreakAngleDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ArcDimension
// Interface: TCOMIArcDimension
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIArcDimension, IArcDimension, &CLSID_ArcDimension, &IID_IArcDimension> CoArcDimension;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ArcDimensions
// Interface: TCOMIArcDimensions
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIArcDimensions, IArcDimensions, &CLSID_ArcDimensions, &IID_IArcDimensions> CoArcDimensions;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AngleDimension3D
// Interface: TCOMIAngleDimension3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAngleDimension3D, IAngleDimension3D, &CLSID_AngleDimension3D, &IID_IAngleDimension3D> CoAngleDimension3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AngleDimensions3D
// Interface: TCOMIAngleDimensions3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAngleDimensions3D, IAngleDimensions3D, &CLSID_AngleDimensions3D, &IID_IAngleDimensions3D> CoAngleDimensions3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CurveVertexParam
// Interface: TCOMICurveVertexParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICurveVertexParam, ICurveVertexParam, &CLSID_CurveVertexParam, &IID_ICurveVertexParam> CoCurveVertexParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Splines3D
// Interface: TCOMISplines3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISplines3D, ISplines3D, &CLSID_Splines3D, &IID_ISplines3D> CoSplines3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Spline3D
// Interface: TCOMISpline3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpline3D, ISpline3D, &CLSID_Spline3D, &IID_ISpline3D> CoSpline3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LocalCoordinateSystem
// Interface: TCOMILocalCoordinateSystem
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILocalCoordinateSystem, ILocalCoordinateSystem, &CLSID_LocalCoordinateSystem, &IID_ILocalCoordinateSystem> CoLocalCoordinateSystem;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LocalCoordinateSystems
// Interface: TCOMILocalCoordinateSystems
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILocalCoordinateSystems, ILocalCoordinateSystems, &CLSID_LocalCoordinateSystems, &IID_ILocalCoordinateSystems> CoLocalCoordinateSystems;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LocalCSAxesDirectionParam
// Interface: TCOMILocalCSAxesDirectionParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILocalCSAxesDirectionParam, ILocalCSAxesDirectionParam, &CLSID_LocalCSAxesDirectionParam, &IID_ILocalCSAxesDirectionParam> CoLocalCSAxesDirectionParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LocalCSEulerParam
// Interface: TCOMILocalCSEulerParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILocalCSEulerParam, ILocalCSEulerParam, &CLSID_LocalCSEulerParam, &IID_ILocalCSEulerParam> CoLocalCSEulerParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PolyLine
// Interface: TCOMIPolyLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPolyLine, IPolyLine, &CLSID_PolyLine, &IID_IPolyLine> CoPolyLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PolyLines
// Interface: TCOMIPolyLines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPolyLines, IPolyLines, &CLSID_PolyLines, &IID_IPolyLines> CoPolyLines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BaseLeader
// Interface: TCOMIBaseLeader
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBaseLeader, IBaseLeader, &CLSID_BaseLeader, &IID_IBaseLeader> CoBaseLeader;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Leaders
// Interface: TCOMILeaders
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILeaders, ILeaders, &CLSID_Leaders, &IID_ILeaders> CoLeaders;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Roughs
// Interface: TCOMIRoughs
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRoughs, IRoughs, &CLSID_Roughs, &IID_IRoughs> CoRoughs;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Rough
// Interface: TCOMIRough
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRough, IRough, &CLSID_Rough, &IID_IRough> CoRough;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BaseLeader3D
// Interface: TCOMIBaseLeader3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBaseLeader3D, IBaseLeader3D, &CLSID_BaseLeader3D, &IID_IBaseLeader3D> CoBaseLeader3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Leaders3D
// Interface: TCOMILeaders3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILeaders3D, ILeaders3D, &CLSID_Leaders3D, &IID_ILeaders3D> CoLeaders3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Rough3D
// Interface: TCOMIRough3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRough3D, IRough3D, &CLSID_Rough3D, &IID_IRough3D> CoRough3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Roughs3D
// Interface: TCOMIRoughs3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRoughs3D, IRoughs3D, &CLSID_Roughs3D, &IID_IRoughs3D> CoRoughs3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Base
// Interface: TCOMIBase
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBase, IBase, &CLSID__Base, &IID_IBase> Co_Base;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Bases
// Interface: TCOMIBases
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBases, IBases, &CLSID_Bases, &IID_IBases> CoBases;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TableCell
// Interface: TCOMITableCell
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITableCell, ITableCell, &CLSID_TableCell, &IID_ITableCell> CoTableCell;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingTable
// Interface: TCOMIDrawingTable
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingTable, IDrawingTable, &CLSID_DrawingTable, &IID_IDrawingTable> CoDrawingTable;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingTables
// Interface: TCOMIDrawingTables
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingTables, IDrawingTables, &CLSID_DrawingTables, &IID_IDrawingTables> CoDrawingTables;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Tolerances
// Interface: TCOMITolerances
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITolerances, ITolerances, &CLSID_Tolerances, &IID_ITolerances> CoTolerances;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Tolerance
// Interface: TCOMITolerance
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITolerance, ITolerance, &CLSID__Tolerance, &IID_ITolerance> Co_Tolerance;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Bases3D
// Interface: TCOMIBases3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBases3D, IBases3D, &CLSID_Bases3D, &IID_IBases3D> CoBases3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Base3D
// Interface: TCOMIBase3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBase3D, IBase3D, &CLSID_Base3D, &IID_IBase3D> CoBase3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Tolerances3D
// Interface: TCOMITolerances3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITolerances3D, ITolerances3D, &CLSID_Tolerances3D, &IID_ITolerances3D> CoTolerances3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Tolerance3D
// Interface: TCOMITolerance3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITolerance3D, ITolerance3D, &CLSID_Tolerance3D, &IID_ITolerance3D> CoTolerance3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LocalCSOrientByObjectParam
// Interface: TCOMILocalCSOrientByObjectParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILocalCSOrientByObjectParam, ILocalCSOrientByObjectParam, &CLSID_LocalCSOrientByObjectParam, &IID_ILocalCSOrientByObjectParam> CoLocalCSOrientByObjectParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CutLine
// Interface: TCOMICutLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICutLine, ICutLine, &CLSID_CutLine, &IID_ICutLine> CoCutLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CutLines
// Interface: TCOMICutLines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICutLines, ICutLines, &CLSID_CutLines, &IID_ICutLines> CoCutLines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ExternalTessellationObject
// Interface: TCOMIExternalTessellationObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIExternalTessellationObject, IExternalTessellationObject, &CLSID_ExternalTessellationObject, &IID_IExternalTessellationObject> CoExternalTessellationObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ControlPoints
// Interface: TCOMIControlPoints
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIControlPoints, IControlPoints, &CLSID_ControlPoints, &IID_IControlPoints> CoControlPoints;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ControlPoint
// Interface: TCOMIControlPoint
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIControlPoint, IControlPoint, &CLSID_ControlPoint, &IID_IControlPoint> CoControlPoint;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ConjunctivePoints
// Interface: TCOMIConjunctivePoints
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIConjunctivePoints, IConjunctivePoints, &CLSID_ConjunctivePoints, &IID_IConjunctivePoints> CoConjunctivePoints;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ConjunctivePoint
// Interface: TCOMIConjunctivePoint
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIConjunctivePoint, IConjunctivePoint, &CLSID_ConjunctivePoint, &IID_IConjunctivePoint> CoConjunctivePoint;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyBmpList
// Interface: TCOMIPropertyBmpList
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyBmpList, IPropertyBmpList, &CLSID_PropertyBmpList, &IID_IPropertyBmpList> CoPropertyBmpList;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ViewPointer
// Interface: TCOMIViewPointer
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIViewPointer, IViewPointer, &CLSID_ViewPointer, &IID_IViewPointer> CoViewPointer;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ViewPointers
// Interface: TCOMIViewPointers
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIViewPointers, IViewPointers, &CLSID_ViewPointers, &IID_IViewPointers> CoViewPointers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Multiline
// Interface: TCOMIMultiline
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMultiline, IMultiline, &CLSID_Multiline, &IID_IMultiline> CoMultiline;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Multilines
// Interface: TCOMIMultilines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMultilines, IMultilines, &CLSID_Multilines, &IID_IMultilines> CoMultilines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Contour
// Interface: TCOMIContour
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIContour, IContour, &CLSID_Contour, &IID_IContour> CoContour;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ContourSegment
// Interface: TCOMIContourSegment
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIContourSegment, IContourSegment, &CLSID_ContourSegment, &IID_IContourSegment> CoContourSegment;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ContourLineSegment
// Interface: TCOMIContourLineSegment
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIContourLineSegment, IContourLineSegment, &CLSID_ContourLineSegment, &IID_IContourLineSegment> CoContourLineSegment;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ContourArc
// Interface: TCOMIContourArc
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIContourArc, IContourArc, &CLSID_ContourArc, &IID_IContourArc> CoContourArc;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Curve2D
// Interface: TCOMICurve2D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICurve2D, ICurve2D, &CLSID_Curve2D, &IID_ICurve2D> CoCurve2D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingContours
// Interface: TCOMIDrawingContours
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingContours, IDrawingContours, &CLSID_DrawingContours, &IID_IDrawingContours> CoDrawingContours;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingContour
// Interface: TCOMIDrawingContour
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingContour, IDrawingContour, &CLSID_DrawingContour, &IID_IDrawingContour> CoDrawingContour;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SplitLines
// Interface: TCOMISplitLines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISplitLines, ISplitLines, &CLSID_SplitLines, &IID_ISplitLines> CoSplitLines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SplitLine
// Interface: TCOMISplitLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISplitLine, ISplitLine, &CLSID_SplitLine, &IID_ISplitLine> CoSplitLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SurfacePatches
// Interface: TCOMISurfacePatches
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISurfacePatches, ISurfacePatches, &CLSID_SurfacePatches, &IID_ISurfacePatches> CoSurfacePatches;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SurfacePatch
// Interface: TCOMISurfacePatch
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISurfacePatch, ISurfacePatch, &CLSID_SurfacePatch, &IID_ISurfacePatch> CoSurfacePatch;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : FaceRemovers
// Interface: TCOMIFaceRemovers
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIFaceRemovers, IFaceRemovers, &CLSID_FaceRemovers, &IID_IFaceRemovers> CoFaceRemovers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : FaceRemover
// Interface: TCOMIFaceRemover
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIFaceRemover, IFaceRemover, &CLSID_FaceRemover, &IID_IFaceRemover> CoFaceRemover;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SurfaceSewers
// Interface: TCOMISurfaceSewers
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISurfaceSewers, ISurfaceSewers, &CLSID_SurfaceSewers, &IID_ISurfaceSewers> CoSurfaceSewers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SurfaceSewer
// Interface: TCOMISurfaceSewer
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISurfaceSewer, ISurfaceSewer, &CLSID_SurfaceSewer, &IID_ISurfaceSewer> CoSurfaceSewer;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : NurbsSurfaces
// Interface: TCOMINurbsSurfaces
// *********************************************************************//
typedef TCoClassCreatorT<TCOMINurbsSurfaces, INurbsSurfaces, &CLSID_NurbsSurfaces, &IID_INurbsSurfaces> CoNurbsSurfaces;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : NurbsSurface
// Interface: TCOMINurbsSurface
// *********************************************************************//
typedef TCoClassCreatorT<TCOMINurbsSurface, INurbsSurface, &CLSID_NurbsSurface, &IID_INurbsSurface> CoNurbsSurface;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyLibExplorer
// Interface: TCOMIPropertyLibExplorer
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyLibExplorer, IPropertyLibExplorer, &CLSID_PropertyLibExplorer, &IID_IPropertyLibExplorer> CoPropertyLibExplorer;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ExternalGDIObject
// Interface: TCOMIExternalGDIObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIExternalGDIObject, IExternalGDIObject, &CLSID_ExternalGDIObject, &IID_IExternalGDIObject> CoExternalGDIObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Circles
// Interface: TCOMICircles
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICircles, ICircles, &CLSID_Circles, &IID_ICircles> CoCircles;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Circle
// Interface: TCOMICircle
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICircle, ICircle, &CLSID__Circle, &IID_ICircle> Co_Circle;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MacroObjects
// Interface: TCOMIMacroObjects
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMacroObjects, IMacroObjects, &CLSID_MacroObjects, &IID_IMacroObjects> CoMacroObjects;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MacroObject
// Interface: TCOMIMacroObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMacroObject, IMacroObject, &CLSID_MacroObject, &IID_IMacroObject> CoMacroObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Ellipses
// Interface: TCOMIEllipses
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEllipses, IEllipses, &CLSID_Ellipses, &IID_IEllipses> CoEllipses;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Ellipse
// Interface: TCOMIEllipse
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEllipse, IEllipse, &CLSID__Ellipse, &IID_IEllipse> Co_Ellipse;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : EllipseArcs
// Interface: TCOMIEllipseArcs
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEllipseArcs, IEllipseArcs, &CLSID_EllipseArcs, &IID_IEllipseArcs> CoEllipseArcs;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _EllipseArc
// Interface: TCOMIEllipseArc
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEllipseArc, IEllipseArc, &CLSID__EllipseArc, &IID_IEllipseArc> Co_EllipseArc;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Point
// Interface: TCOMIPoint
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoint, IPoint, &CLSID__Point, &IID_IPoint> Co_Point;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Points
// Interface: TCOMIPoints
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPoints, IPoints, &CLSID_Points, &IID_IPoints> CoPoints;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Line
// Interface: TCOMILine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILine, ILine, &CLSID__Line, &IID_ILine> Co_Line;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Lines
// Interface: TCOMILines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILines, ILines, &CLSID_Lines, &IID_ILines> CoLines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Bezier
// Interface: TCOMIBezier
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBezier, IBezier, &CLSID__Bezier, &IID_IBezier> Co_Bezier;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Beziers
// Interface: TCOMIBeziers
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBeziers, IBeziers, &CLSID_Beziers, &IID_IBeziers> CoBeziers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Rectangles
// Interface: TCOMIRectangles
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRectangles, IRectangles, &CLSID_Rectangles, &IID_IRectangles> CoRectangles;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Rectangle
// Interface: TCOMIRectangle
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRectangle, IRectangle, &CLSID__Rectangle, &IID_IRectangle> Co_Rectangle;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RegularPolygons
// Interface: TCOMIRegularPolygons
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRegularPolygons, IRegularPolygons, &CLSID_RegularPolygons, &IID_IRegularPolygons> CoRegularPolygons;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RegularPolygon
// Interface: TCOMIRegularPolygon
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRegularPolygon, IRegularPolygon, &CLSID_RegularPolygon, &IID_IRegularPolygon> CoRegularPolygon;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : InsertionObjects
// Interface: TCOMIInsertionObjects
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInsertionObjects, IInsertionObjects, &CLSID_InsertionObjects, &IID_IInsertionObjects> CoInsertionObjects;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : InsertionView
// Interface: TCOMIInsertionView
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInsertionView, IInsertionView, &CLSID_InsertionView, &IID_IInsertionView> CoInsertionView;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : InsertionDefinition
// Interface: TCOMIInsertionDefinition
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInsertionDefinition, IInsertionDefinition, &CLSID_InsertionDefinition, &IID_IInsertionDefinition> CoInsertionDefinition;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PolyLine2D
// Interface: TCOMIPolyLine2D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPolyLine2D, IPolyLine2D, &CLSID_PolyLine2D, &IID_IPolyLine2D> CoPolyLine2D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PolyLines2D
// Interface: TCOMIPolyLines2D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPolyLines2D, IPolyLines2D, &CLSID_PolyLines2D, &IID_IPolyLines2D> CoPolyLines2D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Equidistants
// Interface: TCOMIEquidistants
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEquidistants, IEquidistants, &CLSID_Equidistants, &IID_IEquidistants> CoEquidistants;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Equidistant
// Interface: TCOMIEquidistant
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEquidistant, IEquidistant, &CLSID__Equidistant, &IID_IEquidistant> Co_Equidistant;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Nurbs
// Interface: TCOMINurbs
// *********************************************************************//
typedef TCoClassCreatorT<TCOMINurbs, INurbs, &CLSID__Nurbs, &IID_INurbs> Co_Nurbs;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Nurbses
// Interface: TCOMINurbses
// *********************************************************************//
typedef TCoClassCreatorT<TCOMINurbses, INurbses, &CLSID_Nurbses, &IID_INurbses> CoNurbses;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CentreMarkers
// Interface: TCOMICentreMarkers
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICentreMarkers, ICentreMarkers, &CLSID_CentreMarkers, &IID_ICentreMarkers> CoCentreMarkers;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CentreMarker
// Interface: TCOMICentreMarker
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICentreMarker, ICentreMarker, &CLSID_CentreMarker, &IID_ICentreMarker> CoCentreMarker;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RemoteElement
// Interface: TCOMIRemoteElement
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRemoteElement, IRemoteElement, &CLSID_RemoteElement, &IID_IRemoteElement> CoRemoteElement;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : RemoteElements
// Interface: TCOMIRemoteElements
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRemoteElements, IRemoteElements, &CLSID_RemoteElements, &IID_IRemoteElements> CoRemoteElements;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Attribute
// Interface: TCOMIAttribute
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAttribute, IAttribute, &CLSID__Attribute, &IID_IAttribute> Co_Attribute;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _ColumnInfo
// Interface: TCOMIColumnInfo
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIColumnInfo, IColumnInfo, &CLSID__ColumnInfo, &IID_IColumnInfo> Co_ColumnInfo;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _AttributeType
// Interface: TCOMIAttributeType
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAttributeType, IAttributeType, &CLSID__AttributeType, &IID_IAttributeType> Co_AttributeType;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AxisLine
// Interface: TCOMIAxisLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAxisLine, IAxisLine, &CLSID_AxisLine, &IID_IAxisLine> CoAxisLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : AxisLines
// Interface: TCOMIAxisLines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIAxisLines, IAxisLines, &CLSID_AxisLines, &IID_IAxisLines> CoAxisLines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Variable7
// Interface: TCOMIVariable7
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIVariable7, IVariable7, &CLSID_Variable7, &IID_IVariable7> CoVariable7;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : InsertionParameters
// Interface: TCOMIInsertionParameters
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIInsertionParameters, IInsertionParameters, &CLSID_InsertionParameters, &IID_IInsertionParameters> CoInsertionParameters;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingGroup
// Interface: TCOMIDrawingGroup
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingGroup, IDrawingGroup, &CLSID_DrawingGroup, &IID_IDrawingGroup> CoDrawingGroup;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : DrawingGroups
// Interface: TCOMIDrawingGroups
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDrawingGroups, IDrawingGroups, &CLSID_DrawingGroups, &IID_IDrawingGroups> CoDrawingGroups;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Hatch
// Interface: TCOMIHatch
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIHatch, IHatch, &CLSID__Hatch, &IID_IHatch> Co_Hatch;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Colouring
// Interface: TCOMIColouring
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIColouring, IColouring, &CLSID__Colouring, &IID_IColouring> Co_Colouring;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Hatches
// Interface: TCOMIHatches
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIHatches, IHatches, &CLSID_Hatches, &IID_IHatches> CoHatches;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Colourings
// Interface: TCOMIColourings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIColourings, IColourings, &CLSID_Colourings, &IID_IColourings> CoColourings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _SpecRough
// Interface: TCOMISpecRough
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISpecRough, ISpecRough, &CLSID__SpecRough, &IID_ISpecRough> Co_SpecRough;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : TechnicalDemand
// Interface: TCOMITechnicalDemand
// *********************************************************************//
typedef TCoClassCreatorT<TCOMITechnicalDemand, ITechnicalDemand, &CLSID_TechnicalDemand, &IID_ITechnicalDemand> CoTechnicalDemand;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Raster
// Interface: TCOMIRaster
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRaster, IRaster, &CLSID__Raster, &IID_IRaster> Co_Raster;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Rasters
// Interface: TCOMIRasters
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIRasters, IRasters, &CLSID_Rasters, &IID_IRasters> CoRasters;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : OleDrawingObject
// Interface: TCOMIOleDrawingObject
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIOleDrawingObject, IOleDrawingObject, &CLSID_OleDrawingObject, &IID_IOleDrawingObject> CoOleDrawingObject;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : OleDrawingObjects
// Interface: TCOMIOleDrawingObjects
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIOleDrawingObjects, IOleDrawingObjects, &CLSID_OleDrawingObjects, &IID_IOleDrawingObjects> CoOleDrawingObjects;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SelectionManager
// Interface: TCOMISelectionManager
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISelectionManager, ISelectionManager, &CLSID_SelectionManager, &IID_ISelectionManager> CoSelectionManager;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ChooseManager
// Interface: TCOMIChooseManager
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIChooseManager, IChooseManager, &CLSID_ChooseManager, &IID_IChooseManager> CoChooseManager;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SurfacesIntersectionCurve
// Interface: TCOMISurfacesIntersectionCurve
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISurfacesIntersectionCurve, ISurfacesIntersectionCurve, &CLSID_SurfacesIntersectionCurve, &IID_ISurfacesIntersectionCurve> CoSurfacesIntersectionCurve;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : SurfacesIntersectionCurves
// Interface: TCOMISurfacesIntersectionCurves
// *********************************************************************//
typedef TCoClassCreatorT<TCOMISurfacesIntersectionCurves, ISurfacesIntersectionCurves, &CLSID_SurfacesIntersectionCurves, &IID_ISurfacesIntersectionCurves> CoSurfacesIntersectionCurves;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Stamp
// Interface: TCOMIStamp
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIStamp, IStamp, &CLSID__Stamp, &IID_IStamp> Co_Stamp;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : WaveLine
// Interface: TCOMIWaveLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIWaveLine, IWaveLine, &CLSID_WaveLine, &IID_IWaveLine> CoWaveLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : WaveLines
// Interface: TCOMIWaveLines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIWaveLines, IWaveLines, &CLSID_WaveLines, &IID_IWaveLines> CoWaveLines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BrokenLine
// Interface: TCOMIBrokenLine
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBrokenLine, IBrokenLine, &CLSID_BrokenLine, &IID_IBrokenLine> CoBrokenLine;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : BrokenLines
// Interface: TCOMIBrokenLines
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIBrokenLines, IBrokenLines, &CLSID_BrokenLines, &IID_IBrokenLines> CoBrokenLines;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PropertyStyleList
// Interface: TCOMIPropertyStyleList
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPropertyStyleList, IPropertyStyleList, &CLSID_PropertyStyleList, &IID_IPropertyStyleList> CoPropertyStyleList;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _CopyObjectParam
// Interface: TCOMICopyObjectParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICopyObjectParam, ICopyObjectParam, &CLSID__CopyObjectParam, &IID_ICopyObjectParam> Co_CopyObjectParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CurveCopyObjectParam
// Interface: TCOMICurveCopyObjectParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICurveCopyObjectParam, ICurveCopyObjectParam, &CLSID_CurveCopyObjectParam, &IID_ICurveCopyObjectParam> CoCurveCopyObjectParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CircleCopyObjectParam
// Interface: TCOMICircleCopyObjectParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICircleCopyObjectParam, ICircleCopyObjectParam, &CLSID_CircleCopyObjectParam, &IID_ICircleCopyObjectParam> CoCircleCopyObjectParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : CircularCopyObjectParam
// Interface: TCOMICircularCopyObjectParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMICircularCopyObjectParam, ICircularCopyObjectParam, &CLSID_CircularCopyObjectParam, &IID_ICircularCopyObjectParam> CoCircularCopyObjectParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : MeshCopyObjectParam
// Interface: TCOMIMeshCopyObjectParam
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMeshCopyObjectParam, IMeshCopyObjectParam, &CLSID_MeshCopyObjectParam, &IID_IMeshCopyObjectParam> CoMeshCopyObjectParam;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PrintJob
// Interface: TCOMIPrintJob
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPrintJob, IPrintJob, &CLSID_PrintJob, &IID_IPrintJob> CoPrintJob;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : PrintJob_Sheet
// Interface: TCOMIPrintJob_Sheet
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIPrintJob_Sheet, IPrintJob_Sheet, &CLSID_PrintJob_Sheet, &IID_IPrintJob_Sheet> CoPrintJob_Sheet;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : _Property
// Interface: TCOMIProperty
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIProperty, IProperty, &CLSID__Property, &IID_IProperty> Co_Property;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : LibArraySettings
// Interface: TCOMILibArraySettings
// *********************************************************************//
typedef TCoClassCreatorT<TCOMILibArraySettings, ILibArraySettings, &CLSID_LibArraySettings, &IID_ILibArraySettings> CoLibArraySettings;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : ReportProcess
// Interface: TCOMIReportProcess
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIReportProcess, IReportProcess, &CLSID_ReportProcess, &IID_IReportProcess> CoReportProcess;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Equidistants3D
// Interface: TCOMIEquidistants3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEquidistants3D, IEquidistants3D, &CLSID_Equidistants3D, &IID_IEquidistants3D> CoEquidistants3D;

// *********************************************************************//
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : Equidistant3D
// Interface: TCOMIEquidistant3D
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIEquidistant3D, IEquidistant3D, &CLSID_Equidistant3D, &IID_IEquidistant3D> CoEquidistant3D;
#endif  //   __TLB_NO_INTERFACE_WRAPPERS


#if !defined(__TLB_NO_EVENT_WRAPPERS) && defined(USING_ATLVCL)
// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : KompasDocument
// Event Interface : ksDocumentFileNotify
// *********************************************************************//
template <class T>
class TEvents_KompasDocument : public IConnectionPointImpl<T,
                                                 &DIID_ksDocumentFileNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginCloseDocument(void);
  TOLEBOOL        Fire_CloseDocument(void);
  TOLEBOOL        Fire_BeginSaveDocument(BSTR fileName);
  TOLEBOOL        Fire_SaveDocument(void);
  TOLEBOOL        Fire_Activate(void);
  TOLEBOOL        Fire_Deactivate(void);
  TOLEBOOL        Fire_BeginSaveAsDocument(void);
  TOLEBOOL        Fire_DocumentFrameOpen(LPDISPATCH v);
  TOLEBOOL        Fire_ProcessActivate(long iD);
  TOLEBOOL        Fire_ProcessDeactivate(long iD);
protected:
  ksDocumentFileNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_BeginCloseDocument(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCloseDocument();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_CloseDocument(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CloseDocument();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_BeginSaveDocument(BSTR fileName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginSaveDocument(fileName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_SaveDocument(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SaveDocument();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_Activate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Activate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_Deactivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Deactivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_BeginSaveAsDocument(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginSaveAsDocument();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_DocumentFrameOpen(LPDISPATCH v)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentFrameOpen(v);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_ProcessActivate(long iD)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ProcessActivate(iD);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument<T>::Fire_ProcessDeactivate(long iD)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ProcessDeactivate(iD);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : _Application
// Event Interface : ksKompasObjectNotify
// *********************************************************************//
template <class T>
class TEvents__Application : public IConnectionPointImpl<T,
                                                 &DIID_ksKompasObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_CreateDocument(LPDISPATCH newDoc, long docType);
  TOLEBOOL        Fire_BeginOpenDocument(BSTR fileName);
  TOLEBOOL        Fire_OpenDocument(LPDISPATCH newDoc, long docType);
  TOLEBOOL        Fire_ChangeActiveDocument(LPDISPATCH newDoc, long docType);
  TOLEBOOL        Fire_ApplicationDestroy(void);
  TOLEBOOL        Fire_BeginCreate(long docType);
  TOLEBOOL        Fire_BeginOpenFile(void);
  TOLEBOOL        Fire_BeginCloseAllDocument(void);
  TOLEBOOL        Fire_KeyDown(long* key, long flags, TOLEBOOL systemKey);
  TOLEBOOL        Fire_KeyUp(long* key, long flags, TOLEBOOL systemKey);
  TOLEBOOL        Fire_KeyPress(long* key, TOLEBOOL systemKey);
  TOLEBOOL        Fire_BeginReguestFiles(long requestID, TVariant* files);
protected:
  ksKompasObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_CreateDocument(LPDISPATCH newDoc, long docType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateDocument(newDoc, docType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_BeginOpenDocument(BSTR fileName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginOpenDocument(fileName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_OpenDocument(LPDISPATCH newDoc, long docType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.OpenDocument(newDoc, docType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_ChangeActiveDocument(LPDISPATCH newDoc, long docType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeActiveDocument(newDoc, docType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_ApplicationDestroy(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ApplicationDestroy();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_BeginCreate(long docType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCreate(docType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_BeginOpenFile(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginOpenFile();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_BeginCloseAllDocument(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCloseAllDocument();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_KeyDown(long* key, long flags, TOLEBOOL systemKey)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.KeyDown(key, flags, systemKey);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_KeyUp(long* key, long flags, TOLEBOOL systemKey)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.KeyUp(key, flags, systemKey);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_KeyPress(long* key, TOLEBOOL systemKey)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.KeyPress(key, systemKey);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Application<T>::Fire_BeginReguestFiles(long requestID, TVariant* files)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginReguestFiles(requestID, files);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DocumentFrame
// Event Interface : ksDocumentFrameNotify
// *********************************************************************//
template <class T>
class TEvents_DocumentFrame : public IConnectionPointImpl<T,
                                                 &DIID_ksDocumentFrameNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginPaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj);
  TOLEBOOL        Fire_ClosePaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj);
  TOLEBOOL        Fire_MouseDown(short NButton, short NShiftState, long X, long Y);
  TOLEBOOL        Fire_MouseUp(short NButton, short NShiftState, long X, long Y);
  TOLEBOOL        Fire_MouseDblClick(short NButton, short NShiftState, long X, long Y);
  TOLEBOOL        Fire_BeginPaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj, long DrawMode);
  TOLEBOOL        Fire_ClosePaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj, long DrawMode);
  TOLEBOOL        Fire_AddGabarit(Kompasltapi7_tlb::IGabaritObjectPtr GabObj);
  TOLEBOOL        Fire_Activate(void);
  TOLEBOOL        Fire_Deactivate(void);
  TOLEBOOL        Fire_CloseFrame(void);
  TOLEBOOL        Fire_MouseMove(short NShiftState, long X, long Y);
  TOLEBOOL        Fire_ShowOcxTree(LPDISPATCH Ocx, TOLEBOOL show);
protected:
  ksDocumentFrameNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_BeginPaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginPaint(PaintObj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_ClosePaint(Kompasltapi7_tlb::IPaintObjectPtr PaintObj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ClosePaint(PaintObj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_MouseDown(short NButton, short NShiftState, long X, long Y)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.MouseDown(NButton, NShiftState, X, Y);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_MouseUp(short NButton, short NShiftState, long X, long Y)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.MouseUp(NButton, NShiftState, X, Y);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_MouseDblClick(short NButton, short NShiftState, long X, long Y)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.MouseDblClick(NButton, NShiftState, X, Y);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_BeginPaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj, long DrawMode)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginPaintGL(GlObj, DrawMode);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_ClosePaintGL(Kompasltapi7_tlb::ksGLObjectPtr GlObj, long DrawMode)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ClosePaintGL(GlObj, DrawMode);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_AddGabarit(Kompasltapi7_tlb::IGabaritObjectPtr GabObj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AddGabarit(GabObj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_Activate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Activate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_Deactivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Deactivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_CloseFrame(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CloseFrame();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_MouseMove(short NShiftState, long X, long Y)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.MouseMove(NShiftState, X, Y);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DocumentFrame<T>::Fire_ShowOcxTree(LPDISPATCH Ocx, TOLEBOOL show)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ShowOcxTree(Ocx, show);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : ProcessParam
// Event Interface : ksPropertyManagerNotify
// *********************************************************************//
template <class T>
class TEvents_ProcessParam : public IConnectionPointImpl<T,
                                                 &DIID_ksPropertyManagerNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_ButtonClick(long ButtonID);
  TOLEBOOL        Fire_ChangeControlValue(Kompasltapi7_tlb::IPropertyControlPtr Control);
  TOLEBOOL        Fire_ControlCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, long ButtonID);
  TOLEBOOL        Fire_ButtonUpdate(long ButtonID, long* Check, TOLEBOOL* Enable);
  TOLEBOOL        Fire_ProcessActivate(void);
  TOLEBOOL        Fire_ProcessDeactivate(void);
  TOLEBOOL        Fire_CommandHelp(long Id);
  TOLEBOOL        Fire_SelectItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                  TOLEBOOL Select);
  TOLEBOOL        Fire_CheckItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                 TOLEBOOL Check);
  TOLEBOOL        Fire_ChangeActiveTab(long TabIndex);
  TOLEBOOL        Fire_EditFocus(Kompasltapi7_tlb::IPropertyControlPtr Control, TOLEBOOL Set);
  TOLEBOOL        Fire_UserMenuCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, long MenuID);
protected:
  ksPropertyManagerNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_ButtonClick(long ButtonID)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ButtonClick(ButtonID);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_ChangeControlValue(Kompasltapi7_tlb::IPropertyControlPtr Control)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeControlValue(Control);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_ControlCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                             long ButtonID)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ControlCommand(Control, ButtonID);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_ButtonUpdate(long ButtonID, long* Check, TOLEBOOL* Enable)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ButtonUpdate(ButtonID, Check, Enable);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_ProcessActivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ProcessActivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_ProcessDeactivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ProcessDeactivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_CommandHelp(long Id)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CommandHelp(Id);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_SelectItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                         TOLEBOOL Select)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SelectItem(Control, Index, Select);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_CheckItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                        TOLEBOOL Check)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CheckItem(Control, Index, Check);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_ChangeActiveTab(long TabIndex)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeActiveTab(TabIndex);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_EditFocus(Kompasltapi7_tlb::IPropertyControlPtr Control, TOLEBOOL Set)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EditFocus(Control, Set);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ProcessParam<T>::Fire_UserMenuCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                              long MenuID)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UserMenuCommand(Control, MenuID);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : PropertyUserControl
// Event Interface : ksPropertyUserControlNotify
// *********************************************************************//
template <class T>
class TEvents_PropertyUserControl : public IConnectionPointImpl<T,
                                                 &DIID_ksPropertyUserControlNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_CreateOCX(LPDISPATCH IOcx);
  TOLEBOOL        Fire_DestroyOCX(void);
protected:
  ksPropertyUserControlNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_PropertyUserControl<T>::Fire_CreateOCX(LPDISPATCH IOcx)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateOCX(IOcx);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyUserControl<T>::Fire_DestroyOCX(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DestroyOCX();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : PropertyManager
// Event Interface : ksPropertyManagerNotify
// *********************************************************************//
template <class T>
class TEvents_PropertyManager : public IConnectionPointImpl<T,
                                                 &DIID_ksPropertyManagerNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_ButtonClick(long ButtonID);
  TOLEBOOL        Fire_ChangeControlValue(Kompasltapi7_tlb::IPropertyControlPtr Control);
  TOLEBOOL        Fire_ControlCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, long ButtonID);
  TOLEBOOL        Fire_ButtonUpdate(long ButtonID, long* Check, TOLEBOOL* Enable);
  TOLEBOOL        Fire_ProcessActivate(void);
  TOLEBOOL        Fire_ProcessDeactivate(void);
  TOLEBOOL        Fire_CommandHelp(long Id);
  TOLEBOOL        Fire_SelectItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                  TOLEBOOL Select);
  TOLEBOOL        Fire_CheckItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                 TOLEBOOL Check);
  TOLEBOOL        Fire_ChangeActiveTab(long TabIndex);
  TOLEBOOL        Fire_EditFocus(Kompasltapi7_tlb::IPropertyControlPtr Control, TOLEBOOL Set);
  TOLEBOOL        Fire_UserMenuCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, long MenuID);
protected:
  ksPropertyManagerNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_ButtonClick(long ButtonID)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ButtonClick(ButtonID);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_ChangeControlValue(Kompasltapi7_tlb::IPropertyControlPtr Control)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeControlValue(Control);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_ControlCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                                long ButtonID)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ControlCommand(Control, ButtonID);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_ButtonUpdate(long ButtonID, long* Check, TOLEBOOL* Enable)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ButtonUpdate(ButtonID, Check, Enable);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_ProcessActivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ProcessActivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_ProcessDeactivate(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ProcessDeactivate();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_CommandHelp(long Id)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CommandHelp(Id);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_SelectItem(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                            long Index, TOLEBOOL Select)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SelectItem(Control, Index, Select);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_CheckItem(Kompasltapi7_tlb::IPropertyControlPtr Control, long Index, 
                                           TOLEBOOL Check)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CheckItem(Control, Index, Check);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_ChangeActiveTab(long TabIndex)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeActiveTab(TabIndex);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_EditFocus(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                           TOLEBOOL Set)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EditFocus(Control, Set);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_PropertyManager<T>::Fire_UserMenuCommand(Kompasltapi7_tlb::IPropertyControlPtr Control, 
                                                 long MenuID)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UserMenuCommand(Control, MenuID);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : KompasDocument3D
// Event Interface : ksDocument3DNotify7
// *********************************************************************//
template <class T>
class TEvents_KompasDocument3D : public IConnectionPointImpl<T,
                                                 &DIID_ksDocument3DNotify7,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginRebuild(void);
  TOLEBOOL        Fire_Rebuild(void);
  TOLEBOOL        Fire_BeginChoiceMaterial(void);
  TOLEBOOL        Fire_ChoiceMaterial(BSTR Material, double Density);
  TOLEBOOL        Fire_BeginChoiceMarking(void);
  TOLEBOOL        Fire_ChoiceMarking(BSTR Marking);
  TOLEBOOL        Fire_BeginSetPartFromFile(void);
  TOLEBOOL        Fire_BeginCreatePartFromFile(TOLEBOOL TypeDoc, 
                                               Kompasltapi7_tlb::IModelObjectPtr Plane);
protected:
  ksDocument3DNotify7Disp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_BeginRebuild(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginRebuild();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_Rebuild(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Rebuild();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_BeginChoiceMaterial(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginChoiceMaterial();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_ChoiceMaterial(BSTR Material, double Density)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChoiceMaterial(Material, Density);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_BeginChoiceMarking(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginChoiceMarking();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_ChoiceMarking(BSTR Marking)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChoiceMarking(Marking);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_BeginSetPartFromFile(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginSetPartFromFile();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_KompasDocument3D<T>::Fire_BeginCreatePartFromFile(TOLEBOOL TypeDoc, 
                                                          Kompasltapi7_tlb::IModelObjectPtr Plane)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCreatePartFromFile(TypeDoc, Plane);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : ViewsAndLayersManager
// Event Interface : ksViewsAndLayersManagerNotify
// *********************************************************************//
template <class T>
class TEvents_ViewsAndLayersManager : public IConnectionPointImpl<T,
                                                 &DIID_ksViewsAndLayersManagerNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginEdit(void);
  TOLEBOOL        Fire_EndEdit(TOLEBOOL IsOk);
protected:
  ksViewsAndLayersManagerNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_ViewsAndLayersManager<T>::Fire_BeginEdit(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginEdit();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ViewsAndLayersManager<T>::Fire_EndEdit(TOLEBOOL IsOk)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndEdit(IsOk);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DrawingObject
// Event Interface : ksDrawingObjectNotify
// *********************************************************************//
template <class T>
class TEvents_DrawingObject : public IConnectionPointImpl<T,
                                                 &DIID_ksDrawingObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_ChangeActive(TVariant Obj);
  TOLEBOOL        Fire_BeginDelete(TVariant Objects);
  TOLEBOOL        Fire_Delete(TVariant Objects);
  TOLEBOOL        Fire_BeginMove(TVariant Objects);
  TOLEBOOL        Fire_Move(TVariant Objects);
  TOLEBOOL        Fire_BeginRotate(TVariant Objects);
  TOLEBOOL        Fire_Rotate(TVariant Objects);
  TOLEBOOL        Fire_BeginScale(TVariant Objects);
  TOLEBOOL        Fire_Scale(TVariant Objects);
  TOLEBOOL        Fire_BeginTransform(TVariant Objects);
  TOLEBOOL        Fire_Transform(TVariant Objects);
  TOLEBOOL        Fire_BeginCopy(TVariant Objects);
  TOLEBOOL        Fire_Copy(TVariant Objects);
  TOLEBOOL        Fire_BeginSymmetry(TVariant Objects);
  TOLEBOOL        Fire_Symmetry(TVariant Objects);
  TOLEBOOL        Fire_BeginProcess(long PType, TVariant ObjRef);
  TOLEBOOL        Fire_EndProcess(long PType);
  TOLEBOOL        Fire_CreateObject(TVariant Objects);
  TOLEBOOL        Fire_UpdateObject(TVariant Objects);
  TOLEBOOL        Fire_BeginDestroyObject(TVariant Objects);
  TOLEBOOL        Fire_DestroyObject(TVariant Objects);
protected:
  ksDrawingObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_ChangeActive(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeActive(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginDelete(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDelete(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_Delete(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginMove(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginMove(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_Move(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Move(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginRotate(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginRotate(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_Rotate(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Rotate(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginScale(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginScale(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_Scale(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Scale(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginTransform(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginTransform(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_Transform(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Transform(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginCopy(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCopy(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_Copy(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Copy(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginSymmetry(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginSymmetry(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_Symmetry(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Symmetry(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginProcess(long PType, TVariant ObjRef)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginProcess(PType, ObjRef);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_EndProcess(long PType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndProcess(PType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_CreateObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_UpdateObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UpdateObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_BeginDestroyObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDestroyObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObject<T>::Fire_DestroyObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DestroyObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DrawingObjects
// Event Interface : ksDrawingObjectNotify
// *********************************************************************//
template <class T>
class TEvents_DrawingObjects : public IConnectionPointImpl<T,
                                                 &DIID_ksDrawingObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_ChangeActive(TVariant Obj);
  TOLEBOOL        Fire_BeginDelete(TVariant Objects);
  TOLEBOOL        Fire_Delete(TVariant Objects);
  TOLEBOOL        Fire_BeginMove(TVariant Objects);
  TOLEBOOL        Fire_Move(TVariant Objects);
  TOLEBOOL        Fire_BeginRotate(TVariant Objects);
  TOLEBOOL        Fire_Rotate(TVariant Objects);
  TOLEBOOL        Fire_BeginScale(TVariant Objects);
  TOLEBOOL        Fire_Scale(TVariant Objects);
  TOLEBOOL        Fire_BeginTransform(TVariant Objects);
  TOLEBOOL        Fire_Transform(TVariant Objects);
  TOLEBOOL        Fire_BeginCopy(TVariant Objects);
  TOLEBOOL        Fire_Copy(TVariant Objects);
  TOLEBOOL        Fire_BeginSymmetry(TVariant Objects);
  TOLEBOOL        Fire_Symmetry(TVariant Objects);
  TOLEBOOL        Fire_BeginProcess(long PType, TVariant ObjRef);
  TOLEBOOL        Fire_EndProcess(long PType);
  TOLEBOOL        Fire_CreateObject(TVariant Objects);
  TOLEBOOL        Fire_UpdateObject(TVariant Objects);
  TOLEBOOL        Fire_BeginDestroyObject(TVariant Objects);
  TOLEBOOL        Fire_DestroyObject(TVariant Objects);
protected:
  ksDrawingObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_ChangeActive(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeActive(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginDelete(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDelete(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_Delete(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginMove(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginMove(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_Move(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Move(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginRotate(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginRotate(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_Rotate(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Rotate(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginScale(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginScale(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_Scale(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Scale(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginTransform(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginTransform(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_Transform(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Transform(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginCopy(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCopy(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_Copy(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Copy(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginSymmetry(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginSymmetry(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_Symmetry(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Symmetry(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginProcess(long PType, TVariant ObjRef)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginProcess(PType, ObjRef);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_EndProcess(long PType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndProcess(PType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_CreateObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_UpdateObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UpdateObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_BeginDestroyObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDestroyObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_DrawingObjects<T>::Fire_DestroyObject(TVariant Objects)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DestroyObject(Objects);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : LibraryManager
// Event Interface : ksLibraryManagerNotify
// *********************************************************************//
template <class T>
class TEvents_LibraryManager : public IConnectionPointImpl<T,
                                                 &DIID_ksLibraryManagerNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginAttach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_Attach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_BeginDetach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_Detach(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_BeginExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_EndExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_SystemControlStop(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_SystemControlStart(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_AddLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_DeleteLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary);
  TOLEBOOL        Fire_AddInsert(Kompasltapi7_tlb::IInsertPtr PInsert, TOLEBOOL Create);
  TOLEBOOL        Fire_DeleteInsert(Kompasltapi7_tlb::IInsertPtr PInsert);
  TOLEBOOL        Fire_EditInsert(Kompasltapi7_tlb::ILibraryPtr PLibrary, 
                                  Kompasltapi7_tlb::IKompasDocumentPtr PDoc, TOLEBOOL NewFrw);
protected:
  ksLibraryManagerNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_BeginAttach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginAttach(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_Attach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Attach(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_BeginDetach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDetach(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_Detach(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Detach(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_BeginExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginExecute(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_EndExecute(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndExecute(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_SystemControlStop(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SystemControlStop(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_SystemControlStart(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SystemControlStart(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_AddLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AddLibraryDescription(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_DeleteLibraryDescription(Kompasltapi7_tlb::ILibraryPtr PLibrary)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DeleteLibraryDescription(PLibrary);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_AddInsert(Kompasltapi7_tlb::IInsertPtr PInsert, TOLEBOOL Create)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.AddInsert(PInsert, Create);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_DeleteInsert(Kompasltapi7_tlb::IInsertPtr PInsert)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DeleteInsert(PInsert);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LibraryManager<T>::Fire_EditInsert(Kompasltapi7_tlb::ILibraryPtr PLibrary, 
                                           Kompasltapi7_tlb::IKompasDocumentPtr PDoc, 
                                           TOLEBOOL NewFrw)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EditInsert(PLibrary, PDoc, NewFrw);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : SpecificationDescriptions
// Event Interface : ksSpecificationDescriptionNotify
// *********************************************************************//
template <class T>
class TEvents_SpecificationDescriptions : public IConnectionPointImpl<T,
                                                 &DIID_ksSpecificationDescriptionNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_TuningSpcStyleBeginChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_TuningSpcStyleChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                            TOLEBOOL IsOk);
  TOLEBOOL        Fire_ChangeCurrentSpcDescription(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionAdd(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionRemove(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionBeginEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                          TOLEBOOL IsOk);
  TOLEBOOL        Fire_SynchronizationBegin(void);
  TOLEBOOL        Fire_Synchronization(void);
  TOLEBOOL        Fire_BeginCalcPositions(void);
  TOLEBOOL        Fire_CalcPositions(void);
  TOLEBOOL        Fire_BeginCreateObject(long TypeObj);
protected:
  ksSpecificationDescriptionNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_TuningSpcStyleBeginChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.TuningSpcStyleBeginChange(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_TuningSpcStyleChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                                                TOLEBOOL IsOk)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.TuningSpcStyleChange(Descr, IsOk);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_ChangeCurrentSpcDescription(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeCurrentSpcDescription(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_SpcDescriptionAdd(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionAdd(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_SpcDescriptionRemove(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionRemove(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_SpcDescriptionBeginEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionBeginEdit(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_SpcDescriptionEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                                              TOLEBOOL IsOk)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionEdit(Descr, IsOk);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_SynchronizationBegin(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SynchronizationBegin();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_Synchronization(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Synchronization();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_BeginCalcPositions(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCalcPositions();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_CalcPositions(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CalcPositions();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescriptions<T>::Fire_BeginCreateObject(long TypeObj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCreateObject(TypeObj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : SpecificationDescription
// Event Interface : ksSpecificationDescriptionNotify
// *********************************************************************//
template <class T>
class TEvents_SpecificationDescription : public IConnectionPointImpl<T,
                                                 &DIID_ksSpecificationDescriptionNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_TuningSpcStyleBeginChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_TuningSpcStyleChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                            TOLEBOOL IsOk);
  TOLEBOOL        Fire_ChangeCurrentSpcDescription(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionAdd(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionRemove(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionBeginEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr);
  TOLEBOOL        Fire_SpcDescriptionEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                          TOLEBOOL IsOk);
  TOLEBOOL        Fire_SynchronizationBegin(void);
  TOLEBOOL        Fire_Synchronization(void);
  TOLEBOOL        Fire_BeginCalcPositions(void);
  TOLEBOOL        Fire_CalcPositions(void);
  TOLEBOOL        Fire_BeginCreateObject(long TypeObj);
protected:
  ksSpecificationDescriptionNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_TuningSpcStyleBeginChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.TuningSpcStyleBeginChange(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_TuningSpcStyleChange(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                                               TOLEBOOL IsOk)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.TuningSpcStyleChange(Descr, IsOk);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_ChangeCurrentSpcDescription(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeCurrentSpcDescription(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_SpcDescriptionAdd(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionAdd(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_SpcDescriptionRemove(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionRemove(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_SpcDescriptionBeginEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionBeginEdit(Descr);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_SpcDescriptionEdit(Kompasltapi7_tlb::ISpecificationDescriptionPtr Descr, 
                                                             TOLEBOOL IsOk)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SpcDescriptionEdit(Descr, IsOk);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_SynchronizationBegin(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.SynchronizationBegin();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_Synchronization(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Synchronization();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_BeginCalcPositions(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCalcPositions();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_CalcPositions(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CalcPositions();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationDescription<T>::Fire_BeginCreateObject(long TypeObj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginCreateObject(TypeObj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : SpecificationBaseObjects
// Event Interface : ksSpecificationObjectNotify
// *********************************************************************//
template <class T>
class TEvents_SpecificationBaseObjects : public IConnectionPointImpl<T,
                                                 &DIID_ksSpecificationObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number);
  TOLEBOOL        Fire_CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number);
  TOLEBOOL        Fire_ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName);
  TOLEBOOL        Fire_DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName);
  TOLEBOOL        Fire_BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_BeginProcess(long PType, Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_EndProcess(long PType);
  TOLEBOOL        Fire_CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
protected:
  ksSpecificationObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDelete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                       long Number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CellDblClick(Obj, Number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                        long Number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CellBeginEdit(Obj, Number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeCurrent(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentBeginAdd(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                      BSTR DocName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentAdd(Obj, DocName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                         BSTR DocName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentRemove(Obj, DocName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginGeomChange(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.GeomChange(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_BeginProcess(long PType, 
                                                       Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginProcess(PType, Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_EndProcess(long PType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndProcess(PType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationBaseObjects<T>::Fire_UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UpdateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : SpecificationCommentObjects
// Event Interface : ksSpecificationObjectNotify
// *********************************************************************//
template <class T>
class TEvents_SpecificationCommentObjects : public IConnectionPointImpl<T,
                                                 &DIID_ksSpecificationObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number);
  TOLEBOOL        Fire_CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number);
  TOLEBOOL        Fire_ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName);
  TOLEBOOL        Fire_DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName);
  TOLEBOOL        Fire_BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_BeginProcess(long PType, Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_EndProcess(long PType);
  TOLEBOOL        Fire_CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
protected:
  ksSpecificationObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDelete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                          long Number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CellDblClick(Obj, Number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                           long Number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CellBeginEdit(Obj, Number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeCurrent(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentBeginAdd(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                         BSTR DocName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentAdd(Obj, DocName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                            BSTR DocName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentRemove(Obj, DocName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginGeomChange(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.GeomChange(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_BeginProcess(long PType, 
                                                          Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginProcess(PType, Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_EndProcess(long PType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndProcess(PType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationCommentObjects<T>::Fire_UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UpdateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : SpecificationObject
// Event Interface : ksSpecificationObjectNotify
// *********************************************************************//
template <class T>
class TEvents_SpecificationObject : public IConnectionPointImpl<T,
                                                 &DIID_ksSpecificationObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number);
  TOLEBOOL        Fire_CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, long Number);
  TOLEBOOL        Fire_ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName);
  TOLEBOOL        Fire_DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, BSTR DocName);
  TOLEBOOL        Fire_BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_BeginProcess(long PType, Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_EndProcess(long PType);
  TOLEBOOL        Fire_CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
  TOLEBOOL        Fire_UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj);
protected:
  ksSpecificationObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_BeginDelete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDelete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_Delete(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_CellDblClick(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                  long Number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CellDblClick(Obj, Number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_CellBeginEdit(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                   long Number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CellBeginEdit(Obj, Number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_ChangeCurrent(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ChangeCurrent(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_DocumentBeginAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentBeginAdd(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_DocumentAdd(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                 BSTR DocName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentAdd(Obj, DocName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_DocumentRemove(Kompasltapi7_tlb::ISpecificationObjectPtr Obj, 
                                                    BSTR DocName)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.DocumentRemove(Obj, DocName);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_BeginGeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginGeomChange(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_GeomChange(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.GeomChange(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_BeginProcess(long PType, 
                                                  Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginProcess(PType, Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_EndProcess(long PType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndProcess(PType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_CreateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SpecificationObject<T>::Fire_UpdateObject(Kompasltapi7_tlb::ISpecificationObjectPtr Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UpdateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : LayoutSheets
// Event Interface : ksLayoutSheetsNotify
// *********************************************************************//
template <class T>
class TEvents_LayoutSheets : public IConnectionPointImpl<T,
                                                 &DIID_ksLayoutSheetsNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_Add(Kompasltapi7_tlb::ILayoutSheetPtr PSheet);
  TOLEBOOL        Fire_Delete(Kompasltapi7_tlb::ILayoutSheetPtr PSheet);
  TOLEBOOL        Fire__Update(Kompasltapi7_tlb::ILayoutSheetPtr PSheet);
protected:
  ksLayoutSheetsNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_LayoutSheets<T>::Fire_Add(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Add(PSheet);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LayoutSheets<T>::Fire_Delete(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(PSheet);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_LayoutSheets<T>::Fire__Update(Kompasltapi7_tlb::ILayoutSheetPtr PSheet)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj._Update(PSheet);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : ModelObject
// Event Interface : ksModelObjectNotify
// *********************************************************************//
template <class T>
class TEvents_ModelObject : public IConnectionPointImpl<T,
                                                 &DIID_ksModelObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginDelete(TVariant Obj);
  TOLEBOOL        Fire_Delete(TVariant Obj);
  TOLEBOOL        Fire_Excluded(TVariant Obj, TOLEBOOL Excluded);
  TOLEBOOL        Fire_Hidden(TVariant Obj, TOLEBOOL _Hidden);
  TOLEBOOL        Fire_BeginPropertyChanged(TVariant Obj);
  TOLEBOOL        Fire_PropertyChanged(TVariant Obj);
  TOLEBOOL        Fire_BeginPlacementChanged(TVariant Obj);
  TOLEBOOL        Fire_PlacementChanged(TVariant Obj);
  TOLEBOOL        Fire_BeginProcess(long PType, TVariant Pbj);
  TOLEBOOL        Fire_EndProcess(long PType);
  TOLEBOOL        Fire_CreateObject(TVariant Obj);
  TOLEBOOL        Fire_UpdateObject(TVariant Obj);
protected:
  ksModelObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_BeginDelete(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDelete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_Delete(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_Excluded(TVariant Obj, TOLEBOOL Excluded)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Excluded(Obj, Excluded);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_Hidden(TVariant Obj, TOLEBOOL _Hidden)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Hidden(Obj, _Hidden);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_BeginPropertyChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginPropertyChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_PropertyChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_BeginPlacementChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginPlacementChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_PlacementChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PlacementChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_BeginProcess(long PType, TVariant Pbj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginProcess(PType, Pbj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_EndProcess(long PType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndProcess(PType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_CreateObject(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObject<T>::Fire_UpdateObject(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UpdateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : ModelObjects
// Event Interface : ksModelObjectNotify
// *********************************************************************//
template <class T>
class TEvents_ModelObjects : public IConnectionPointImpl<T,
                                                 &DIID_ksModelObjectNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginDelete(TVariant Obj);
  TOLEBOOL        Fire_Delete(TVariant Obj);
  TOLEBOOL        Fire_Excluded(TVariant Obj, TOLEBOOL Excluded);
  TOLEBOOL        Fire_Hidden(TVariant Obj, TOLEBOOL _Hidden);
  TOLEBOOL        Fire_BeginPropertyChanged(TVariant Obj);
  TOLEBOOL        Fire_PropertyChanged(TVariant Obj);
  TOLEBOOL        Fire_BeginPlacementChanged(TVariant Obj);
  TOLEBOOL        Fire_PlacementChanged(TVariant Obj);
  TOLEBOOL        Fire_BeginProcess(long PType, TVariant Pbj);
  TOLEBOOL        Fire_EndProcess(long PType);
  TOLEBOOL        Fire_CreateObject(TVariant Obj);
  TOLEBOOL        Fire_UpdateObject(TVariant Obj);
protected:
  ksModelObjectNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_BeginDelete(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginDelete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_Delete(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Delete(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_Excluded(TVariant Obj, TOLEBOOL Excluded)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Excluded(Obj, Excluded);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_Hidden(TVariant Obj, TOLEBOOL _Hidden)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Hidden(Obj, _Hidden);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_BeginPropertyChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginPropertyChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_PropertyChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PropertyChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_BeginPlacementChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginPlacementChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_PlacementChanged(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.PlacementChanged(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_BeginProcess(long PType, TVariant Pbj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginProcess(PType, Pbj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_EndProcess(long PType)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndProcess(PType);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_CreateObject(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.CreateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_ModelObjects<T>::Fire_UpdateObject(TVariant Obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UpdateObject(Obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : SelectionManager
// Event Interface : ksSelectionMngNotify
// *********************************************************************//
template <class T>
class TEvents_SelectionManager : public IConnectionPointImpl<T,
                                                 &DIID_ksSelectionMngNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_Select(TVariant obj);
  TOLEBOOL        Fire_Unselect(TVariant obj);
  TOLEBOOL        Fire_UnselectAll(void);
protected:
  ksSelectionMngNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents_SelectionManager<T>::Fire_Select(TVariant obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Select(obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SelectionManager<T>::Fire_Unselect(TVariant obj)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.Unselect(obj);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents_SelectionManager<T>::Fire_UnselectAll(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.UnselectAll();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : _Stamp
// Event Interface : ksStampNotify
// *********************************************************************//
template <class T>
class TEvents__Stamp : public IConnectionPointImpl<T,
                                                 &DIID_ksStampNotify,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  TOLEBOOL        Fire_BeginEditStamp(void);
  TOLEBOOL        Fire_EndEditStamp(TOLEBOOL editResult);
  TOLEBOOL        Fire_StampCellDblClick(long number);
  TOLEBOOL        Fire_StampCellBeginEdit(long number);
  TOLEBOOL        Fire_StampBeginClearCells(TVariant cells);
protected:
  ksStampNotifyDisp m_EventIntfObj;
};

template <class T> TOLEBOOL
TEvents__Stamp<T>::Fire_BeginEditStamp(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.BeginEditStamp();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Stamp<T>::Fire_EndEditStamp(TOLEBOOL editResult)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.EndEditStamp(editResult);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Stamp<T>::Fire_StampCellDblClick(long number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.StampCellDblClick(number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Stamp<T>::Fire_StampCellBeginEdit(long number)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.StampCellBeginEdit(number);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> TOLEBOOL
TEvents__Stamp<T>::Fire_StampBeginClearCells(TVariant cells)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.StampBeginClearCells(cells);
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

#endif  //   __TLB_NO_EVENT_WRAPPERS

};     // namespace Kompasltapi7_tlb

#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using  namespace Kompasltapi7_tlb;
#endif

#pragma option pop

#endif // __KompasLTAPI7_TLB_h__
